InterviewIQ: The Mock Interview App That Makes a Browser Feel Like a Human Interviewer
A React, Node, and MongoDB stack that turns resumes into structured interviews, simulates a talking interviewer with native browser APIs, and packages the result as a scored PDF report.
- InterviewIQ feels human because it choreographs latency, voice, and avatar playback more carefully than it generates anything expensive.
- The repo turns a resume into exactly five guided questions, then turns the session into a scored PDF so the interview has a durable artifact.
- Its frontend is a state machine with speech synthesis and speech recognition wired into the browser, which keeps the experience continuous without real-time avatar infrastructure.
- The product is built like SaaS from day one, with credits, payments, auth, and reporting layered onto the core mock-interview loop.
The most interesting thing about InterviewIQ is not that it uses AI. It is that it makes a browser behave like a patient interviewer using cheap, familiar pieces: speech synthesis, speech recognition, static video, and tight prompt control. The result feels alive because the timing is engineered, not because the stack is flashy.
That matters because the repository is not a toy demo. It is a full loop: upload a resume, generate a structured interview, record answers, score performance, and hand back a PDF report. The whole product is built to make the session feel useful after the conversation ends.
The browser thinks it is interviewing you
InterviewIQ’s first trick is perceptual. The frontend uses browser-native speech APIs to make the interviewer speak, pause, listen, and resume in a way that reads as conversational. The avatar is not a real-time generated face. It is a controlled playback layer synchronized with the spoken prompt.
That choice keeps the experience lightweight. Instead of expensive avatar infrastructure, the app leans on timing, pacing, and a few well-placed media primitives to sell presence. In product terms, it is an illusion budgeted with discipline.
From PDF resume to five questions
The backend pipeline starts with a resume upload. The server extracts text from the PDF, normalizes it through an LLM, and forces the result into a compact schema with role, experience, and skills. That structured blob then drives question generation.
The important constraint is not just that questions are generated. It is that they are generated predictably. The controller aims for exactly five questions with a progression from easy to hard, plus time limits that shape pacing. That makes the interview feel deliberate instead of chatty.
{
"role": "Frontend Developer",
"experience": "3 years",
"skills": ["React", "TypeScript", "API integration"]
}
That JSON-style normalization is the real boundary in the system. The resume is messy, but the interview logic is not. Once the backend has a clean role profile, the rest of the experience can be deterministic enough to stay fast and coherent.
The interview engine is a state machine with a voice
The frontend heart of the app is the interview step component, which has to keep audio, video, transcript capture, and question state aligned. It does not just show a question and wait. It manages a loop: speak, listen, accumulate, score, advance.
That means the browser becomes the source of truth for pacing. Speech synthesis events trigger the avatar playback, speech recognition fills the answer buffer, and the component moves forward only when the current step is complete. The user experiences one continuous interviewer, but the code is really a chain of discrete transitions.
This is where the product feels smarter than its parts. Human-like pacing comes from small hacks, like adding pauses inside the generated speech and selecting a voice that matches the persona. None of that is novel alone. Together, it is enough.
Why the report matters more than the chatbot
Most interview tools stop at conversation. InterviewIQ keeps going. The dashboard and PDF report turn a live practice session into a durable artifact, with question-wise scores, visual analytics, and written guidance that makes the session feel finished.
That is a product decision, not just a feature. A report gives the user something to compare over time, something to share, and something to pay for. It also shifts the app away from ephemeral chat and toward a measurable workflow.
| Dimension | Interview chat only | InterviewIQ |
|---|---|---|
| Primary output | Transient conversation | Scored PDF report plus dashboard |
| User memory | What the user remembers | Structured scores and advice |
| Product value | Practice in the moment | Practice plus artifact |
| Retention hook | Low | Higher, because results are saved and reviewable |
The report layer is also where the app starts to look like software, not just a prompt wrapper. Analytics, charts, and recommendation text turn the session into a repeatable product experience.
This is also a monetization stack
The repository is wired like a business. Credits gate usage, Razorpay handles payments, Firebase manages sign-in, and JWT sessions keep the backend controlled. That combination signals a SaaS foundation, not a hackathon demo.
It is a useful reminder that open source AI apps are often really product templates. The code does not only solve the interview problem. It also sketches the commercial shape of the company that could ship it.
| Layer | What it does | Why it matters |
|---|---|---|
| Firebase auth | Initial user login | Reduces onboarding friction |
| JWT session | Server-side identity | Keeps the app stateful and controllable |
| Credits | Usage gating | Creates a direct monetization lever |
| Razorpay | Payments | Makes paid usage practical |
| MongoDB | Persistence | Stores users, interviews, and payments |
Where InterviewIQ sits in the market
InterviewIQ is not trying to be a stealth live copilot like Final Round AI or Verve Copilot. Those products optimize for in-the-moment assistance during a real interview. InterviewIQ optimizes for guided practice, structured feedback, and a controllable mock session.
That puts it closer to a prep platform with a stronger product loop. It is open enough to customize, opinionated enough to feel cohesive, and practical enough to support a business model. The category is not live cheating. It is simulation with receipts.
| Category | Primary use case | Interview format | Input type | Output type | Browser-native audio/video tricks | Best fit |
|---|---|---|---|---|---|---|
| InterviewIQ | Mock interviews and feedback | Guided practice session | Resume PDF | Scores, analytics, PDF report | Yes, central to the product | Builders and job seekers who want a customizable prep loop |
| Final Round AI / Verve Copilot | Live interview assistance | Real-time copilot | Live interview context | Hints and prompts | Less central, more assistance-oriented | Users who want stealth support during interviews |
| Classic prep platforms | Question bank practice | Static or semi-guided | Selected topics or templates | Practice history or scores | Usually no | Learners who want repetition over simulation |
The distinction matters. InterviewIQ is a controllable mock-interview engine, not a live copilot. That makes it easier to reason about ethically, and easier to productize for users who want to practice instead of cheat.