An AI-powered mock interview platform that generates personalized questions from your CV and delivers structured performance feedback.
Virtual Interview Navigator lets you upload your CV, specify a target job role and description, and step into a full mock interview — all powered by OpenAI. The system tailors every question to your specific background and grades your answers with detailed, actionable feedback.
| Feature | Description |
|---|---|
| 🧠 Personalized Questions | CV + Job Description fed directly into GPT-4o-mini for context-aware question generation |
| 🎙️ Voice Input | Speak your answers using the native Browser Speech Recognition API |
| 📊 Scored Feedback | Per-question scores (0–1.0) with Correct / Partial / Wrong badges |
| 📝 Full Report | Markdown report covering Communication, Confidence, Technical Accuracy & Improvement Areas |
| 🔐 Secure Auth | Stateless JWT authentication with protected routes |
| 📄 Document Parsing | Supports PDF and DOCX CV uploads |
- React 18 (Vite) — component-based UI
- Tailwind CSS — utility-first responsive styling
- Axios — HTTP client with JWT interceptors
- Web Speech API — browser-native voice recognition
- React Markdown — renders AI-generated feedback reports
- Python / Flask — lightweight REST API
- PostgreSQL (Neon) — relational data persistence
- SQLAlchemy — ORM and migration management
- OpenAI GPT-4o-mini — question generation & answer analysis
- PyPDF2 / python-docx — CV text extraction
- Vercel — frontend deployment
- Render — backend container hosting
- Neon — serverless PostgreSQL
interviewnav/
├── backend/
│ ├── app.py # Flask app, all API routes
│ ├── model.py # SQLAlchemy models
│ ├── prompts.py # OpenAI prompt templates
│ ├── config.py # Environment configuration
│ ├── extensions.py # DB & JWT initialization
│ └── requirements.txt
└── frontend/
├── src/
│ ├── pages/ # Home, Login, Interview, Report …
│ ├── services/ # api.js, authService.js
│ └── App.jsx
└── package.json
- Python 3.11+
- Node.js 18+
- PostgreSQL (local or Neon)
CREATE DATABASE "InterviewNavigator";cd backend
python -m venv venv
# Activate (choose your OS)
# Windows: venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements.txt
flask db upgrade
python app.pyCreate a backend/.env file:
DATABASE_URL=postgresql://user:password@localhost:5432/InterviewNavigator
OPENAI_API_KEY=sk-...
SECRET_KEY=your-secret-key
CORS_ORIGINS=http://localhost:5173cd frontend
npm install
npm run devCreate a frontend/.env file:
VITE_API_URL=http://localhost:5000| Setting | Value |
|---|---|
| Build Command | ./build.sh |
| Start Command | gunicorn app:app --timeout 300 |
| Env Vars | DATABASE_URL, OPENAI_API_KEY, SECRET_KEY, CORS_ORIGINS |
| Setting | Value |
|---|---|
| Framework | React (Vite) |
| Env Vars | VITE_API_URL → your Render backend URL (no trailing slash) |
1. Register / Login → JWT issued
2. Upload CV (PDF/DOCX) → Text extracted & stored
3. Enter Job Role + JD → Sent to GPT-4o-mini with CV context
4. Answer questions → Via text or voice input
5. Complete interview → GPT analyses all responses
6. View Report → Scores, badges & improvement suggestions