Case study 02 · live discovery engine

02 / 10

Don't interview six. Interview the whole org.

Understanding how a big company's buying function really works used to take two or three weeks: a team running structured interviews, typing the answers into spreadsheet after spreadsheet, then analysts turning all of it into a diagnostic deck, and it only ever reached five or six people. This is a mobile-friendly web app you talk to out loud, so the same diagnosis scales across an entire procurement organization. It reasons alongside you as you speak, drawing on a built-in knowledge base to ask sharper follow-ups, working out how capable your team is and how it actually does things, mapping every answer to the specific hypotheses and factors it is testing, then pulling all of its interviews into one complete, org-level picture. Built solo, end to end: the realtime voice loop, the analyst brain underneath it, and the intake that routes every person to their own interview.

live discovery · how the org workslive
you · speaking

factors scored

13 / 20

probing next: how do approvals actually run?
ops leadintake works fine
the buyerit's broken daily

240 voices → one diagnosis, attributed

interview hundreds, not sixone grounded diagnosis, with attributionlive, built solo end to end

the problem

Understanding how a large organization's buying function really works, where it is strong, where it is broken, how mature it is, used to be a two to three week exercise. A small team ran structured interviews with five or six senior people, typed the answers into spreadsheet after spreadsheet, and then a group of analysts pored over those workbooks to assemble a diagnostic deck. The whole expensive effort rested on whoever happened to sit in those few interviews. It was not slow because the conversations were slow. It was unsound, because five or six voices were being asked to speak for an organization of hundreds, and nobody could hear the rest.

There is a second trap. The most valuable thing in any of those rooms is disagreement: the head of operations swears the intake process works, and the clerk who actually files the requests says it is broken every single day. Roll those interviews up into a tidy average and you erase the single most expensive finding in the building. The real product was never a faster interview. It was hearing everyone, and surfacing exactly where they contradict each other.

what I built

A mobile-friendly web app that an entire procurement organization can talk to, out loud, so the discovery that used to reach five or six people now reaches everyone. A person just speaks, in a normal conversation, and the app reasons alongside them: it draws on a built-in knowledge base of what a strong buying function looks like to ask sharper, probing follow-ups, works out how capable the person and their team are and how they actually get things done, and quietly maps every answer onto the specific hypotheses and factors it is there to test. Underneath the conversation, a separate analyst brain scores each answer and decides the most valuable thing to ask next before the voice replies. Every interview then folds into one shared, org-level picture that surfaces where people agree and, more importantly, where they sharply disagree, with each view attributed to who actually said it. I built the whole thing alone: the voice loop, the analyst brain that steers it, the knowledge base and grounding that keep it sharp, and the intake that routes every person to their own interview. It runs live and is in active development.

how it works

01

Two clocks, running at once

A person speaks at the speed of conversation. In the silent beat after they stop, a slower analyst brain scores the answer, finds the highest-value gap still open, pulls the right context, and writes the next question. The voice only speaks once that question is ready. The fast clock keeps it human; the slow clock keeps it rigorous. Neither waits on the other in a way the listener can feel.

02

Test hypotheses, not vibes

The conversation feels open, but underneath it is methodical. The app carries a structured model of the factors that make a buying function work well, and it treats each one as a hypothesis to confirm or rule out. As a person describes how they actually do things, the analyst brain maps what they said onto those factors, scores how capable the team looks on each, and tracks which factors are still untested so it can steer the next question toward them. By the end it has filled in a known frame, not just collected a transcript.

03

Take turn-taking away from the voice

The voice model is muted by default: it is structurally forbidden from replying on its own. A separate, deterministic controller is the only thing allowed to start a turn. That single inversion is what lets the slow analyst brain decide every question instead of letting a chatty model run the room, and it is what makes the whole thing feel like one calm expert rather than an eager chatbot.

04

Referee the race between the human and the models

Most of the hard code is handling collisions. If the person keeps talking while a scoring pass is mid-flight, the system quietly drops the question it was about to ask so the topic does not silently move on without them. Fragmented, stop-start speech is gathered into one real turn before anything reacts. Stray auto-replies the model tries to emit on its own are suppressed by id. None of this shows on a good day. It is simply what running two clocks costs.

05

Ground it so it never name-drops

The base voice model already knows too much, and left alone it will confidently name real tools and the real client mid-sentence. So before it improvises, the system pins a short expert briefing on the topic at hand, refreshed when the conversation moves. Then, as a last line of defense, a deterministic scrubber rewrites any forbidden term out of every sentence right before it is spoken. You cannot trust a probabilistic model to reliably not say a name, so the guarantee is made by plain code, not by hoping.

06

Route every person to their own interview

The bottleneck on interviewing hundreds of people was never interview quality. It was setup: tailoring each conversation to what that specific person actually owns. So an intake step maps the whole org, each person finds themselves in it, and they are auto-routed into a role-scoped interview before being handed to the voice. That mundane screen, not the AI, is what turns 'interview six' into 'interview everyone.'

07

Roll many interviews into one diagnosis

Every interview feeds a single shared picture with each reading attributed to the speaker who gave it. Where people genuinely disagree on the same point, that gap is elevated as the headline finding, with the most positive and most negative voice quoted side by side. The picture also knows where it is thin, and steers later interviews toward the questions only certain people can answer, so coverage closes instead of piling up on whoever talks most.

design decisions

Scope each person's interview

One generic interview script is the wrong tool for a whole organization. A senior leader and the person filing the requests live in different parts of the work, and asking each of them the same questions wastes the leader's time and overwhelms the junior. So before anyone speaks, the app places them in the org and routes them into an interview scoped to what they actually own, pitched at the right altitude: leaders get asked about direction and blockers, the people doing the work get asked about the specific steps they run. It costs a setup layer most voice demos skip, but it is what makes the conversation respect each person's time and only ask what they can truly answer.

Ground it to probe like an expert

Left to itself, a voice model asks shallow, generic questions and fills the gaps with whatever its training suggests. That makes for a friendly chat and a useless diagnosis. The decision was to feed the model a working brief of what a strong version of this function looks like, on the topic at hand, before it speaks, and to refresh that brief as the conversation moves. So its follow-ups land like someone who already knows the terrain and asks the sharp second question, not the obvious first one. The grounding is there to raise the quality of the questions, not just to keep the model on script.

Aggregate without averaging

Many interviews could be rolled into one tidy score, but a single number hides the places where people see the same thing differently, and those gaps are often where the real story is. So instead of averaging, the picture keeps every reading attached to the person who gave it, and where two people describe the same process in opposite terms, it holds both side by side rather than blending them away. The org-level view is built from named voices, not an anonymous summary, so a finding can survive the obvious question of who actually said it.

Being one turn stale is a price worth paying

The expensive scoring does not block the reply. The voice answers against the last completed picture, while the heavy analysis runs in the background and is consumed as context for the next question, not this one. Letting the answer be a single turn behind is what keeps the conversation human-paced. That staleness is a deliberate, accepted tradeoff, not a bug.

Read the pattern: two clocks, slow reasoning inside a fast conversation

what it changed

hundreds, not six

the whole organization interviewed, instead of a tiny sample standing in for it

attributed

agreement and disagreement surfaced with who actually said it, not averaged away

live, solo

voice loop, analyst brain, grounding, and intake, built end to end