Skip to content

Repository files navigation

Typing SVG

An AI-powered interview preparation platform that generates adaptive questions from your resume, evaluates your answers in real-time, and tracks your growth across sessions.


Live Demo React Node.js MongoDB Redux


📸 Screenshots

Dashboard Interview Session
Dashboard Interview
AI Feedback Analytics
Feedback Analytics

✨ What It Does

  • 📄 Resume Parser — Upload your PDF resume; the AI reads it and generates questions tailored to your actual experience and skills
  • 🎯 Adaptive Questions — Choose your target role, experience level, and difficulty; questions adjust accordingly
  • 🤖 Real-time AI Feedback — Every answer gets scored with strengths, weaknesses, and an ideal answer
  • 🎙️ Voice Interview Mode — Speak your answers using the Web Speech API (works on the live site)
  • 🔄 Multi-LLM Routing — Groq is primary; Gemini and OpenRouter are fallbacks — if one is down, the next kicks in automatically
  • 📊 Analytics Dashboard — Track your score trends, topic-wise performance, and weak areas across sessions
  • 📥 Downloadable Reports — Export your session as a PDF with all questions, answers, and feedback

🛠️ Tech Stack

Layer Technology
Frontend React, Redux Toolkit, Tailwind CSS
Backend Node.js, Express.js
Database MongoDB + Mongoose
Auth JWT + bcrypt
LLM Routing Groq (primary) → Gemini → OpenRouter
Resume Parsing pdf-parse + Multer
Voice Web Speech API
Deployment Netlify (frontend) · Render (backend)

🏗️ Architecture

User uploads PDF resume
        ↓
Multer + pdf-parse → extract text
        ↓
Resume text + job role → LLM Router
        ↓
Groq → Gemini → OpenRouter  (fallback chain)
        ↓
Adaptive questions generated
        ↓
User answers via text or voice
        ↓
AI scores answer → Strengths / Weaknesses / Ideal Answer
        ↓
Results stored in MongoDB → Analytics Dashboard updated

🚀 Local Setup

# 1. Clone
git clone https://github.com/arka562/ai-interview-prep.git
cd ai-interview-prep

# 2. Backend
cd backend
npm install
cp .env.example .env    # Fill in your keys
npm run dev             # Runs on http://localhost:5000

# 3. Frontend (new terminal)
cd frontend/ai_interview_prep
npm install
cp .env.example .env    # Use local API URL during development
npm run dev             # Runs on http://localhost:5173

Required .env variables (backend):

MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
GROQ_API_KEY=your_groq_key
GEMINI_API_KEY=your_gemini_key
OPENROUTER_API_KEY=your_openrouter_key

Frontend .env variable:

VITE_API_BASE_URL=http://localhost:5000/api/v1

🐳 Docker & CI/CD

This repo includes Docker Compose for local full-stack development and GitHub Actions workflows for CI, Docker image publishing, and deployment automation.

docker compose up --build

See CI_CD_SETUP.md for the full Docker, GitHub Actions, Netlify, and Render setup.


📁 Project Structure

ai-interview-prep/
├── backend/
│   ├── controllers/        # Route logic
│   ├── models/             # Mongoose schemas
│   ├── routes/             # API endpoints
│   ├── middleware/         # Auth, file upload
│   └── server.js
├── frontend/
│   ├── src/
│   │   ├── components/     # Reusable UI components
│   │   ├── pages/          # Dashboard, Interviews, Resume, Analytics
│   │   ├── store/          # Redux Toolkit slices
│   │   └── App.jsx
└── README.md

📊 Feature Walkthrough

1. Resume-Based Question Generation
Upload any PDF resume. The backend extracts the text using pdf-parse, sends it to the LLM along with your selected role and difficulty, and generates questions that are specific to what's actually on your resume — not generic questions.
2. Voice Interview Mode
Click the mic button during an interview session. The Web Speech API records your spoken answer, converts it to text, and submits it for AI evaluation. Works directly on the live Netlify deployment — no additional setup needed.
3. Multi-LLM Fallback Chain
The backend tries Groq first (fastest, most reliable). If the Groq API fails or rate-limits, it automatically falls back to Gemini, then OpenRouter. This means the platform stays functional even during provider outages.
4. Analytics & Topic Tracking
Every session is stored in MongoDB. The Analytics page shows your average score, accuracy rate, improvement rate, and topic-level breakdown — so you know exactly which areas to focus on next.

⚠️ Known Limitations

  • Backend is hosted on Render's free tier — first request after inactivity may take 30–50 seconds (cold start). The app works fine after that.
  • Voice mode works best on Chrome. Firefox and Safari have limited Web Speech API support.

👤 Author

Arkaprava Ghosh
B.Tech IoT & Intelligent Systems, Manipal University Jaipur

LinkedIn GitHub Email


If you found this useful, drop a ⭐ — it helps with visibility.

About

AI-powered interview preparation platform with adaptive question generation, voice interview mode, and multi-LLM routing (Gemini, Groq, OpenRouter). Built with MERN stack, Redux Toolkit, JWT auth, and resume PDF parsing. Deployed on Netlify.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages