Founders

A Rubric for Scoring Interview Transcripts with a Model

Antonio Evans7 min read

A desk seen from slightly above: a laptop screen showing a table of colored tags (green, amber, red) next to short lines of transcript text.
Key points

Key points

  1. 1A scoring rubric is a short list of observable commitment signals, each with a plain definition plus positive and negative examples, so a model has something concrete to match against.
  2. 2Ask for a tag per signal and the exact quoted evidence, because a tag without a quote cannot be audited or trusted.
  3. 3Batch many transcripts per call to cut cost and time, then audit a random sample against your own read before trusting the rest.
  4. 4Measure agreement with a chance-adjusted metric like Cohen's kappa, fix definitions where disagreements cluster, and rerun.

Build the rubric before you touch a prompt

The most common failure in transcript scoring is skipping the rubric and asking a model to "rate how committed this person sounded." That produces confident prose you cannot check. A rubric fixes this by embedding domain expertise in a checklist: a list of criteria, how the response performed on each, and a scoring rule that turns performance into a number Snorkel's guide to rubrics. For interviews, the criteria are commitment signals, and they should be defined by someone who has run the interviews, not by the model.

Start from what a real commitment actually looks like in a transcript. The Mom Test makes the case that compliments and vague enthusiasm are worthless data, while concrete past behavior is what you can trust Frank Thoughts on The Mom Test. A person saying "I'd definitely use that" is fluff. A person saying "I tried to solve this by building a spreadsheet last quarter and gave up after two weeks" is a signal. Your rubric should reward the second and discount the first.

Customer discovery guidance agrees on one point: interviewers should explore past behavior, not opinions or intentions HBS Rock Center on customer discovery. That principle transfers directly to scoring. If a transcript contains no record of past action, the honest tag is "no evidence," not "maybe." Building "no evidence" into the rubric as a first-class label prevents the model from inventing commitment where none exists.

Pick five to seven signals, no more

A rubric of twenty signals invites overlap and contradictory tags. I-Corps guidance suggests a focused set of interview questions aimed at pain, current solutions, and actions taken Richard von Kaufmann's discovery questions. Mirror that with five to seven signals such as: described a recent concrete problem, named a current workaround, mentioned a budget or decision maker, asked what happens next, offered a follow-up or introduction, and contradicted their own enthusiasm with a caveat.

Each signal gets three parts: a one-sentence definition, two positive quotes, and two negative quotes. The negative examples matter as much as the positive ones, because models tend to over-tag when only shown what "yes" looks like. Few-shot examples with structured outputs work best when they use a consistent serialization format OpenAI community on few-shot and structured outputs, so keep the example quotes in the same field structure the model must return.

Write definitions that a stranger could apply

Test each definition by handing it to a colleague who did not write it. If they tag a transcript differently than you do, the definition is not done. The Arize field guide to judge alignment recommends collecting multiple human annotations on a subset precisely to surface these definition problems before you scale Arize on human-LLM judge alignment. Disagreement between two thoughtful humans is your cheapest diagnostic.

Prompt the model to tag and quote

The prompt has four jobs: carry the rubric, tell the model the output shape, require a verbatim quote per tag, and name the escape hatch. Here is a compact template.

SYSTEM
You score customer interview transcripts against a fixed rubric.
Return JSON only. For every signal, return:
  signal_id, tag (yes | no | unclear), quote (verbatim, or null), rationale (max 15 words)

RUBRIC
S1 Problem is recent and concrete. Definition: speaker names a specific problem
   they hit in the last 90 days, with an event, not an opinion.
   POSITIVE: "Last month our invoice run broke and we lost a day."
   NEGATIVE: "Invoices are always a pain, I guess."
S2 Named current workaround. ...
(continue for each signal)

RULES
- quote must be copied character for character from the transcript.
- If the evidence is absent, tag unclear and set quote to null.
- Do not infer commitment from politeness or compliments.

Three details do the heavy lifting. First, requiring verbatim quotes turns every tag into something you can verify in seconds, which is how you audit at speed. Second, the "unclear" tag gives the model a way out, and a model with no exit will guess. Third, the rationale capped at fifteen words stops the model from writing miniature essays that hide weak evidence.

Analyzing transcripts after the fact is a legitimate use of a model even where running the interview is not; Fitzpatrick endorses transcripts for locating exact quotes while warning against dumping everything into a knowledge base that muddles biased data with good data Fitzpatrick on AI and interviews. Your rubric is what separates the good rows from the muddy ones.

Score toward the end of the call

Commitment tends to concentrate in the closing minutes. Questions about next steps, introductions, and decision makers are exactly where a real signal appears, and interview guides recommend ending by asking for a warm introduction Desert Pacific I-Corps on interview best practices. If you have timestamps, weight the last third of the transcript, or ask the model to note where in the call each quote appears so your audit can check placement.

Batch many transcripts per call

One transcript per call is the default and the most expensive option. Batching a dozen transcripts per call into a single request, with an explicit transcript ID on each output row, cuts the number of calls and keeps the rubric overhead amortized. The model reads the rubric once per batch instead of once per transcript.

ApproachCalls for 120 transcriptsRubric readsAudit burdenBest for
One transcript per call120120Low per call, high totalComplex, long transcripts
10 per batch1212Check IDs line upMost interview sets
40 per batch33High, output may truncateShort, uniform transcripts

Three rules keep batching honest. Assign every transcript a stable ID before batching and require the model to echo it on each row, or you will spend an afternoon matching rows back to files. Cap batch size by output length, not input length, because twenty transcripts times seven signals times a quote is a large response. And randomize which batch a transcript lands in, so a systematic error tied to prompt position does not align with a real segment of your interviews.

