Interview AI

Interview AI is a full-stack multi-agent interview simulator built to help candidates practice realistic technical and behavioral interviews. The system analyzes resumes against job descriptions, creates structured interview plans, asks adaptive follow-up questions, and evaluates each answer in real time.
Beyond text-based interviews, the platform also supports voice mode with speech-to-text, text-to-speech, bilingual interactions, and streaming feedback. It combines a Next.js frontend with a FastAPI backend, LangGraph agent orchestration, PostgreSQL persistence, Redis caching, and a Groq-to-Gemini fallback strategy for resilient AI responses.
KEY CAPABILITIES
- Resume analysis against job descriptions with skills extraction and gap detection
- Adaptive interview flow with automatic follow-up questions based on answer depth
- Real-time answer evaluation and final coaching reports with actionable feedback
- Voice interview mode with Whisper transcription and edge-tts playback
- Bilingual interview support with Groq primary inference and Gemini fallback
PROBLEM
- Interview prep tools often provide static question banks, but they do not adapt to the candidate's resume, target role, or answer quality in real time.
- Most mock interview experiences also separate interview practice from coaching, forcing users to assemble feedback manually after the session.
CONSTRAINTS
- The experience had to feel adaptive and product-like, but still stay understandable and controllable across multiple agents and fallback models.
- Because the project spans frontend, backend, streaming, voice, and orchestration, complexity could grow quickly if the workflow boundaries were not explicit.
MY ROLE
- Designed the multi-agent flow, backend APIs, and overall full-stack architecture across frontend and backend boundaries.
- Implemented the orchestration strategy for resume analysis, question generation, evaluation, reporting, and fallback handling.
ENGINEERING CALLS
- I split the workflow into resume analysis, interview planning, interviewer behavior, evaluation, and coaching so each stage stayed easier to reason about.
- I used LangGraph orchestration because the project needed explicit state transitions rather than a single prompt chain that would be harder to debug.
- I added SSE streaming, voice support, and model fallback because the quality of the interview experience depended on responsiveness and resilience, not just raw generation quality.
WHY THIS STACK
- Next.js fit the product side because it made it easier to handle a more polished frontend flow, auth-aware UI, and live interaction patterns.
- FastAPI was a strong backend choice for orchestrating AI workflows, streaming endpoints, and voice-related utilities with clear server control.
- Redis and PostgreSQL worked well together here because the system needed both durable session/report storage and fast operational state for caching and limits.
Flow from interview setup to multi-agent evaluation and coaching report generation
INPUT -> SYSTEM -> OUTPUT
- 1
Input
Candidates provide a resume, target role, and job description, then respond through text or voice during the interview session.
- 2
System
LangGraph coordinates resume analysis, interview planning, adaptive follow-up logic, answer evaluation, and fallback-aware generation.
- 3
Output
The system produces a scored interview transcript, role-fit observations, and a coaching report with concrete next steps.
REPRESENTATIVE OUTPUT
## Interview Coaching Summary - Strongest signal: practical backend + AI workflow experience - Role fit: good match for AI engineer / ML application roles - Follow-up focus: system design depth and tradeoff communication ### Next improvement Give a tighter answer on why you chose LangGraph for explicit state transitions over a single prompt chain.
A coaching-style response that reflects how the product turns interaction data into something useful for the candidate.
WATCH ON YOUTUBE
This project shows that I can build an AI application as a real product system, not just an LLM prompt flow, by connecting orchestration, UX, streaming, and resilience.
Text + voice
Interaction modes
Supports typed interviews, speech-to-text input, and text-to-speech output.
Multi-agent
Agent structure
Separates resume analysis, interview flow, evaluation, and coaching responsibilities.
Fallback-ready
Reliability
Uses Groq as primary inference with Gemini fallback for more resilient response handling.
BEFORE
Static interview prep tools usually stop at question lists and leave the candidate to interpret their own performance.
AFTER
Interview AI gives a more realistic, role-aware practice loop with adaptive questioning and end-of-session coaching.
IMPACT — It demonstrates full-stack AI product engineering across orchestration, streaming UX, persistence, and fallback behavior.
RESULTS
- Produced a full-stack interview simulator that can analyze resumes, run adaptive interviews, and return actionable coaching reports.
- Created a stronger portfolio example of AI product engineering, not just model prompting, by combining orchestration, UX flow, and backend reliability.
NEXT IMPROVEMENTS
- I would add richer interview memory and more structured evaluator traces so follow-up reasoning becomes even more transparent.
- I would also improve calibration around scoring and report quality with a stronger offline evaluation loop tied to target roles.
HONEST TRADEOFFS
- Used explicit LangGraph state transitions to keep multi-agent behavior debuggable, even though it increased implementation overhead compared with a single prompt chain.
- Balanced UX ambition with reliability by adding streaming, voice mode, and model fallback without turning the system into an opaque black box.