In a remote interview, a candidate can read an AI-written answer aloud and sound fluent. A transcript of a read answer looks exactly like a spoken one, so text detectors cannot help. Unscripted listens to how an answer is built. Speech made up on the spot repairs itself: "uh", repeated words, restarts, clauses run together. A text read aloud comes out finished, with longer words and longer stretches between pauses. Speechmatics' Realtime API gives the timing of every word and tags every hesitation as the candidate speaks, and that is what the detector reads. The interview opens with a warm-up nobody can prepare for, which captures how this candidate speaks when they cannot be reading. Every later answer is compared with it on four signals: long words, repairs, commas and runs of words between pauses. The recruiter gets a report with a chart of every answer and, for each flagged one, the signals that pushed it over the line. The detector was measured, not guessed. A first version judged rhythm alone; a real test showed it missing read answers. The operator then recorded sessions marking every answer as read or spontaneous. On sessions it had not seen, the new detector reached 0.89 balanced accuracy against 0.70 for the old one, and flagged none of the spontaneous answers. It is built so it cannot be used to reject someone. Remarks only say an answer is worth revisiting in a second interview. Short answers are not judged. The candidate never sees a score, audio is never stored, and reports sit behind a recruiter token. Honest limits: one speaker, 20 answers, signals chosen after looking at the data, no blind test yet. Every report says so. FastAPI, vanilla JavaScript and an AudioWorklet, Speechmatics Realtime API; 206 automated tests.
Category tags: