DEV Community

Cover image for I Finally Finished My AI Interview Coach (It Only Took Me Getting Rejected to Care)
Thy Alpha
Thy Alpha

Posted on

I Finally Finished My AI Interview Coach (It Only Took Me Getting Rejected to Care)

GitHub β€œFinish-Up-A-Thon” Challenge Submission

This is a submission for the GitHub Finish-Up-A-Thon Challenge

What I Built

An AI interview coach that runs in your browser. No backend. No accounts. No subscriptions. You bring a free API key, paste your resume and the job description, pick a mode (behavioral, technical, system design, whatever), and it runs a full mock interview. Asks follow-ups, scores you on 5 dimensions, gives you a study plan at the end. I built the first version for the Gemma 4 DEV.to Challenge last month. It kinda worked. But I wouldn't have used it myself, and that bothered me. Live: hajirufai.github.io/gemma4-interview-coach
Repo: github.com/hajirufai/gemma4-interview-coach

Demo

Interview Coach in action
What you get now:

  • πŸ—£οΈ 6 practice modes β€” behavioral (STAR method), technical, system design, online assessment sim, certification prep, case studies
  • 🎀 Voice mode β€” talk into your mic, hear feedback read aloud. Because typing answers in a mock interview is weird. - πŸ“„ Resume + JD aware β€” paste both, get questions about your actual experience gaps
  • πŸ“Έ Screenshot upload β€” snap a coding problem or whiteboard and discuss it
  • 🌐 4 AI providers with free tiers (Google AI Studio, OpenRouter, NVIDIA NIM, Hugging Face)
  • πŸŒ™ Dark mode, session history, timer, downloadable reports ## The Comeback Story ### Where it was before I threw this together during the Gemma 4 Challenge in May. Classic hackathon energy β€” built the core chat loop, got 6 mode cards looking nice, slapped on dark mode, shipped it. Then I hit the wall. Google AI Studio was throwing 500 errors during peak hours. The only option was "refresh and hope." No voice input, so you're typing interview answers like it's a customer support chat. And if you had a typo in your API key? Good luck figuring out why nothing's working. It was a demo, not a tool. ### What actually changed I came back with one rule: make this something I'd actually use to prep for my own interview. Voice mode was the big one. I'm prepping for a senior cybersecurity engineering interview right now. Typing answers doesn't build the same muscle as talking through your thought process out loud. So I wired up the browser's Speech Recognition API for mic input and Speech Synthesis for the coach to read feedback back. No third-party API. Audio stays on your machine. Works in Chrome, Edge, Safari. That single change turned it from "chatbot with interview questions" into something that actually feels like practice. Multi-provider support fixed the reliability problem. Before, if Google's API was down, you were stuck. Now there's four options: | Provider | What's free | Why I added it | |----------|------------|----------------| | Google AI Studio | Unlimited (rate-limited) | Best quality, original provider | | OpenRouter | Free credits | Fallback when Google chokes | | NVIDIA NIM | 1K free credits | Crazy fast inference | | Hugging Face | Free tier | Open-source backup | Error recovery. Added automatic retry with backoff on 500/503 errors. Built a "Test Key" button so you can verify your API key actually works before starting a 20-minute session. Upgraded the default model from 12B to 31B β€” the difference in answer quality is night and day. ### The numbers
Before After
Lines of code 792 1,367
AI providers 1 4
Voice support Nope Mic + speaker
Error recovery Pray Auto-retry + backoff
API validation Nope Test button
Default model 12B 31B
Crash rate in sessions ~30% ~2%
Enter fullscreen mode Exit fullscreen mode

My Experience with GitHub Copilot

I'll be honest about where Copilot carried its weight and where I turned it off. Where it saved me real time:
The Speech Recognition API has a bunch of browser-prefix nonsense (webkitSpeechRecognition vs SpeechRecognition). I typed function initVoiceInput and Copilot filled in the whole setup β€” event handlers, interim results, confidence thresholds. I tweaked the auto-stop timing and UI hooks, but the boilerplate was right on first try. Same story with the multi-provider fetch calls. After writing the Google AI Studio integration, Copilot predicted the OpenRouter request format almost perfectly when I started the next function. Just needed to adjust a couple headers. And CSS animations β€” the mic pulse effect, dark mode transitions, the glass morphism stuff. Copilot's suggestions were honestly better than what I'd write by hand. It knows the modern patterns. The retry-with-backoff logic was another clean one. I typed async function callWithRetry and got exponential backoff with proper error classification (retry 500s, fail fast on 401s) without spelling it out. Where I ignored Copilot completely:
System prompts. The interview coach personality, scoring rubric, how it gives feedback β€” that needed careful thinking about what makes a good mock interview. Copilot's suggestions were generic motivational speaker stuff. Not useful. Session flow decisions too. When to show the mid-session scorecard, how to handle conversation context across questions, when to auto-scroll β€” these need design thinking, not autocomplete. My honest take: Copilot didn't write this app. But it cut out maybe 40% of the typing on the parts where I already knew what I wanted. The activation energy to come back to an old project is the hardest part. Having Copilot handle the boring bits meant I could focus on the decisions that actually mattered. ---
Try it: hajirufai.github.io/gemma4-interview-coach. All you need is a free key from Google AI Studio β€” takes 30 seconds. If you're prepping for interviews, give the voice mode a shot. Talking through answers out loud is a completely different experience than typing them. Let me know which mode you found most useful πŸ‘‡

Top comments (0)