Skip to content

aditya2425/InterviewGPT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

InterviewGPT — AI-Powered Mock Interview System

Project 8 of the GenAI Developer Roadmap 2026. An adaptive mock interview system with question generation, heuristic answer evaluation, session management, and progress tracking analytics.

Architecture

Question Bank → Session Manager → Adaptive Engine
       ↓               ↓               ↓
  Templates &     Answer Submit →   Difficulty
  Generator       Evaluation →     Adjustment
                  Follow-ups       Topic Focus
                       ↓
              Analytics & Reports
              (Stats, Progress, Export)

Weekly Breakdown

Week 1 — Question Bank & Answer Evaluation (143 tests)

Core models, question templates, and heuristic evaluation engine.

Module Purpose
src/models/enums.py Difficulty, QuestionType, Role, AnswerRating, SessionStatus
src/models/questions.py Question, QuestionBank (filter/search/serialize)
src/models/answers.py Answer, EvaluationCriterion, AnswerEvaluation
src/questions/templates.py 17 curated templates: behavioral (4), technical (6), system design (3), coding (2), situational (2)
src/questions/generator.py QuestionGenerator with filter, select, custom creation, follow-up generation
src/evaluation/criteria.py Per-type evaluation criteria (relevance, completeness, clarity, STAR format, accuracy, etc.)
src/evaluation/evaluator.py AnswerEvaluator with 14 heuristic scoring functions + optional LLM enhancement
src/evaluation/feedback.py FeedbackFormatter with score bars, strengths/improvements, summary
src/llm/client.py Multi-provider LLM client (OpenAI/Anthropic) with fallback

Week 2 — Interview Sessions & Adaptive Flow (89 tests)

Session management, conversation tracking, and adaptive difficulty.

Module Purpose
src/session/models.py InterviewTurn, InterviewSession (status, scoring, duration tracking)
src/session/manager.py SessionManager: create, submit answers, follow-ups, save/load JSON
src/session/adaptive.py AdaptiveEngine: difficulty promotion/demotion, weak topic/type detection, performance trend
src/session/conversation.py ConversationManager: message history, transcript formatting, serialization

Week 3 — Analytics & Progress Tracking (63 tests)

Performance statistics, progress tracking, and report generation.

Module Purpose
src/analytics/stats.py PerformanceStats: averages, std dev, passing rate, breakdowns by difficulty/type/topic
src/analytics/progress.py ProgressTracker: score timeline, improvement rate, moving average, topic mastery, streaks
src/analytics/report.py ReportGenerator: summary report, session report, JSON export

Key Design Decisions

  • No API keys required: All evaluation uses heuristic scoring (keyword overlap, STAR format detection, complexity analysis markers). LLM client is optional enhancement
  • Adaptive difficulty: Promotes on avg >= 7.5, demotes on avg <= 4.0, with topic and question-type weakness detection
  • 14 scoring heuristics: relevance, completeness, clarity, depth, structure, examples, STAR format, accuracy, correctness, complexity analysis, scalability, tradeoffs, practicality, leadership
  • Deterministic selection: Seed-based question selection for reproducible sessions
  • JSON persistence: Sessions save/load to disk for continuity

Question Bank

17 curated interview templates across 5 question types:

Type Count Topics
Behavioral 4 teamwork, learning, growth, decision making
Technical 6 OS, distributed systems, data structures, databases, API design, SOLID
System Design 3 URL shortener, chat app, rate limiter
Coding 2 two sum, LRU cache
Situational 2 tech decisions, incident response

8 supported roles: Software Engineer, Frontend, Backend, Data Engineer, ML Engineer, DevOps, Product Manager, Data Scientist.

Usage

# List available questions
python main.py list-questions --role software_engineer

# Start an interview session
python main.py start --role software_engineer --difficulty medium --questions 5

# View available topics
python main.py topics

# Generate performance report
python main.py report --input sessions.json --output report.json

# View statistics
python main.py stats

Test Results

Week 1 — Question Bank & Evaluation:  143 tests passed
Week 2 — Sessions & Adaptive Flow:     89 tests passed
Week 3 — Analytics & Progress:          63 tests passed
──────────────────────────────────────────────────────
Total:                                  295 tests passed

Configuration

All settings via environment variables (see src/config/settings.py):

Variable Default Purpose
DEFAULT_DIFFICULTY medium Starting difficulty level
QUESTIONS_PER_SESSION 5 Default questions per session
MAX_FOLLOW_UPS 2 Max follow-up questions per turn
ANSWER_MIN_LENGTH 20 Minimum answer length (chars)
PASSING_SCORE 6.0 Score threshold for "passing"
MAX_SCORE 10.0 Maximum possible score
EVAL_TEMPERATURE 0.3 LLM evaluation temperature

About

AI mock interview system: adaptive difficulty, 14 heuristic scoring functions, session management & progress analytics

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages