
InterviewMate — Voice-First AI Mock Interview Platform
InterviewMate is an AI-powered mock interview platform that lets users practice realistic interviews through live voice conversations.
Timeline
1–2 months
Role
Full Stack Developer / AI Engineer
Team
Solo
Status
CompletedTechnology Stack
Overview
InterviewMate is a voice-first AI mock interview platform. Users speak to an AI interviewer in real time, and after the session ends, they receive structured feedback with per-question scores, improvement points, and progress tracking across sessions.
The goal was to make interview prep feel like the real thing — not a question bank or a chatbot, but a live conversation with an interviewer who asks follow-ups, holds context, and gives honest feedback at the end.
The Problem
Most interview prep tools are static. They give you a list of questions, maybe some model answers, and call it practice. That doesn't help with the part that actually matters: thinking under pressure, speaking clearly, and staying composed in a real conversation.
Hiring a human coach to practice consistently is expensive. AI chatbots feel nothing like a real interview. And most tools give feedback that's too vague to act on — "improve your communication" isn't useful.
How It Works
The flow is straightforward from the user's side: configure an interview, start talking, review the report. Behind the scenes, two separate systems handle it.
The interview session runs through Vapi, which manages the live voice conversation in real time. The full transcript is captured and saved as the session progresses.
Once the interview ends, the analysis pipeline kicks in asynchronously. The transcript goes to OpenRouter, gets evaluated by Gemini, and comes back as structured feedback — per-question scores, strengths, areas to improve, and an overall performance summary. The user sees their results a few moments later.
Keeping these two systems separate was the most important architectural decision. The live session stays fast and responsive because it never waits on AI analysis. And the analysis step is deterministic — it always works from the same saved transcript, so if something fails, it can be retried cleanly.
Screenshots
Landing Page & Voice Sandbox

Performance Evaluation Dashboard

Setup Room & Active Session Workspace

Interview Processing Flow

What I Built
Real-Time Voice Interview
A live voice interview session powered by Vapi. The AI interviewer asks questions, listens to responses, handles follow-ups, and manages the conversation flow naturally. Users speak — the AI responds.
Dynamic Interview Setup
Users configure the interview before it starts: role, experience level, interview type, interviewer persona, and optional resume or job description context. The AI uses this to tailor the questions and tone of the session.
Transcript Capture
The full conversation is streamed, normalized, and persisted as the session runs. The transcript becomes the source of truth for everything that follows — analysis, reports, and history.
Async AI Evaluation
After the interview ends, the transcript is evaluated by Gemini through OpenRouter. The analysis returns structured data: per-question feedback, scores, strengths, weak spots, and an overall performance summary. It runs after the session, never during.
Multi-Model Fallback
If one Gemini model fails or hits a rate limit, the system automatically moves to the next model in the chain. The user's report still gets generated — the failure is handled silently.
Custom JWT Authentication
Full authentication built from scratch: signup, login, HTTP-only session cookies, protected routes, and session restoration. No third-party auth provider — just full control over the auth layer.
Interview History & Analytics
Users can revisit past interviews, read their reports, and see performance trends across sessions. The dashboard shows how scores evolve over time and where improvement is happening.
Technical Challenges
Keeping the live session fast
AI evaluation takes time. If the session waited for analysis before returning to the user, the experience would feel broken. The solution was to decouple them entirely — the interview ends, the transcript is saved, and the analysis runs in the background. The user gets their report when it's ready, not when the interview finishes.
Handling AI reliability
Language model APIs fail. They rate-limit, they time out, they return malformed responses. Building a multi-model fallback through OpenRouter meant the evaluation pipeline could survive individual model failures without the user ever knowing. The structure of the prompt also matters — asking for structured JSON output made the results parseable and consistent.
Transcript normalization
Vapi streams partial and final transcript updates in real time. Getting a clean, ordered, speaker-attributed transcript out of that stream required careful normalization before it could be reliably sent for analysis.
Session lifecycle design
A voice interview session has more states than a typical web interaction: configuring, waiting, in-progress, completed, analyzing, failed. Designing a session lifecycle that handled each of those states correctly — and recovered gracefully from failures at any point — was one of the more complex parts of the backend.
What I Learned
This project pushed me into parts of full-stack development that most projects don't touch — real-time voice, long-running AI jobs, and asynchronous pipelines where each step depends on the last.
The biggest shift in thinking: voice AI products aren't just AI wrapped in a UI. The session management, transcript handling, and reliability patterns around the AI layer are just as important as the model itself. Getting the model to produce good output is one problem. Making sure that output always reaches the user — even when things fail — is a separate and harder problem.
Future Direction
- Resume-aware and company-specific interview tracks
- Deepgram STT and ElevenLabs TTS for a fully custom voice pipeline
- Real-time interruption handling
- Adaptive follow-up questioning based on user responses
- PDF report exports and team dashboards
- Historical skill trend analysis and personalized improvement plans