vadirajkrishna's picture
Tag Hugging Face username in README
cfca9e9 unverified
|
Raw
History Blame Contribute Delete
4.13 kB
---
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](https://huggingface.co/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-whisper` locally and `openai/whisper-small` on Hugging Face Spaces.
- Topic and pattern detection: fine-tuned [build-small-hackathon/interview-coach-3b](https://huggingface.co/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:
```text
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.