
Welcome to Interview Simulator
Interview Simulator is an intelligent interview preparation platform that helps job seekers practice interviews with AI-powered feedback and CV optimization suggestions. Built with Flask and powered by Google Gemini and OpenRouter, it delivers realistic mock interviews tailored to your background and target role.Quick start
Get up and running in 5 minutes with your first mock interview
Installation
Set up locally or deploy with Docker
Architecture
Understand the layered design and AI provider pattern
API reference
Explore endpoints and integration options
Key features
Document analysis
Upload your CV in PDF, DOCX, or TXT format alongside the job description. The platform extracts text usingpdfplumber and python-docx to build a complete picture of your experience.
AI-powered interviews
Engage in realistic conversations with adaptive questioning from multiple AI providers. The system supports Google Gemini and OpenRouter with a pluggable provider pattern.Smart feedback
Receive detailed performance analysis including:- Performance score (1-10)
- Strengths you demonstrated
- Areas for improvement
- CV optimization recommendations
Progress tracking
Monitor your interview sessions with up to 8 questions per session. Resume incomplete sessions anytime with persistent conversation history.How it works
Tech stack
Backend- Flask 3.1 for lightweight web framework
- SQLAlchemy ORM with SQLite database
- Tenacity for retry logic and reliability
- Google Gemini and OpenRouter APIs
- Provider pattern for easy switching
- Exponential backoff for API resilience
- HTMX for dynamic interactions without complex JavaScript
- Jinja2 server-side templating
- Progressive enhancement approach
- pdfplumber for PDF extraction
- python-docx for Word documents
- Graceful error handling for corrupted files
Design principles
Layered architecture
The application follows a clean separation of concerns:- Services handle business logic and orchestration
- Repositories abstract database operations
- Routes manage HTTP requests and responses
Provider pattern
TheAIProvider protocol allows seamless switching between AI services:
Session-based state
Flask sessions track user interview sessions without requiring authentication, keeping the MVP simple and accessible.Get started
Ready to practice your interviews? Head over to the quickstart guide to run your first mock interview in minutes.View on GitHub
Check out the source code and contribute
