Voca AI
An AI-powered pre-interview assessment system that holds a real spoken conversation.
- Role
- Lead AI and systems engineer
- Built with
- Python, React, WebSockets, LangChain, Whisper, DeepFace, Web Audio API
- Does
- Listens

Overview
Voca AI is a pre-interview assessment system that evaluates how candidates explain, structure and defend their thinking, in real time.
Instead of a fixed quiz, Voca holds a natural, adaptive conversation that follows up on what the candidate actually says, the way a good interviewer would.
Audio streams in both directions at once, so the system can listen, decide on a follow-up and reply with sub-second latency.
The problem
Early-stage screening is slow and uneven. One-way video platforms feel impersonal, and human screening calls bring scheduling delays and inconsistent judgement.
Fixed questionnaires can't dig deeper when a candidate makes a sharp point, and they can't ask for clarity when an answer is vague.
Voca was built to close that gap: an assessor that listens, asks sensible technical follow-ups and leaves clear notes for the hiring team.
How it works
- 01
Natural turn-taking
A full-duplex WebSocket audio pipeline combines voice activity detection with streamed inference, so the system knows when to speak and avoids talking over the candidate.
- 02
Adaptive evaluation
A multi-stage reasoning chain in Python and LangChain scores depth, structure and clarity against a rubric, rather than hunting for keywords.
- 03
A calm candidate screen
The React interface keeps distractions out of the way: no countdown timers or busy visualisers, just clear signals for listening, thinking and speaking.
What it does
Spoken dialogue
Interruption-tolerant conversation with automatic pause detection.
Follow-up questions
Questions branch from the candidate's own answers instead of a fixed script.
Rubric scoring
Structured scores for problem framing, accuracy and articulation, produced as the interview runs.
Interview reports
A written report for the hiring team with timestamps and notes on each answer.