An AI-powered interview preparation system using multi-agent architecture, RAG, and local LLMs via Ollama β 100% free, no paid APIs.
This system helps you prepare for technical interviews with:
- Personalized Questions β Generates questions from YOUR job description
- Real-time Evaluation β Scores and critiques your answers
- Expert Coaching β Helps you improve with actionable feedback
- Knowledge Base β Uses RAG to reference technical documentation
- Voice Mode β Answer questions by speaking (Whisper STT)
- Function Calling β Tool-use patterns for agentic dispatch
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI INTERVIEW COACH β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β π€ Interviewerβ β π Evaluator β β π Coach β β
β β Agent β β Agent β β Agent β β
β β β β β β β β
β β β’ Asks β β β’ Scores β β β’ Improves β β
β β questions β β answers β β answers β β
β β β’ Follows up β β β’ Feedback β β β’ Explains β β
β β β’ Adapts β β β’ Compares β β β’ Plans β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
β β β β β
β ββββββββββββββ¬βββββ΄βββββββββββββββββ β
β β β
β βββββββββ΄ββββββββ β
β βπ RAG System |
β β β β
β β β’ Embeddings β β
β β β’ ChromaDB β β
β β β’ Documents β β
β βββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Technology | Purpose | Cost |
|---|---|---|---|
| LLM | Ollama (Llama 3 / Mistral) | Multi-agent reasoning | Free |
| Embeddings | HuggingFace sentence-transformers | Semantic search | Free |
| Vector Store | ChromaDB | Document storage | Free |
| Framework | LangChain + LangGraph | Agent orchestration | Free |
| NLP / STT | OpenAI Whisper (local) | Voice input | Free |
| UI (optional) | Streamlit | Web interface | Free |
- Generates technical interview questions
- Adapts based on job description
- Asks follow-up questions
- Simulates real interview scenarios
- Scores answers (1-10)
- Identifies strengths and weaknesses
- Compares against reference knowledge
- Provides detailed feedback
- Helps improve weak answers
- Explains concepts clearly
- Creates personalized study plans
- Mentors throughout preparation
The system uses Retrieval Augmented Generation with 100% local components:
- Load Documents β Upload job descriptions, tech docs
- Create Embeddings β Convert to vectors with HuggingFace (local, free)
- Store in ChromaDB β Persistent vector database (local, free)
- Semantic Search β Find relevant context for questions
- Augment Responses β Use context to improve accuracy
Answer interview questions by speaking! Uses OpenAI Whisper (the open-source model, NOT the paid API):
- Runs entirely locally β no data sent to any server
- Supports multiple languages
- Models: tiny (fastest) β large (most accurate)
- Toggle with the
voicecommand during sessions
The system implements a function-calling dispatcher pattern:
coach.dispatch_tool("start_interview", {"topic": "LangChain agents"})
coach.dispatch_tool("evaluate_answer", {"answer": "RAG combines..."})
coach.dispatch_tool("get_coaching", {"query": "How to explain RAG?"})
coach.dispatch_tool("generate_study_plan", {"days": 7})- Python 3.10+
- Ollama installed and running (free: https://ollama.com)
- 2-4GB disk space (for models)
- No API keys needed!
git clone https://github.com/yourusername/ai-interview-coach.git
cd ai-interview-coach# Download from https://ollama.com then:
ollama pull llama3 # recommended (8B params)
# or alternatives:
# ollama pull mistral # 7B, fast
# ollama pull gemma2 # 9B, Google
# ollama pull phi3 # 3.8B, lightweightpython -m venv venv
# Windows
.\venv\Scripts\Activate
# macOS/Linux
source venv/bin/activatepip install -r requirements.txt# Make sure Ollama is running first:
ollama serve
# Then in another terminal:
python src/main.pypython src/main.pyCommands:
start [topic]β Start interview on a topicnextβ Get next questionexplain Xβ Explain a conceptplan [days]β Get study planquestionsβ Generate practice questionsvoiceβ Toggle voice mode (Whisper)toolsβ List function-calling toolsquitβ Exit
>>> start LangChain agents
π INTERVIEWER:
Hello! I'm excited to discuss LangChain agents with you today.
Let's start: Can you explain what a ReAct agent is and how it differs
from a simple chain?
Your answer: A ReAct agent combines reasoning and acting...
β Score: 7/10
π EVALUATION:
STRENGTHS:
- Good understanding of the core concept
- Mentioned the reasoning-acting loop
AREAS FOR IMPROVEMENT:
- Could include a concrete example
- Didn't mention tool integration
# Test embeddings (free, local HuggingFace)
python src/rag/embeddings.py
# Test vector store
python src/rag/vector_store.py
# Test document loader
python src/rag/document_loader.py
# Test interviewer agent (requires Ollama running)
python src/agents/interviewer.py
# Test evaluator agent (requires Ollama running)
python src/agents/evaluator.py
# Test coach agent (requires Ollama running)
python src/agents/coach.py
# Test Whisper speech-to-text
python src/nlp/whisper_stt.pyai-interview-coach/
βββ src/
β βββ main.py # Main entry point & orchestrator
β βββ agents/
β β βββ interviewer.py # Interview question agent (Ollama)
β β βββ evaluator.py # Answer evaluation agent (Ollama)
β β βββ coach.py # Coaching and improvement agent (Ollama)
β βββ rag/
β β βββ embeddings.py # HuggingFace embeddings (free, local)
β β βββ vector_store.py # ChromaDB vector store
β β βββ document_loader.py # Document processing
β βββ nlp/
β βββ __init__.py # NLP module exports
β βββ whisper_stt.py # Whisper speech-to-text (free, local)
βββ knowledge/
β βββ job_descriptions/ # Your job descriptions
β βββ tech_docs/ # Technical reference docs
βββ data/
β βββ chroma_db/ # Persistent vector database
βββ requirements.txt
βββ README.md
This project demonstrates proficiency in:
- β Agentic AI Development β Multi-agent orchestration (Interviewer + Evaluator + Coach)
- β LangChain β Chains, prompts, agents, output parsers
- β Generative AI / LLMs β Local models via Ollama (Llama 3, Mistral, etc.)
- β Function Calling β Tool-use dispatcher pattern for agentic workflows
- β RAG Systems β HuggingFace embeddings + ChromaDB vector search
- β NLP / Whisper β Speech-to-text for voice-based interview practice
- β Python β Modern Python with type hints, clean architecture
- β System Design β Modular, scalable, zero-cost architecture
- β Problem Solving β Full-stack AI application without any paid APIs
I wanted to improve my knowledge in this area as I am having an interview related to this soon.