Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 AI Interview Coach

An AI-powered interview preparation system using multi-agent architecture, RAG, and local LLMs via Ollama β€” 100% free, no paid APIs.

🧠 What does this project do?

This system helps you prepare for technical interviews with:

  1. Personalized Questions β€” Generates questions from YOUR job description
  2. Real-time Evaluation β€” Scores and critiques your answers
  3. Expert Coaching β€” Helps you improve with actionable feedback
  4. Knowledge Base β€” Uses RAG to reference technical documentation
  5. Voice Mode β€” Answer questions by speaking (Whisper STT)
  6. Function Calling β€” Tool-use patterns for agentic dispatch

πŸ—οΈ Multi-Agent Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    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   β”‚                              β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                              β”‚
β”‚                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Technologies

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

πŸ€– The Three Agents

🎀 Interviewer Agent

  • Generates technical interview questions
  • Adapts based on job description
  • Asks follow-up questions
  • Simulates real interview scenarios

πŸ“Š Evaluator Agent

  • Scores answers (1-10)
  • Identifies strengths and weaknesses
  • Compares against reference knowledge
  • Provides detailed feedback

πŸŽ“ Coach Agent

  • Helps improve weak answers
  • Explains concepts clearly
  • Creates personalized study plans
  • Mentors throughout preparation

πŸ“š RAG System

The system uses Retrieval Augmented Generation with 100% local components:

  1. Load Documents β€” Upload job descriptions, tech docs
  2. Create Embeddings β€” Convert to vectors with HuggingFace (local, free)
  3. Store in ChromaDB β€” Persistent vector database (local, free)
  4. Semantic Search β€” Find relevant context for questions
  5. Augment Responses β€” Use context to improve accuracy

πŸŽ™οΈ Voice Mode (Whisper NLP)

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 voice command during sessions

πŸ”§ Function Calling / Tool Use

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})

πŸ“‹ Requirements

  • Python 3.10+
  • Ollama installed and running (free: https://ollama.com)
  • 2-4GB disk space (for models)
  • No API keys needed!

πŸš€ Installation

1. Clone the repository

git clone https://github.com/yourusername/ai-interview-coach.git
cd ai-interview-coach

2. Install Ollama (free, local LLM runtime)

# 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, lightweight

3. Create virtual environment

python -m venv venv

# Windows
.\venv\Scripts\Activate

# macOS/Linux
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run the application

# Make sure Ollama is running first:
ollama serve

# Then in another terminal:
python src/main.py

πŸ’» Usage

Interactive Mode

python src/main.py

Commands:

  • start [topic] β€” Start interview on a topic
  • next β€” Get next question
  • explain X β€” Explain a concept
  • plan [days] β€” Get study plan
  • questions β€” Generate practice questions
  • voice β€” Toggle voice mode (Whisper)
  • tools β€” List function-calling tools
  • quit β€” Exit

Example Session

>>> 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 Individual Components

# 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.py

πŸ“ Project Structure

ai-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

🎯 Skills Demonstrated

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

Why this kind of project?

I wanted to improve my knowledge in this area as I am having an interview related to this soon.

About

An AI-powered interview preparation system using multi-agent architecture, RAG, and local LLMs via Ollama

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages