
I collected 714 public reviews and posts about three software companies: Appfire, Aha! and SurveyMonkey. Only 130 of them arrived through a channel the company runs. The rest were in app store reviews, Atlassian Marketplace listings, Reddit threads and review sites, written by people nobody asked.
Every product team I know builds its roadmap from the feedback it controls: the ideas portal, the support queue, the quarterly survey. That feedback is useful, but it is also the feedback customers chose to hand over. The complaints that make someone cancel quietly usually end up somewhere else.
So I built Heard, a side project to see how far an agent could take that public feedback toward a roadmap decision a product manager would defend.
What does Heard do?
Heard reads the feedback a company does not own. It collects public reviews and posts within each site's rules, groups them into themes, ranks the themes, and makes a Build, Watch or Ignore call on each one with the reasoning attached.
Each of the three runs says something the company's own channels would not. Across eighteen Appfire apps on the Atlassian Marketplace, the same pattern kept coming up: customers reach the product through a named support engineer, and 72 reports sit behind that top theme. Aha! sells the ideas portal, yet the two problems its customers raise most in public (it is powerful but overwhelming to set up and learn, and per-seat pricing keeps it inside the PM team) rank 12th and 11th on that same portal. For SurveyMonkey, the response limit shows up after the survey has already been answered, and the only public place to say so is an app store review.
Every number on the page opens the reviews behind it, so anyone can check the call against the evidence.
How is it built?
The pipeline has five steps, and only one of them uses a model.
Collectors written in Python and Node (Puppeteer for pages that need a real browser, and a Google Play scraper) pull reviews from the App Store, Google Play, the Atlassian Marketplace, Reddit, Capterra and the Aha! ideas portal. Each record is stored word for word with its date, rating and the reviewer's stated role. Names are not kept.
Then Claude Opus, through the Anthropic API with structured outputs, reads every record, proposes themes, assigns records to them, picks the quotes and makes the call. That is the judgment step, and it is the only place the model writes anything.
Everything after that is plain code. A verification step fails the build if any quote is not verbatim, if a record id is unknown, or if a record is counted twice. Every count, rating and share on the page is computed from the raw records, never written by the model. The ranking uses a published formula (reach, intensity, recency and breadth, weighted 45, 25, 20 and 10), and sliders on the page let you re-weight it and watch what moves. A 2,000-sample random-weighting check shows which rankings hold under any weighting and which depend on mine. The whole app is a single static page on Vercel. For now, it’s a prototype.
Is a ranked list enough to decide what to build?
No. Ranking feedback is the part that demos well, and it is the easy half. The harder question is what evidence would change the ranking.
So each company's top opportunity carries a survey written to test it. Every question is tagged to the part of the hypothesis it checks, and a second pass removes leading questions, double-barrelled ones, and anything no decision depends on. The decision thresholds are set before any answers exist: if responses come back one way the theme moves to Build, another way and it drops to Ignore. No responses are invented. The sliders only show what each outcome would do.
The call I find most useful is the Ignore. For Appfire, the largest source of requests is a long tail of one-app feature asks. Heard recommends declining them as a portfolio, because each one adds permanent surface to maintain for the customers of a single app. That is a call a product manager has to be able to make and explain, and a tool that only ever says Build is not helping.
What can't it see?
The reality is that only people with something to say write reviews, so satisfied customers and quiet cancellations look the same from the outside. Review volume tracks marketing effort as much as product quality, and some of these reviews arrived in vendor campaigns. Reddit skews to power users and detractors; marketplace reviews skew to administrators support had already helped. G2 is excluded because its terms prohibit automated collection, and Capterra blocks automated access.
The biggest limit is me. One reader made every clustering call, and there is no second rater yet. The agreement check on the page exists so someone else can challenge it.
Where does this leave the roadmap?
Heard does not replace the ideas portal or the survey. It adds the voice that never reached either of them, with every claim traceable to a public source, and a test attached before anyone commits a quarter to it.
The software for deciding what to build has never been better. The feedback that should decide it is still sitting on other people's websites, and now I have a way to read it.