Inspiration

Interviewing is terrifying. You can read all the tips in the world, but nothing prepares you like actually doing it — hearing a question out loud, thinking on your feet, and speaking your answer. The problem is you can't practice a real interview without a real interviewer. We wanted to change that. What if anyone could pull up their phone, say "I'm interviewing for a Software Engineer role at Google," and immediately start a realistic voice conversation with an AI interviewer who adapts to their answers?

What it does

InterviewAI is a real-time voice-based mock interview platform. You enter a job title, company, interview type (behavioral, technical, etc.), and experience level. The app instantly generates a tailored AI interviewer who greets you, asks relevant questions one at a time, follows up on vague answers, and keeps things conversational. When you're done, you get a detailed feedback scorecard — scores on clarity, structure, relevance, and confidence, plus specific quotes from your answers with concrete suggestions on how to improve them.

How we built it

The backend is a FastAPI server using WebSockets for real-time communication. When you speak, your audio streams to the server where Smallest.ai Pulse transcribes it to text. That transcript goes to Groq's Llama 3.1 8B model, which generates the interviewer's next question. The LLM response streams sentence-by-sentence — each sentence is immediately converted to speech using Smallest.ai Lightning TTS and sent back to your browser. This means you hear the first sentence while the rest is still generating, making it feel like a real conversation instead of waiting for a chatbot. The frontend is a single HTML file with vanilla JavaScript — no frameworks needed.

Challenges we ran into

Getting the voice pipeline to feel natural was the biggest challenge. Early versions would wait for the entire LLM response before speaking, which created awkward 3-5 second silences. We solved this by streaming the LLM output and splitting it into sentences, then sending each sentence to TTS independently. Another challenge was handling the audio format correctly — the browser records in WebM but the STT API needs specific formats, so we had to handle the conversion server-side.

Accomplishments that we're proud of

The sentence-by-sentence streaming makes the conversation feel genuinely real-time. When the AI interviewer responds, you hear the first sentence in under a second while the rest is still being generated. The feedback system is also surprisingly useful — it doesn't give generic advice, it quotes your exact words and tells you specifically how to rephrase for more impact.

What we learned

Voice-first interfaces are a completely different design challenge than text-based ones. Latency matters more than anything — a 2-second delay that's fine in a chatbot feels painfully slow in a spoken conversation. We also learned that Smallest.ai's TTS is remarkably fast, which made the streaming architecture possible.

What's next for InterviewAI

We want to add interview type-specific scoring (STAR method detection for behavioral, problem-solving assessment for technical), multi-language support, and the ability to upload a job description so the AI can ask hyper-specific questions. We'd also like to add a "replay" feature where you can listen back to your answers with the AI's suggestions overlaid.

Built With

Share this project:

Updates