Building an AI Interview Coach for the BuildSmall Hackathon 2026

Community Article
Published June 15, 2026

Built for the Gradio ร— Hugging Face Build Small Hackathon (June 2026)

Live Demo: ishan-25/ai-interview-coach

thumbnail_large

Weโ€™ve all stared blankly at a complex, 5-page job description trying to guess what the interviewers will actually ask, or walked out of an interview wishing we had practiced incorporating our technical stack keywords more naturally.

My project is the answer. Not another generic chat window that spits out basic adviceโ€”but an intelligent, end-to-end simulation environment and personal communication coach for your interview preparation. Paste any raw job posting, get an instant structured role analysis, step into an interactive practice session, and receive granular, context-aware coaching.


๐Ÿ“ฝ๏ธ Demo Video & Social Pitch

Check out the system operating in real-time, handling prompt validation, processing answers, and assembling reports:


๐Ÿง  The Problem: Unstructured Data & Rigid Feedback

Preparing for interviews is broken in two distinct places:

  1. The Target Is a Moving Object: Job descriptions are full of unstructured text blocks. Job seekers struggle to pinpoint the exact 5โ€“7 domain concepts that recruiters screen for.
  2. Evaluations Are Robotic: Traditional keyword checking relies on rigid, word-for-word string matching. If a candidate explains a concept elegantly using a synonym or workflow description instead of the exact keyword, robotic systems grade it as a failure.

๐Ÿš€ Core Features of the AI Coach

1. Zero-Cost, Asymmetric Input Guardrails

Before the LLM even wakes up, programmatic regex filters protect the container against malicious script injections. Once safe, a deterministic gatekeeper ensures the input is an authentic, complete job description containing actual operational requirements.

2. Deep Semantic STAR Methodology Evaluation

The platform completely abandons rigid text character checking. Powered by advanced reasoning, the scoring engine evaluates responses based on true semantic context. It rewards you for expressing high-level technical concepts, architectural strategies, and operational synonyms naturally.

3. Immediate Document Assembly Pipeline

The moment an interview loop concludes, your session state metrics are funneled into a local server binary worker. It instantly structures your scores, highlights, missing concepts, and milestones into a professionally styled, downloadable PDF evaluation sheet.


๐Ÿ› ๏ธ The Local, Ultra-Lightweight Stack

To stay safely under the hackathon's strict 32B cap and keep container overhead close to zero, the platform runs on an highly efficient, decoupled decoupled layout:

  • Core Reasoning Model: Qwen/Qwen2.5-7B-Instruct (Operating over a high-availability cloud serverless API pipeline)
  • User Interface Layer: Gradio 6.18.0 (Configured with a glassmorphic dark design system and animated HTML backgrounds)
  • Document Engine: ReportLab (Compiling complex vector layout binary streams on the fly)

Everything is completely decoupledโ€”your UI dashboard, agent executors, and data pipelines are independent Python workers, maximizing transaction speeds.

๐Ÿ’ก What I learned from this journey

They say the best way to truly learn a framework is to watch it break under a hackathon deadline, and building this AI Interview Coach proved that theory right in the most exhausting, rewarding way possible. I learned the hard way the importance of choosing the right model for the right version of software because as it turns out, some model dont actually support all the version of the libraries and support apps you may be using and thus, it leads to chaos much like my project did.

Here is brief rundown of wild ride that were the last 48 Hours

  1. The Legacy API Trap:

My initial orchestration layer was wired to use a classic Hugging Face text-generation endpoint. But when I attempted to boot up the advanced Qwen 2.5 7B model, the serverless cluster repeatedly threw catastrophic, unhandled metadata errors.

Instead of panic-reverting to a weaker model, I dug into the raw engine architecture. I completely ripped out the unstructured string generation pipelines and rewrote the model core to utilize the modern, OpenAI-compliant client.chat_completion() framework. This single architectural shift bypassed the task limitations, dropped latency to milliseconds, and unlocked the true reasoning capabilities of the Qwen framework.

  1. Ripping Out Robotic Code for True Semantic AI:

Originally, the application's grading system used a traditional Python exact-string matcher (k.lower() in answer_lower) to score candidate keywords. During testing, it felt horribly robotic. If a user explained a brilliant technical concept using structural synonyms or operational workflows instead of the exact verbatim keyword string, the script penalized them heavily and capped their score at 5/10.

I realized that a true "AI Coach" shouldn't look for character matchesโ€”it needs to evaluate meaning. I entirely deleted the hardcoded Python filtering loops and prompt-engineered the Qwen model to handle deep semantic extraction. I designed an isolated, safe JSON parsing pipeline that allowed the model to map out successful keyword hits conceptually, instantly transforming a rigid checker into a fluid, human-like technical evaluator.

๐Ÿ’ก Key Takeaways from the Trenches:

Stability > Refinement on a Deadline: I originally wanted to push the boundaries of my free tier allocations by running a massive 14B model wrapper. When high-throughput hosting networks started timing out, I quickly pivoted back to a fine-tuned 7B model. A working, highly responsive system is infinitely more valuable to a user than a bloated model that returns server timeout flags.

Gradio is Incredibly Flexible: Working with Gradio 6 showed me how easily you can break past generic app wrappers. By injecting custom CSS, overriding Svelte state selectors, and designing raw HTML blocks for animated background blobs, I was able to build a dark-mode theme that feels like a premium enterprise dashboard.

Decouple Your Components: Keeping my UI layout layers (interview_coach.py), orchestrations (engine.py), and validation guards (agents/) completely isolated saved my project. When a major bug hit the scorer, I could easily refactor the agent's logic without touching a single line of my dashboard positioning code.

Lastly, I just want to give a brief about how to use the web app so u can try it yourself: Step 1: Enter a job description that u want to be preparing for

Step 2: Scroll down and pick you desired Mock Interview depth(3 Questions, 5 Questions, maybe 7 if u are looking for a thorough session)

Step 3: Answer the tailored Question the AI Coach made for you

Step 4: hit "๐Ÿ“Š Get Feedback" button to get feedback with reasoning behind the score awarded. (It also tells you where u did well and not-so-well)

Step 5: Hit next Question and repeat from Step 3

Once all the questions are done u may go to the History and Tips section to download a session report pdf all for you to refer down the line for improvement.

Community

Sign up or log in to comment