Case 04 / Applied AI & editorial operations
AI House editorial pipeline
A two-hour talk shouldn’t die in a folder. This turns it into 30–90-second excerpts and LinkedIn drafts, with the warnings left visible.
Outcome · self-reported scopeChannel results during the period: 485k LinkedIn impressions and 5 new content formats (Oct–Feb), plus followers 8,080→13,500, vs 113k impressions in the previous full year; different windows, channel context, not an isolated measure of this pipeline’s contribution.
The challenge
A two-hour talk holds more than one post can carry. The craft problem: find the one point that survives as a 30–90-second excerpt, then not flatten what made it good.
My role
I co-built the historical workflow at AI House, from transcription through excerpt selection and drafting. The current demonstration reconstructs the scorer; its original rubric and weights were not recovered. For that reconstruction, six official Shorts and two full talks were reviewed to ground the editorial criteria in the channel’s output.
The approach
Talk in, upload-first: Whisper transcribes, an editorial scorer ranks the moments, one excerpt is cut with its source timestamps, and a draft lands in front of a human. Nothing posts itself, and the Whisper/pyannote repo is one component of the system, not the system.
Editorial workflow
The six stages, in spec form
- 173.3s synthetic speech
- 95s captioned recording of the run
- Docker: non-root
- read-only mounts · internal network
- host relay mediates access
- Whisper · 32 segments
- warnings kept visible
- editorial scorer
- labelled reconstruction
- historical scoring code not recovered
- 64s at 52.7–116.7s
- decoded and checked
- 2 real model calls
- human review in the loop
- nothing posted
Figures describe the verified 23 October delivery only. The scorer is a labelled reconstruction, production scoring code wasn’t recovered, and no event-audio rights are implied.
The diagram reflects the historical workflow I describe, not an execution trace. Scoring served AI House’s editorial needs; exact rubric and weights aren’t recovered.
Inside the transcription component
Whisper transcribes; optional pyannote supplies speaker spans. The merger assigns each segment to the speaker with the most overlap time; no overlap = Unknown. Diarization off = plain transcription.
Scoring and alignment serve different decisions
Alignment: who spoke. Scoring: which moment is worth extracting. A correct transcript doesn’t make an excerpt worth using, that’s a separate judgment.
The rubric didn’t come from taste: six official Shorts and two full talks were reviewed first. Eligibility gates sit outside the score. 30–90s contiguous source bounds, quotes tied to ASR segments and a source hash, qualifications and opinion status preserved. ASR is never silently rewritten into a different claim, and a defensible excerpt that can’t fit the bounds gets rejected, not forced.
Excerpts lose context and cut qualifications, so the demo keeps timestamps and shows the passage around the quote. 30–90s describes the excerpt, not the talk or a speed benchmark.
The merger stays separate from UI and model execution, alignment tests stay small and dependency-free. Overlap is heuristic: one segment can hold several voices; labels don’t establish identity.
The setup
Runs in Docker: one non-root container, read-only model mounts, internal network, with a localhost relay mediating access. The Gradio interface is upload-first; Whisper weights are cached locally and every transcription run is fresh.
The evidence
What was validated, and where the SRT defect remains
Historical workflow. The account above is my description of the AI House work, confirmed 23 October 2026. Scoring source, ranked candidates and post drafts aren’t yet in this evidence pack.
Public output reference. AI House Davos publishes excerpts on its Shorts channel; “Sovereign AI explained” is one example. Not attributed to me, not proof of scorer selection.
AI House Davos Shorts ↗ · Example of the channel’s format ↗
Repository component. A one-line syntax repair (12 October 2026) passed parsing; overlap, Unknown, empty-input and formatting checks passed. A millisecond-carry boundary test exposed an SRT defect that remains.
Those checks cover the repo only. The recorded reconstruction ran fresh Whisper transcription, source-bound scoring, real excerpt extraction and drafting, diarization off.
View the transcription component repository ↗Results and limitations
Co-built, not sole authorship: Whisper and pyannote supply model capabilities. Not established: scorer training, exact weights, clip-cutting implementation, auto-publishing, time savings.
The historical workflow ran on hour-plus talks; this synthetic demo is not a long-input benchmark. One fresh Docker Whisper run: 173 seconds of fiction → 32 timestamped segments in 27.1s, two genuine scoring/drafting calls, a real 64-second clip, this run’s timing, not a speed claim. Rubric and interface are reconstructions. Raw ASR intact; the draft flags errors and drops an unfinished point. No event media, private conversations or auto-publication. Cached weights reused, transcription fresh; repo unchanged.
Most checks do not prove the system is safe. They make an error claim inspectable. In this made up example, the review includes two separate questions. Can someone understand the explanation? And does the test set represent the situation where an error would matter? Neither answer replaces the other. Explanations can be useful, they are simply not the entire test. Synthetic demo, not a real AI House talk.
What I learned
Keep the warnings in. A clean-looking transcript that hides its doubts is worse than a rough one that shows them, and the unglamorous tests are the ones that find the defects that matter: the SRT boundary case earned its place.