A dark conference-slide cover: the title 'I built a podcast production line that pauses exactly once' in large serif type, a small author chip for Jake Lawrence, and a JL wordmark in the corner.
toolsupdated4 min read
Builder · Applied AI

I built a podcast production line that pauses exactly once

A voice memo goes in; an edited, captioned, rule-checked episode waits at a human gate. A build log on the new episode production line: an AI editor hired onto a one-episode contract, a free ffmpeg-and-Whisper floor standing behind it, two QA rungs, and a trust posture that never believes an unsigned callback. Plus what a line like this is for, and when you should not build one.

Publishing a podcast episode by hand is about eleven chores pretending to be one. Record. Level the audio. Cut the filler words, transcribe, caption, run the checks, upload, stamp the feed, cut the promo clips. This week I built a production line that handles the middle of that list from a single voice memo, and it stops exactly once: to ask a human whether the episode is any good. Below: how it works, what it costs to run, and how you'd know if you actually need one.

recordvoice memoimportnormalizeeditai passcaptionswhisperqa ×2specs + rulesgatea humanpublishphase 3clipsphase 3
machine stepAI passhuman gatenot built yet
The line, with the site's usual notation: squares are system steps, the circle is the human gate. Blue steps are deterministic machine work, the yellow step is the AI edit pass, and the dashed stops are phase 3, not built yet.

Eight stops, one pause

Whatever the phone recorded, the first stop makes broadcast-shaped. Validate the file, then normalize loudness to the standard podcast window. My 26-minute test recording came out at −19.45 LUFS against a −19 target. An app like Overcast expects that number; a laptop microphone will never produce it unassisted.

The second stop is where it gets interesting. An AI editor strips the ums, cleans the room tone, tightens any silence over two seconds. I'll get to its employment terms.

Captions are Whisper's job. It's a speech-to-text model running on my own build machines, and a 30-minute episode transcribes in roughly seven minutes of free CI time. That output isn't a transcript stuffed in a drawer. It becomes the caption files players load.

After that, quality assurance in two layers. The deterministic one re-measures the encoded audio (spec, loudness window, caption coverage) and fails loud on any miss. The judgment layer hands a language model the full transcript to read against my published-content rules and the episode brief. I built it to overblock. Borderline or malformed, and the episode parks rather than passes.

A person enters last. I play the edited cut against the raw one and approve or reject. Nothing here publishes itself. The gate is the product.

The editor is on a one-episode contract

The edit pass runs on Descript, a hosted AI audio editor, for $24 a month. But I built the fallback first, before spending a dollar: an editing floor of ffmpeg and Whisper that costs nothing and runs forever. Descript only keeps its seat if the edited cut beats the raw cut at the human gate on a real episode. Lose that, and the subscription dies. The floor takes over. Same shape either way, one swapped part.

The edit happens in a vendor's cloud, but the recipe that made it lives in my repo.

The recipe lives as a versioned prompt, committed next to the code. Strip the filler. Apply studio sound. Tighten silences. Then the part I care about most: an absolute ban on rewriting, reordering, or synthesizing a single thing I said. The editor tightens the episode. What I said stays what I said. And every job snitches on itself - it reports how many media minutes and AI credits it burned, and the pipeline dumps that into a per-episode manifest. That's how the whole lane stays inside a $50-a-month ceiling I can audit right from the repo.

phase 0PASS
Verify first
read the docs, benchmark, price it. No code.
$0
phase 1PASS
The floor
ffmpeg + Whisper. Works with zero vendors, forever.
$0/mo
phase 2GATE OPEN
The vendor trial
the AI editor, hired onto a one-episode contract.
$24/mo
phase 3NEXT
Publish + clips
feed enclosure live, three clips drafted behind gates.
$0 extra
new monthly spend$24 of a $50 ceiling
the yellow bar is the editor. If it fails the trial, the bar goes to zero and the line keeps running.
The build itself ran the same way the pipeline runs: each phase behind a gate. Phase 0 verified the vendor's docs and pricing before any code existed; phase 2's gate stays open until the trial episode renders a verdict.

Trust the vendor, not its doorbell

Here's one design decision worth pulling out, because it shows up in any pipeline that waits on someone else's cloud. When the editor finishes a job it can ring you back. A callback: a small automatic message saying done. Trouble is, Descript's callbacks are unsigned. Guess the address and you can ring the same bell. So I treat a callback as a doorbell, no more than that. It might wake the runner up. But the thing that actually completes a job is the pipeline calling the vendor's API on its own, with its own credentials, and reading what comes back.

Descriptvendor cloudthe pipelineour runnertrust boundarycallback (unsigned)wake-up hint, never trustedGET /jobs/id + bearer tokenjob status: the source of truthconfirmed
dashed = anyone could have sent itsolid = authenticated, and the only path the pipeline acts on
The unsigned callback stops at the trust boundary. The authenticated round-trip is the only path the pipeline acts on.

What a line like this is for

Strip away the podcast specifics and here's what's left: a recurring recording goes in, a checked, captioned, publishable thing comes out, and a human signs off on each one. That fits way more than my setup. A weekly show, sure. Course lectures turning into captioned modules. A church or meetup publishing every talk without drafting some poor volunteer into editing duty. Client interviews becoming searchable, quotable transcripts. Internal briefings people can actually listen to. The stops change. The shape stays: machine steps, one AI pass on a fixed recipe, one human gate.

What I am using it for

This line feeds The Legibility Desk, my critique podcast. Every episode is already a cited, verifiable page. The audio was always the missing half. It runs next to Between Systems, my interview show, and eventually everything I make flows into the site radio, the continuous player for this site's own narrated audio. The pipeline runs on the same house pattern as the workflow engine I wrote about in June: AI does the volume, gates do the judgment, and the human stays load-bearing.

When I would not build this

Here's the honest guidance. If you publish occasionally rather than on a cadence, skip all of this and edit by hand in any decent app. A production line pays for itself through repetition or not at all. If you don't already have somewhere for files to live and jobs to run, go with a hosted end-to-end tool, because the storage and the runners are most of the plumbing anyway. And if your show is multi-speaker interviews? This exact line rejects your files on purpose. Separating voices is a whole other problem, and mine's deferred until the solo line has earned its keep.

Maybe your team has a pile of recordings and a publishing chore nobody wants. That's the thing I build. Email me at jake@jakelawrence.xyz with what goes in and what should come out. I'll tell you straight whether you need a pipeline or just an afternoon of ffmpeg.

Experience it yourselfEmail me about building yours
ShareXLinkedInHacker NewsEmail

Get the next one

An occasional note when something genuinely new ships here — essays, free tools, projects. No schedule, no filler, easy out.

Need something like this built?

I design and ship AI tools, full-stack apps, and data pipelines — end to end, to production. Tell me the problem in a sentence; I'll give you an honest read on fit within a day.

Work with me →