An intelligent, multi-page technical interview simulator and ATS resume scanner powered by Google Gemini AI.
This application provides two main features:
- Interview Simulator: Generate customized interview questions based on your target role, industry, and skills/experience (optionally grounded in a job description). Answer them one at a time in a wizard, with background AI evaluation and comprehensive feedback.
- ATS Resume Scanner: Upload a PDF resume and paste a job description to get an ATS compatibility score, keyword analysis, and actionable improvement suggestions.
- AI-Powered Question Generation: Generates relevant technical questions using Google Gemini (default
gemini-2.5-flash, configurable viaGEMINI_MODEL). - Interactive Multi-Page Wizard: Focused, one-question-at-a-time user experience with progress tracking.
- Background Evaluation: Non-blocking architecture evaluates answers asynchronously as the user progresses.
- Rich Results Dashboard: Animated circular score charts and detailed feedback (strengths and areas for improvement).
- PDF Resume Upload: Drag-and-drop or click-to-upload with validation (2MB max, 50-page limit).
- ATS Compatibility Scoring: Overall score (0-100) with category breakdowns (keywords, skills, experience, format).
- Keyword Analysis: Shows matched and missing keywords from the job description.
- Improvement Suggestions: AI-powered actionable recommendations to improve resume-JD match.
The project is structured as a mono-repo divided into two main applications:
- interviewi-api (Backend): Python Flask API utilizing SQLAlchemy (SQLite/PostgreSQL) and LangChain for AI integration.
- web (Frontend): Angular 16 Single Page Application with custom CSS, glassmorphism UI, and RxJS state management.
- Python 3.8+
- Node.js 18+ & npm
- Google Gemini API Key
cd interviewi-api
python -m venv venv
# Windows: .\venv\Scripts\Activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements-dev.txt # runtime + dev deps (pytest, ruff)
# Create your environment file
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY (GEMINI_MODEL is optional)
# Start the Flask server (runs on http://localhost:5000)
python app.pycd web
npm install
# Start the Angular development server (runs on http://localhost:4200)
npm start# Backend (from interviewi-api/)
python -m pytest -q # 104 tests
python -m ruff check .
# Frontend (from web/)
npm run test:ci # Karma headless
npm run lint
npm run build # production buildDetailed documentation about the architecture and implementation flows can be found in the root directory:
IMPLEMENTATION_SUMMARY.md: Overview of the wizard flow refactor and ATS scanner.WIZARD_FLOW_DOCUMENTATION.md: Deep dive into the multi-page logic.FEATURE_DOCUMENTATION.md: Feature specs for answer submission and ATS scanner.QUICK_START.md: Additional commands and routing information.