← All records

No. 01 — Research synthesizer

Turns hours of user interviews into ranked themes, where every insight links to a real quote, and made-up quotes are thrown out.

The problem

Interview synthesis takes days, and AI summaries make up quotes, which teams then base product decisions on.

What I built

A pipeline that extracts, verifies, clusters and ranks insights. Each one traces back to the exact quote and, for recordings, the moment it was said.

The result

Tested on 125 real transcripts. Unverifiable quotes are dropped and the drop rate is published.

RoleSolo: pipeline, evaluation, product design
StackFastAPI, pgvector, Claude Haiku + Sonnet, HDBSCAN, faster-whisper
Year2026

01See it work

85-second walkthrough: upload interviews, review ranked themes, click any insight to see the quote behind it.
125
real transcripts parsed in testing
8
pipeline stages, from parsing to Q&A
24
backend tests on real Postgres + pgvector
0
API keys stored server-side, by test

02Why it matters

After a round of user interviews, someone spends days tagging quotes and grouping them into themes. AI can do it in minutes, but it paraphrases and sometimes makes up quotes. In research that's fatal, because product decisions get made on those quotes.

03The idea

Traceability is the product. Every quote the model extracts is checked against what that participant actually said. If it can't be found, it's dropped, and the drop rate is shown, so you can see how much to trust the output.

04How it works

  1. DeterministicParse.txt / .vtt / .srt, or audio via faster-whisper
  2. AI modelExtractClaude Haiku with a forced tool call returns pains, needs and quotes
  3. Verification gateVerify quotesFuzzy match inside the participant's own turn; drop if not found
  4. DeterministicClusterbge-small embeddings, HDBSCAN per insight type
  5. AI modelName & rankClaude Sonnet names themes, ranked by reach × severity
  6. OutputReport & ask450-word report, charts, and Q&A with hybrid retrieval (RRF)
Deterministic AI model Verification gate Output

05Decisions that mattered

A

Drop, don't trust

A paraphrased quote looks fine and is wrong. Matching against the speaker's own turn catches misattributed lines, not just made-up ones.

B

The right model for each step

Haiku handles high-volume extraction cheaply, and Sonnet does the judgment calls like naming themes. Without an API key, a heuristic baseline still runs end to end.

C

Clusters that can say "noise"

HDBSCAN doesn't need a preset number of themes, and it leaves one-off comments unclustered instead of forcing them into a theme.

D

Your key stays yours

Bring-your-own-key lives in the browser, and the server holds it in memory only. A test proves no database table ever stores it, and error messages are scrubbed of it.

06How I know it works

The plan: run Claude and the heuristic baseline on the same 40 interviews, hand-code 30 sources, and score theme coverage and quote accuracy.

The pipeline passes 24 backend tests on real Postgres + pgvector. The model-vs-baseline run is next, and its numbers go here once measured.

07What's next

  1. Run the Claude-vs-heuristic eval and publish the table
  2. Clip-level demo on recorded meetings (AMI corpus)
  3. Deploy, then record the demo
Next recordRedline