Home / Projects / NexPrep AI
AI Platform · Case Study
NexPrep AI
An AI mock-interview platform where you answer aloud and get an instant 1–10 score with structured, honest feedback — plus an ATS résumé checker and educator cohorts.
Next.js
React 19
MongoDB
Firebase Auth
Google Gemini
Web Audio API
Overview
NexPrep AI is a full-stack, AI-powered mock-interview platform for job seekers — especially students and early-career developers. A user spins up an interview tailored to a specific role, job description, difficulty, and interview type, answers each question aloud like a real interview, and gets back an instant 1–10 score with written, section-by-section feedback comparing their answer to an ideal one.
It's built as a complete product, not a demo: alongside the interview engine sit a rule-based ATS résumé checker, a résumé builder, a progress dashboard with gamification, and an educator "cohort" mode a mentor or bootcamp can deploy to a whole class.
The Problem & Discovery
Job seekers have no cheap, on-demand way to actually practice interviews and get honest, specific feedback. Human mock interviews are scarce and awkward; generic question lists give no scoring; watching videos is passive. Strong candidates still freeze in the room because they've never rehearsed under pressure.
Before writing a line of code, I surveyed 20 job-seekers to pin down where prep actually breaks. The recurring pain wasn't "I don't know the questions" — it was "I never find out why my answer was weak." That insight set the product's north star: not more questions, but instant, specific, credible feedback on the answer you just gave.
Key Features
- AI interview generation — Google Gemini generates a categorized question set from the role, job description, years of experience, interview type (Technical / Behavioral / HR / Mixed), and difficulty. Duration maps to question count (15 min → 5 questions, 30 → 7, 45 → 9).
- Voice answering + AI scoring — you answer by speaking; the browser captures audio via the Web Audio API and Gemini transcribes and scores it in a single call, rating the answer 1–10 against the model answer. A typed fallback is fully supported when a mic isn't available.
- Structured per-answer feedback — every answer returns Overall Impression, Correctness vs. Expected Answer, Missing Key Concepts, and a Final Recommendation — persisted so you can review any past session.
- Progress dashboard + gamification — average score, questions solved, best score, and a practice streak, with an XP-level curve and unlockable badges derived from real activity.
- ATS résumé checker — a rule-based scorer (structure, impact, skills, style, brevity) that parses PDF/DOCX, detects missing sections, counts action verbs and quantified impact, and computes matched vs. missing keywords against a target JD.
- Résumé builder & educator cohorts — four résumé templates with a live editor; and a cohort mode where a mentor shares an invite code and watches each student's interview count and average score.
Product Decisions That Shaped It
The interesting engineering here is mostly product judgement:
- Voice-first, but graceful. Answering aloud mirrors a real interview — but mics and cameras fail, so a typed path is fully built and the UI makes clear "you can still answer." The realistic mode never becomes a blocker.
- Transcribe and evaluate in one model call. I deliberately route audio through Gemini rather than the browser's speech-to-text, because it handles accents, technical terms, and long answers far better — a real accuracy-over-simplicity trade-off.
- Feedback that's credible, not flattering. The scoring prompt is explicitly "strict but fair," bands the 1–10 scale, and is instructed to rate only what the candidate actually said — because inflated praise would defeat the entire product.
- Reliability as a feature. The AI layer retries with model fallbacks (gemini-2.5-flash → lite → 2.0) and surfaces an honest "AI is busy, try again"; the ATS parser always returns a result even on a parse failure. The user is never left staring at a dead screen.
- Cohorts as a distribution wedge. Solo practice is the core loop, but the educator mode turns NexPrep into something a bootcamp or college can adopt for a whole batch — a deliberate lever beyond the single user.
Architecture
NexPrep is layered so each concern scales independently:
- Client (Next.js App Router, React 19): the interview UI, webcam-on experience, Web Audio capture (record → 16 kHz WAV → server action), and a live on-screen caption via the Web Speech API.
- AI layer (Google Gemini): server actions call Gemini for question generation and for the combined transcribe-and-score step, with retry/backoff and multi-model fallback, JSON response mode, and the API key kept strictly server-side.
- Auth (Firebase): email/password + Google sign-in on the client; every server action verifies a Firebase ID token with the Admin SDK and derives identity from the token, never the client payload.
- Data (MongoDB / Mongoose): mock interviews, per-answer results, cohorts, and user profiles, with a cached connection singleton and indexes on the real query patterns.
- Safety rails: ownership checks on every read/write, a per-user daily AI rate limit, and a GDPR-style delete-my-data path.
My Role & Engineering Highlights
- Scoped and built the entire product solo — frontend, data layer, AI prompt design, and the in-browser voice pipeline.
- Engineered Gemini prompts to return structured, rubric-based JSON instead of free-form text, so scoring stays consistent and explainable.
- Designed the low-latency loop — question → speak → transcribe + score → feedback — to feel instant.
- Made identity and access secure by construction: server-side token verification, per-record ownership checks, rate limiting, and user-data deletion.
What I'd Harden Next
Being honest about the roadmap is part of the product thinking: expand the static question bank into a larger, tagged pool; add real PDF export to the résumé builder; layer lightweight analytics to actually measure whether practice improves scores over time; and evolve the heuristic ATS rubric toward JD-aware semantic matching.
Impact
NexPrep turns passive interview prep into active, pressure-tested practice with feedback you can act on — and demonstrates the full arc of product work: talk to users, find the real pain, design the system, ship it, and be honest about what's next.
It's the most complete thing I've built alone — depth in LLM integration, a real-time voice pipeline, security-minded data access, and a genuinely user-centered core loop.
Explore Related Projects