ai-mock-interview-platform: AI Mock Interview Platform: The App That Grades Candidates by Surviving LLM Failure

A full-stack interview coach that chains fallback models, normalizes messy AI output, and scores both technical answers and STAR-style behavioral responses.

8 min read • View on GitHub • More from sania07-cmd

A candidate speaks into an interview booth while stacked machine engines fail and hand off to backup mechanisms. The scene explains that the app is designed to keep working when model output is unreliable, routing errors into clean scoring and fallback questions.
The core idea is not a smarter prompt. It is a system that keeps interviewing even when the model stumbles.

I enjoy building intuitive interfaces, smart tools, and learning how technology can create social impact.

Sania Rajput, Creator / Engineering Student · sania0607 (Sania Rajput) · GitHub
Key Takeaways

Most AI interview apps assume the model will answer cleanly. This one assumes the opposite. It treats LLM output like hostile input, then builds guardrails around the mess so the interview keeps moving.

That design choice is the story. The repo, sania0607/AI-Mock-Interview-Platform, is not just a practice tool. It is a small system for making AI behave predictably in a domain where unpredictability is the default.

Why This Mock Interviewer Refuses to Trust the Model

The most interesting engineering choice is not the UI or the question generator. It is the refusal to trust the first model response. The backend chains fallback models, repairs malformed JSON, and drops into hardcoded interview content when the model cannot hold its shape.

The app separates fast feedback from durable storage, and it never lets a broken model response break the flow.

That is a smarter product choice than it sounds. In practice, users do not care whether the primary model failed. They care whether the next question appears, whether feedback is readable, and whether the session feels continuous.

const models = [
  'llama-3.3-70b-versatile',
  'llama-3.1-70b',
  'mixtral-8x7b'
]

for (const model of models) {
  const result = await tryModel(model, payload)
  if (result.ok) return normalizeFeedback(result.text)
}

return FALLBACK_FEEDBACK

An intelligent, AI-powered interview preparation platform that helps you practice and improve your interview skills with real-time feedback and personalized insights.

Project Documentation, Official README · AI-Mock-Interview-Platform README

The STAR Rubric Is the Real Product Idea

Behavioral interviewing is where generic AI tools usually get vague. This repo does something more opinionated: it checks whether the answer actually contains Situation, Task, Action, and Result. That turns the system from a conversational demo into a domain-specific evaluator.

A close-up view of answer cards being sorted into four bins labeled Situation, Task, Action, and Result. Some cards fill every bin, while others leave gaps that trigger weak or missing marks. The image explains how the platform grades behavioral answers by checking STAR coverage instead of only judging tone or length.
The behavioral path is not just scored. It is structurally audited for STAR coverage.
ApproachWhat it optimizes forWhat you get
Generic AI mock interviewerConversation flowLoose feedback and shallow scoring
STAR-aware evaluatorBehavioral structureCoverage of Situation, Task, Action, Result
Human coachJudgment and nuanceDeep context, but limited availability

That difference matters because it changes the feedback loop. Instead of saying, “Your answer sounded good,” the app can point to what was missing. The result is less vibe-based and more coach-like.

A Full-Stack Loop: Speak, Evaluate, Save, Reflect

The platform’s flow is straightforward once you zoom out. The browser captures speech, the backend evaluates the answer, the interview is saved asynchronously, and the dashboard turns the history into progress signals. It is a classic product loop, but with AI inside the middle of it.

const transcript = cleanTranscriptValue(rawTranscript)
const feedback = await evaluateAnswer(transcript)

void fetch('/save-interview', {
  method: 'POST',
  body: JSON.stringify({ transcript, feedback })
})

setCurrentFeedback(feedback)

That asynchronous save step is easy to miss, but it is a good sign. The app separates the feeling of immediate feedback from the slower job of persistence, which keeps the interview experience responsive.

How It Compares to Peer Practice and SaaS Coaching

This project does not try to replace a real interviewer. It sits in a different lane: self-hostable, customizable, and unlimited. That puts it closer to a developer sandbox than a premium coaching marketplace.

ToolPrimary signalBest forTrade-off
AI Mock Interview PlatformAI feedbackUnlimited self-practiceLess human nuance
PrampPeer feedbackFree live practiceDepends on matching
Interviewing.ioExpert human signalHigh-stakes prepCost and scheduling
Google Interview WarmupGuided behavioral practicePolished basicsLess customizable

That niche is real. Students and early-career engineers often need repetition more than prestige. A tool like this gives them a private loop for practicing aloud, getting scored, and trying again without waiting on another person.

Who Built It, and What Stage It Is In

A hedcut-style portrait of Sania Rajput, the creator of the project. The portrait provides authorship context for the repo and anchors the article in a real contributor rather than an anonymous template.

The stack reads like a thoughtful prototype: React and TypeScript on the front end, Node and Express on the back end, MongoDB for persistence, and a deliberate focus on feedback quality. The in-memory session state is the tell. It is fine for a small system, and it also signals where the next hardening work would go.

That is not a criticism. It is the fingerprint of an early-stage product with a clear opinion. The team made the right trade-off first: make the interview feel reliable before trying to make it massive.