Course · Part 6, The room · Lesson 6.4 · 11 min

The behavioral round: three stories, each with a trace behind it

The failure you found, the safe option you chose, the thing you cut. Each told in ninety seconds, past tense, with a line number and a number that moved.

Before you read: find the line

Read the run below once. Decide which line is the mistake. The lesson tells you.

Nightly reconciliation agent, the failure behind story one
  1. 1userNightly job: reconcile 1,240 invoices against payments
  2. 2llmplan: for each invoice, call charge_status; if paid mark it, if not create the charge
  3. 3toolcharge_status(invoice=INV-7731) -> 504 gateway timeout
  4. 4llmstatus unknown, treating as unpaid; create_charge(invoice=INV-7731, amount=184.00)
  5. 5toolcreate_charge(invoice=INV-7731, amount=184.00) -> ok, charge ch_91ab
  6. 6toolcharge_status(invoice=INV-7731) -> paid (2 charges)
  7. 7donestatus: success, 1,240 reconciled

Why they ask for stories

The behavioral round is the one candidates prepare least and the one that most often decides between two people who both passed the technical rounds. Structured interviews, the same questions to every candidate scored against the same rubric, predict job performance better than unstructured ones: Schmidt and Hunter's 1998 meta analysis put the validity at 0.51 against 0.38. That is why the questions sound formulaic. "Tell me about a time" is a rubric item.

For agent roles the best evidence you can give is a trace. Not a diagram of the system, a run: what the user asked, what the model did, which line went wrong, what you changed, what number moved. Prepare three stories in that shape and you can answer most of the round.

Story one: the failure you found

Shape: the run, the line, the cause, the change, the number. The trace below is one. A nightly job reconciled 1,240 invoices. A status check timed out on one invoice, the model read the timeout as "not paid" and created a second charge, and the run ended with status success. I found it in the trace the next morning from a customer email. The change was two things: an idempotency key on create_charge so a repeat is a no op, and a rule in code that an unknown status never triggers a write. Double charges went from four that month to zero in the next three.

Tell it in ninety seconds. Say "I", not "we", for the parts you did. End with the number.

Story two: the safe option you chose

AI labs ask a version of this question directly: "Tell me about a time you chose the safer option when a faster one was available." Anthropic's public writing on safety says the organisation wants people who take the cautious path when the cost of error is high, and the interview checks for it. They want three things: the risk named in plain words, what you gave up, and how you made the decision reversible.

An example shape: the agent was ready to ship with write access to the CRM. I shipped it read only with a draft queue a person approved, which cost a week and an extra click per record. In the first month the queue caught eleven drafts that would have overwritten a field with a wrong value. After six weeks of a clean queue, two field types were moved to auto apply. The story has a risk, a cost, a number and a path back.

Story three: the thing you cut

Scope stories show judgment. The shape: what was planned, what you measured, what you cut, what happened. An example: a three agent design, a planner, a researcher and a writer, for a weekly report. The eval on ten past reports showed the planner added nothing the writer could not do from a fixed outline, and the researcher was three fixed queries. I cut it to one model call and a script, which was four times cheaper and easier to debug, and the judge score on the ten reports did not move. Lesson 4.5 is this story in full.

The shape, and what to avoid

Ninety seconds. Past tense. One run, one line, one change, one number. Say what you would do differently now, in one sentence, because the follow up is always "what would you change".

Avoid stories where nothing went wrong, because they give the interviewer nothing to score. Avoid blaming the model: "the model hallucinated" is a symptom, and the question is what you built around it. Avoid the team story where your part is unclear. If you have no production story yet, the challenges on this site are real runs with real fixes you wrote, and a story about one of those, told honestly as practice, beats a vague one about work.

The line

Nightly reconciliation agent, the failure behind story one
  1. 1userNightly job: reconcile 1,240 invoices against payments
  2. 2llmplan: for each invoice, call charge_status; if paid mark it, if not create the charge
  3. 3toolcharge_status(invoice=INV-7731) -> 504 gateway timeout
  4. 4llmstatus unknown, treating as unpaid; create_charge(invoice=INV-7731, amount=184.00)
  5. 5toolcreate_charge(invoice=INV-7731, amount=184.00) -> ok, charge ch_91ab
  6. 6toolcharge_status(invoice=INV-7731) -> paid (2 charges)
  7. 7donestatus: success, 1,240 reconciled

Line 4. A timeout on a read was treated as a fact about the invoice, and the next step was a write. Unknown is not unpaid. The fix is an idempotency key on create_charge and a rule in code that an unknown status never leads to a charge; the invoice goes to a retry list for a person instead.

The pause

In the safe option story, what are the three things the interviewer is listening for?

In the interview

“Tell me about a time you chose the safer option when a faster one was available.”

Say your answer out loud, in under a minute. Then compare.

Notes