Practice technical & behavioral interviews with AI voice agents, instant feedback, and performance analytics.
Tech Stack: Next.js • React • TypeScript • Prisma • NextAuth • Google Gemini API • Vapi (voice agents) • shadcn/ui • Tailwind CSS
AI Mock Interview Platform helps candidates rehearse interviews with realistic voice-driven agents and structured question sets. It generates tailored questions (role, level, skills), records responses (voice), scores performance, summarizes strengths & gaps, and tracks progress over time.
- Voice Interviews: Real-time AI voice via
Vapi
(web calling + event webhooks). - Question Generation: Google
Gemini
for role-aware question sets. - Feedback & Summaries: Gemini-based rubric, strengths, and next steps.
- Authentication: NextAuth with Google Sign-In + Credentials (demo accounts supported).
- UI:
shadcn/ui
components with Tailwind CSS. - Data: Prisma ORM (PostgreSQL by default).
- Pages: Landing, Interview Studio, History, Dashboard (Skill & Session analytics), Settings.
Landing Page![]() |
Dashboard — Skills Performance![]() |
Mock Interview Studio![]() |
Interview Panel![]() |
🎥 Video Walkthrough
- App Router (Next.js) with server actions for secure data ops.
- NextAuth for sessions (JWT) with Google provider + Credentials provider.
- Prisma schema with
User
,Interview
,Question
,Answer
,Score
,Transcript
. - Vapi session init on the client, server-side webhook (
/api/vapi/webhook
) for call events & transcripts. - Gemini used server-side for question generation, summaries, and feedback .
- shadcn/ui for accessible, consistent components; charts via a lightweight React chart lib.
- Role-based Templates: Option to create custom mock interviews.
- Interview Modes: Behavioral, Algo/DSA, System Design, Mixed.
- Voice : Speak with the agent .
- Scoring: Evaluated across key dimensions — Problem Solving, System Design, Communication Skills, Technical Accuracy, Behavioral Responses, and Time Management.
- Feedback: Bullet tips, improvement plan, follow-up questions.
- History: All sessions with transcripts & audio replays.
- Dashboard: Skill radar, progress over time, topic heat-map.
- Node.js 18+ (suggested 20+)
- PNPM / Yarn / NPM (examples use
pnpm
) - Database: PostgreSQL (default)
- Environment variables configured (see below)
Create .env.local
in the project root:
# NextAuth
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
# URLs
NEXT_PUBLIC_BASE_URL=http://localhost:3000
# Voice Agents (Vapi)
NEXT_PUBLIC_VAPI_TOKEN=
# Database (Postgres example)
DATABASE_URL=
# Google Gemini
GOOGLE_GENERATIVE_AI_API_KEY=
Tip: Generate AUTH_SECRET
with openssl rand -base64 32
- Client: Initialize Vapi with
NEXT_PUBLIC_VAPI_TOKEN
; start/stop calls from the Interview . - Server:
POST /api/vapi/webhook
receives call events, partial/final transcripts, and stores them via Prisma. - Sync: On-call end, the transcript triggers Gemini summarization + scoring.
- Question Generation: Creates interview questions based on role, level, and skills.
- Feedback: Provides detailed interview feedback — scores, strengths, improvements, and follow-up suggestions.
- Landing – Marketing info, feature highlights, and call-to-action (sign in / get started).
- Dashboard – Skill radar, recent improvements, session trends, and quick actions.
- Create Interview – Build a custom mock interview (role, skills, level, mode).
- Mock Interview List – View all created mock interviews and select one to take.
- Interview Panel – Live interview space (voice and real-time Q&A).
- History – Past sessions with transcripts and feedback.
Made with ❤️ using Next.js, TypeScript, Prisma, NextAuth, shadcn/ui, Vapi, and Google Gemini.