Batching also makes reruns cheap. When you fix a definition after an audit, rerunning three batches takes minutes, and you can diff the new tags against the old ones to see exactly which rows moved.

Audit a sample against your own read

This is the step most teams skip, and it is the step that makes the rest defensible. Pick a random sample of transcripts, ideally stratified so rare tags get enough coverage, and tag them yourself by hand without looking at the model output first. Galileo's calibration guide notes that stratified sampling surfaces tail failures that random sampling misses, and that raw accuracy inflates on imbalanced labels Galileo on calibrating LLM judges. A set where 90 percent of rows are "no" will make any model look accurate.

Size the sample so the numbers mean something. For a first pass, 30 transcripts tagged by hand across your signals gives you a readable signal on each row of the rubric, and if you have a second colleague, tag the same 30 independently to measure human agreement first. The Arize guide treats human-human agreement as context for the comparison rather than a ceiling, but if two humans barely agree, no model can be expected to Arize on measuring alignment.

Measure agreement properly

Use a chance-adjusted metric. Percent agreement is easy to read but misleading, and Cohen's kappa is the standard starting point for two annotators with categorical labels Arize on judge alignment. Build a confusion matrix per signal so you can see whether errors are false positives, where the model over-tags enthusiasm, or false negatives, where it misses quiet signals.

SignalHuman yesHuman noModel yesModel noNote
S1 recent concrete problem181220104 false positives, all politeness
S4 asked what happens next9218222 false positives, 3 misses
S6 caveat on own enthusiasm4261119Definition too broad, split it

The right response to a bad row is not a stronger model. It is a tighter definition. If S6 over-tags, the definition probably accepts any hedge, and it should instead require a hedge attached to a specific purchase or timeline.

Fix where disagreements cluster, then rerun

Read the disagreements, not the aggregate score. If four of five S1 false positives are the same sentence type, your definition needs a negative example drawn from that sentence type. Disagreement is the input to better criteria, and structured rubrics improve by iterating on the criteria that generated them Snorkel on rubric design.

A worked sequence: hand-tag 30 transcripts, score the model, find kappa of 0.41 on S6. Read the eleven model-yes rows, realize seven are generic hedges. Rewrite S6 to require a hedge about a specific commitment, add two negative examples, rerun the same 30, and re-measure. If kappa rises, the definition got better, not the model. Track each signal's kappa across reruns so you can see which part of the rubric is stable.

Two guardrails keep the loop from drifting. Freeze the hand-tagged sample before you edit definitions, or you will unconsciously retrofit labels to defend the new rubric. And keep an untouched holdout set of 30 more transcripts tagged by hand, scored only once the rubric stabilizes, because provider-side model updates can shift scoring distributions without any warning in your dashboard Galileo on judge drift.

Rubric-based evaluation with a model judge is a hybrid stack: deterministic checks on what you can verify, a model judge for nuance, and human oversight for governance and calibration Adnan Masood on rubric-based evaluations. Treat the model as a fast classifier with a known error profile, not an oracle. When you need more interview-derived evidence rather than more scoring, a free 30-minute AI discovery call is a sensible next step, and if you are wiring this into a pipeline, one OpenAI-compatible key for every model keeps the plumbing simple.

FAQ

FAQ

Do I need a different rubric for every interview round or product?

Yes, keep the structure and change the signals. The skeleton (definition, positive examples, negative examples, quote requirement, unclear tag) carries over, but signals that matter in a sales call differ from those in a product discovery interview. Re-audit a small sample whenever signals change, because a definition tuned on one round does not automatically transfer to another.

How many transcripts should I include in a single model call?

Batch by output size, not input size. For most interview transcripts, 10 to 15 per call keeps responses under length limits while still amortizing the rubric. Echo a transcript ID on every row so you can join results back to files, and keep batch size fixed across reruns so comparisons stay valid.

What do I do when the model tags "unclear" too often?

Split the signal or loosen it. A high unclear rate usually means the definition demands evidence a typical transcript does not contain, such as an explicit budget figure nobody said out loud. Check your own hand tags for that signal: if you also marked most as unclear, the signal may need to be dropped rather than fixed.

Is raw agreement good enough to trust the tags?

No. Percent agreement looks good on imbalanced sets where most rows are the same label, which is why calibrated teams report a chance-adjusted metric like Cohen's kappa alongside it. Report human-human agreement first, then model-human agreement on the same examples, and keep the confusion matrix per signal.

Can I use model scores to rank interviewers or transcripts directly?

Only after the audit shows stable agreement and you know the error profile. A false positive on commitment is usually worse than a false negative, because it sends you down a path built on politeness instead of evidence. State that cost asymmetry explicitly in the prompt and in how you read the scores.

Sources

Sources

  1. Data quality and rubrics: how to build trust in your models | Snorkel AI
  2. The Mom Test: Talking to Customers the Right Way - Frank Thoughts
  3. PDF Customer Discovery Basics - Rock Center for Entrepreneurship
  4. Customer Discovery Done Well - Medium
  5. Few-Shot Prompting with Structured Outputs
  6. How to Measure Human-LLM Judge Alignment - Arize AI
  7. The Mom Test AI can't run your customer interviews (but ... - YouTube
  8. Tips and Best Practices for Conducting Customer Discovery ...
  9. How to Calibrate Your LLM Judge With Human Annotations - Galileo AI
  10. Rubric-Based Evaluations & LLM-as-a-Judge - Medium
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles