readback CLI

readback

Hear how your interview actually went. Run it on a recording and read the conversation back: dead air trimmed, a transcript, and the tone and energy of the room. Everything runs on your machine.

Quick start

Clone it, build it, and run it on your own recording. You need zig, ffmpeg, and python installed.

git clone https://github.com/dillingerstaffing/readback
cd readback
zig build
./scripts/setup_sentiment.sh        # one-time: local transcript + tone models
zig-out/bin/readback your-interview.m4a

That writes a trimmed audio file and a JSON read-back next to your recording. Nothing uploads.

What you get

The run prints a summary and writes the read-back as JSON. Both are example output here, the way a README shows what to expect, not a live analysis of anyone.

Example output: console
$ zig-out/bin/readback your-interview.m4a
  trimming silence      47:32  ->  41:08   (6:24 of dead air removed)
  transcribing (local)  312 segments
  reading tone + energy  done
  moments to revisit     7
  wrote your-interview.readback.json
Example output: your-interview.readback.json
{
  "segments": [
    { "start_sec": 0.0,  "end_sec": 8.0,  "text": "Thanks for making time. Start wherever feels natural.", "emotion": "calm",    "valence": 0.61, "arousal": 0.27, "dominance": 0.49 },
    { "start_sec": 8.0,  "end_sec": 16.0, "text": "What did you enjoy most about that project?",           "emotion": "happy",   "valence": 0.72, "arousal": 0.58, "dominance": 0.52 },
    { "start_sec": 16.0, "end_sec": 24.0, "text": "Got it. Walk me through the tradeoff you hit.",         "emotion": "neutral", "valence": 0.50, "arousal": 0.43, "dominance": 0.50 }
  ]
}
Stays on your machine

Your audio never leaves your machine. Every model runs locally, so the recording and the transcript stay with you. The only time readback touches the network is a one-time model download on first run.

How it works
  1. Trim

    Dead air comes out first.

    Long silences are cut, so the review is the conversation and nothing else.

  2. Transcribe

    Every line gets a transcript.

    A local speech model writes out the words and lines them up to the audio.

  3. Read tone

    The energy of the room, mapped.

    readback reads the tone and energy across the call so you can see your own pacing.

  4. Flag moments

    The moments worth a second listen.

    Shifts in tone are flagged, so you jump straight to the parts that matter.

The Right Person. The Right Role.

Matches that last, by understanding what actually matters about a role, a team, and a person.