Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.20.0
title: InterviewCoach
emoji: 🎙️
colorFrom: green
colorTo: gray
sdk: gradio
sdk_version: 6.16.0
python_version: '3.11'
app_file: app.py
pinned: false
short_description: Local interview coach with live feedback.
models:
- build-small-hackathon/interview-coach-3b
- Qwen/Qwen2.5-3B-Instruct
- openai/whisper-small
tags:
- gradio
- interview
- speech-to-text
- langgraph
- local-ai
- track:backyard
- sponsor:openai
- achievement:offgrid
- achievement:fieldnotes
Interview Coach
Created by @vadirajkrishna.
Interview Coach is a local-first assistant for live technical interviews. It listens to noisy interview audio, extracts the actual Data Science, ML, AI, or System Design question, and shows a compact coaching card with important pointers while the candidate is answering.
Development note: the live transcription flow, coaching-card timing, and transcript extraction loop were iterated with Codex assistance.
Links
- Hugging Face Space README: https://huggingface.co/spaces/build-small-hackathon/interview-copilot-local/blob/main/README.md
- Published article: https://huggingface.co/blog/build-small-hackathon/local-interview-copilot
- Demo video: https://www.loom.com/share/d44244e43927423b9be237fbb207a65b
Why It Matters
The goal is not to handhold the candidate through the interview or generate a scripted answer. The goal is to give timely, high-signal reminders so the candidate can cover the important parts of their own answer naturally.
Interview conversations are messy: greetings, interviewer transitions, repeated words, partial transcription, candidate clarifications, and answer fragments often appear in the same transcript. Interview Coach helps by:
- Capturing the core technical question from noisy live conversation.
- Showing concise pointers that help the candidate cover the expected areas.
- Separating interviewer questions from candidate answers after the session.
- Evaluating saved Q&A exchanges with critical feedback and improvement areas.
Multi-Model Approach
The app uses different local models (sourced from Hugging Face) for different jobs instead of asking one model to do everything:
- Speech-to-text: Whisper via
mlx-whisperlocally andopenai/whisper-smallon Hugging Face Spaces. - Topic and pattern detection: fine-tuned build-small-hackathon/interview-coach-3b (available on Hugging Face) to identify the interview question type and coarse pattern.
- Coaching hints:
Qwen/Qwen2.5-3B-Instruct(from Hugging Face) generates short, question-specific pointers for the live coaching card. - Transcript cleanup and Q&A extraction: the general LLM extracts structured questions and candidate answers from noisy transcripts.
- Evaluation: the evaluator uses the saved candidate answer, not the coaching hints, to provide a benchmark answer, hiring band, strengths, weaknesses, and critical gaps.
This keeps the live coaching path fast while allowing more careful reasoning for post-session extraction and evaluation.
Agentic Architecture
The app follows a LangGraph-style pipeline where each step has a focused responsibility:
Audio Capture -> Transcription -> Question Extraction -> Topic/Pattern Agent
-> Coaching Card UI
Saved Transcript -> Q&A Extraction -> SQLite Persistence -> Evaluation Agent
At runtime, the live path prioritizes speed: it listens to system audio, updates the transcript, extracts the latest likely technical question, classifies the question type, and renders a coaching card. After the session, the slower processing path extracts all Q&A exchanges from the full transcript and stores them in SQLite for evaluation and CSV export.
Running Locally
Local-first interview coaching app with a Hugging Face Space demo mode.
On Hugging Face Spaces, the app uses browser microphone recording and a Linux-compatible Transformers Whisper backend. Local-only system audio capture via BlackHole and Ollama-based LLM calls are not available in Space mode.