Product Discovery Agents

Reads every customer-facing call and keeps one accumulating backlog, ranked by who asked, how strongly they said it, and how many times it came back — with their own words attached, and no score the agents made up.

The problem

Validating a roadmap used to mean a very large coffee and an afternoon of "do you remember when they said…" — product, sales, customer success and the CI engineers in a room, reconstructing from memory what customers had actually asked for. Or from dozens of transcripts, if there were a week for it. There never was.

The arithmetic is why. Five customer-facing people running about thirty calls a week generate roughly 790 hours of conversation a year — near 100 working days of listening. Nobody has that, so the calls go unreviewed and the signal is not triaged, it is lost. What survives is whatever stuck in someone's memory, which means prioritization quietly becomes an argument about recall dressed up as an argument about strategy. It works at five people. It stops working the moment you scale, and nothing announces the moment it stops.

💬 Capture every external call
📄 Structure signals + quotes
📊 Signal Matrix evidence, not opinion
📝 Briefs only past the bar
🧑 You Decide the loop closes here
Impact

One file that accumulates, instead of a report regenerated each day. Each row is a real customer need carrying who asked, how strongly, how many times, and a verbatim quote per account.

Ranking is evidence only: the sum of stated importances multiplied by mentions. Importance is 1 or 2 and the test is whether the customer attached a consequence — a deal condition, a compliance gate, a number they quantified. An earlier version had the agent estimate impact and effort; both were deleted. Impact re-encoded what the customer had already said, and effort was a guess at something only engineers know. Effort now enters where it belongs: in a room, with the people who will build the thing.

The coordinator never reads a transcript — that fans out to a cheap model in parallel — and never delegates the merge, because deciding "this is the same need as that row" is the one step that can silently corrupt the evidence base. When it cannot tell, it refuses to guess and asks. A ledger of processed calls makes runs idempotent, so a missed day heals itself rather than being lost.

The unplanned part turned out to be the most useful: because the same system knows what customers asked and what is actually on the roadmap, it keeps catching promises made ahead of it — the delivery date nobody wrote down, the feature described as in development that exists on no plan.

View on GitHub →