How han-dreamer/ai-mock-interview works
AI Mock Interview is a JD- and resume-driven interview practice product. A candidate uses the web client to authenticate and create or resume a practice or professional session; the API delegates session execution to a LangGraph workflow, which analyzes inputs, plans questions, retrieves relevant material, conducts answer-and-follow-up loops, and produces a report. The README documents persistence, long-term personalization, and Redis runtime enhancements. Edges reflect that documentation and sampled source; unsampled subsystem wiring is omitted where uncertain.
Main entry points: graph.py Interview StateGraph · session_manager.py Session Manager · service.py Long-Term Memory Service · main.py FastAPI Application
Components 28
Client
- React Web Client
web/src/App.tsx
API and Sessions
- FastAPI Application
app/main.py - Auth API
app/api/auth.py - Interview REST API
app/api/interview_rest.py - Interview WebSocket
app/api/interview_ws.py - Session Manager
app/services/session_manager.py
Interview Workflow
- Resume Analysis
app/agents/resume_analyst.py - JD Analysis
app/agents/jd_analyst.py - Parallel Preparation
app/agents/parallel_prep.py - Interview StateGraph
app/agents/graph.py - Question Planner
app/agents/question_planner.py - Question and Assessment
app/agents/interviewer.py - Round Evaluator
app/agents/evaluator.py - Report Generation
app/services/report_generator.py
Knowledge and Memory
- Resume Parsing and Matching
app/resume/parser.py - Retrieval Query Builder
app/rag/query_builder.py - Hybrid RAG Retriever
app/rag/retriever.py - Question Vector Index
app/rag/vector_store.py - Long-Term Memory Service
app/memory/service.py - Memory Stores
app/memory/store.py - Memory Vector Store
app/memory/vector_store.py
Persistence and Services
- Session Repository
app/services/session_repository.py - Graph Checkpoint
app/services/checkpoint.py - Redis Runtime Features
app/cache/redis_client.py
Other components
- Candidate
- LLM and Embedding Provider
- PostgreSQL
- ChromaDB
Connections 36
- Candidate → React Web Client: uses
- React Web Client → FastAPI Application: requests
- FastAPI Application → Auth API: routes auth
- FastAPI Application → Interview REST API: routes REST
- FastAPI Application → Interview WebSocket: routes WebSocket
- Interview REST API → Session Manager: manages sessions
- Interview WebSocket → Session Manager: manages sessions
- Session Manager → Interview StateGraph: starts or resumes
- Interview StateGraph → Parallel Preparation: prepares professional mode
- Parallel Preparation → JD Analysis: analyzes JD
- Parallel Preparation → Resume Analysis: analyzes resume
- Resume Analysis → Resume Parsing and Matching: parses and matches
- Interview StateGraph → JD Analysis: analyzes practice JD
- Interview StateGraph → Question Planner: plans questions
- Interview StateGraph → Question and Assessment: asks and assesses
- Interview StateGraph → Round Evaluator: summarizes and evaluates
- Question Planner → Retrieval Query Builder: builds retrieval queries
- Question Planner → Hybrid RAG Retriever: retrieves questions
- Hybrid RAG Retriever → Question Vector Index: searches
- Question Vector Index → ChromaDB: stores vectors
- Hybrid RAG Retriever → LLM and Embedding Provider: requests embeddings
- Question Planner → Long-Term Memory Service: recalls personalization
- Question and Assessment → Long-Term Memory Service: records answer episodes
- Round Evaluator → Long-Term Memory Service: saves reflections
- Long-Term Memory Service → Memory Stores: reads and writes
- Long-Term Memory Service → Memory Vector Store: indexes and recalls
- Memory Stores → PostgreSQL: persists production memory
- Memory Vector Store → PostgreSQL: pgvector production index
- Interview StateGraph → LLM and Embedding Provider: generates interview content
- Session Manager → Session Repository: persists session state
- Session Repository → PostgreSQL: reads and writes
- Interview StateGraph → Graph Checkpoint: saves graph state
- Graph Checkpoint → PostgreSQL: checkpoints
- Session Manager → Redis Runtime Features: uses runtime enhancements
- Interview StateGraph → Report Generation: generates final report
- Report Generation → Session Manager: returns report