Content
# InterviewPilot
### AI-Powered Interview Simulation & Preparation Platform
InterviewPilot is an intelligent interview simulation platform designed to help candidates prepare for technical and behavioral interviews through adaptive AI-driven conversations.
Built with **LangGraph**, **RAG (Retrieval-Augmented Generation)**, **FastAPI**, and **Model Context Protocol (MCP)** integrations, InterviewPilot creates realistic interview experiences, evaluates responses, identifies knowledge gaps, and generates personalized study notes.
Candidates can define an interview topic, upload resumes or job descriptions, and participate in interactive interview sessions tailored to their skill level.
---
## InterviewPilot in Action
| Main Interface (Launch Screen) | Live Chat & Real-Time Performance Analytics |
| :-----------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------: |
|  |  |
---
## Key Features
* **Agentic Workflow Orchestration via LangGraph:** The entire interview lifecycle (Question Generation → Answer Evaluation → Follow-up Actions → Summary Generation) is modeled as a state-driven workflow using LangGraph.
* **Real-Time Streaming via SSE:** Planning steps, interview progress, and agent outputs are streamed instantly to the frontend using Server-Sent Events (SSE).
* **Adaptive Difficulty Engine:** Dynamically adjusts interview difficulty (EASY, MEDIUM, HARD) based on candidate performance throughout the session.
* **RAG-Powered Context Retrieval:** Uploaded resumes, job descriptions, PDFs, and web resources are indexed and retrieved through ChromaDB to generate highly relevant interview questions.
* **MCP-Powered Study Notes:** Weak areas identified during interviews are automatically converted into structured study notes through MCP-compatible integrations.
* **Multi-Model Support:** Easily switch between supported LLM providers and models for different interview experiences.
* **Performance Analytics:** Track scores, strengths, weaknesses, and overall interview progress throughout the session.
* **Modern Dashboard Experience:** Built with React, TypeScript, and Tailwind CSS to provide a clean and interactive user experience.
---
## System Architecture
InterviewPilot operates as a state-driven workflow orchestrated by LangGraph.
```mermaid
graph TD
START -->|route_action| build_context[Build Context]
build_context --> load_resources[Load Resources]
load_resources --> research_summary[Research & Summarization]
research_summary --> index_documents[Index Documents]
index_documents --> retrieve_context[Retrieve Context]
retrieve_context --> generate_question[Generate Question]
generate_question --> wait_for_answer[Wait For User Answer]
wait_for_answer --> evaluate_answer[Evaluate Answer]
evaluate_answer --> supervisor[Supervisor]
supervisor -->|next_question| generate_question
supervisor -->|study_note| create_note[Create Study Note]
create_note --> generate_question
supervisor -->|summary| summary[Generate Summary]
summary --> END
```
---
## Workflow Overview
1. User selects an interview topic.
2. Optional documents (resume, job description, PDFs) are uploaded.
3. Resources are processed and indexed through the RAG pipeline.
4. LangGraph generates interview questions using retrieved context.
5. User submits answers.
6. Answers are evaluated and scored.
7. Weak areas are converted into study notes.
8. Difficulty adapts based on performance.
9. A final interview summary and feedback report is generated.
---
## Project Structure
```text
├── agents/ # AI agents (evaluation, note generation, planning)
├── api/ # FastAPI application and API endpoints
├── config/ # Application configuration
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── pages/
│ │ ├── services/
│ │ └── types/
│
├── graph/ # LangGraph workflow definitions
│ ├── nodes/
│ ├── state.py
│ └── builder.py
│
├── llm/ # LLM provider abstractions
├── mcps/ # MCP integrations and managers
├── models/ # Shared data models
├── rag/ # Retrieval-Augmented Generation pipeline
├── services/ # Business logic and interview engine
├── storage/ # Local storage implementations
└── tests/ # Unit and integration tests
```
---
## Technology Stack
### Backend
* Python
* FastAPI
* LangGraph
* LangChain
* ChromaDB
* Pydantic
* MCP (Model Context Protocol)
### Frontend
* React
* TypeScript
* Tailwind CSS
* Vite
### AI & Data
* Groq
* OpenAI
* Google Gemini
* Vector Embeddings
* Retrieval-Augmented Generation (RAG)
---
## Installation & Setup
### Prerequisites
* Python 3.10+
* Node.js 18+
* Groq, OpenAI, or Gemini API Key
---
### Backend Setup
#### Option A — Using uv (Recommended)
```bash
uv sync
source .venv/bin/activate
```
Windows:
```bash
.venv\Scripts\activate
```
#### Option B — Using pip
```bash
python -m venv .venv
source .venv/bin/activate
```
Windows:
```bash
.venv\Scripts\activate
```
Install dependencies:
```bash
pip install -r requirements.txt
```
---
### Environment Variables
Create a `.env` file:
```env
GROQ_API_KEY=your_groq_api_key
OPENAI_API_KEY=your_openai_api_key
GOOGLE_API_KEY=your_google_api_key
```
---
### Run Backend
```bash
uvicorn api.app:app --reload
```
Backend runs on:
```text
http://localhost:8000
```
---
### Frontend Setup
```bash
cd frontend
npm install
npm run dev
```
Frontend runs on:
```text
http://localhost:5173
```
---
## Example Use Cases
### Technical Interview Preparation
* Android Developer
* Backend Engineer
* Frontend Engineer
* Python Developer
* DevOps Engineer
### Behavioral Interviews
* Leadership Questions
* Team Collaboration
* Conflict Resolution
* Communication Skills
### Company-Specific Preparation
* Upload Job Description
* Upload Resume
* Practice Targeted Interview Questions
---
## Roadmap
### Core Platform
* [ ] PostgreSQL-based session persistence
* [ ] Resume interview sessions
* [ ] User authentication & profiles
* [ ] Historical interview dashboard
### Advanced RAG
* [ ] Hybrid Search (BM25 + Vector Search)
* [ ] Parent Document Retriever
* [ ] Multi-Query Retrieval
* [ ] Context Reranking
### MCP Ecosystem
* [ ] Google Sheets Integration
* [ ] Notion Integration
* [ ] GitHub Integration
* [ ] MCP Connection Pooling
### Multi-Agent Architecture
* [ ] Supervisor Agent Pattern
* [ ] Specialized Evaluation Agents
* [ ] Research Agent
* [ ] Study Planner Agent
### Analytics & Observability
* [ ] LangSmith Integration
* [ ] Agent Performance Metrics
* [ ] Cost Tracking
* [ ] Usage Analytics
### Learning Assistant
* [ ] Personalized Study Plans
* [ ] Learning Calendar
* [ ] Note Deduplication
* [ ] Skill Gap Analysis
### Voice Interviews
* [ ] Speech-to-Text Candidate Responses
* [ ] AI Voice Interviewer
* [ ] Real-Time Voice Conversations
* [ ] Mock Phone Interviews
---
## Vision
InterviewPilot aims to become a personal AI interview coach that helps candidates practice, learn, and improve continuously through adaptive interview simulations, personalized feedback, and intelligent learning recommendations.
---
## Contributing
Contributions, ideas, and feedback are always welcome.
Feel free to open an issue or submit a pull request.
---
## License
This project is licensed under the MIT License.