I run a coffee marketplace with 1,400 coffees on it. Ninety-two roasters, all normalized into one catalog so you can compare an Attikan Estate from one roaster against a Baarbara Estate from another.
Ask me where a coffee is from and I'll tell you. What region, what estate, what process — I built a whole pipeline to get those right, and I'm genuinely proud of it.
Ask me which of my 1,400 coffees are dark roasts, and I have nothing.
That's not a bit. It's the actual state of the thing I built. I can tell you a coffee is from Chikmagalur, that it's washed, that the roaster says it tastes like jaggery and fig. I cannot tell you — against my own database — whether it's a light, medium, or dark roast. I'd have to open the roaster's product page, one coffee at a time, and read it myself.
Then I found the Reddit threads, and it stopped being funny.
On r/IndiaCoffee, someone titled a post "No fruit bombs. Let's build an ultimate shortlist of best Indian medium dark and dark roasts." The top comment: "Most of the Indian specialty coffee scene leans toward light and fruity roasts. But there's a big crowd that prefers chocolate, caramel, and a bit of nuttiness."
Right next to it: "Let's discuss best Indian roasts right now." Thirty upvotes, roughly ninety comments, and buried in the middle, a person who wrote "I have been exploring various options for the past year without finding a definitive favorite."
A year.
These are the exact people I built IndianCoffeeBeans for — the second-wave buyer who doesn't want another bright, fruity light roast, who wants chocolate and caramel and a bit of nuttiness. And they're doing my data-entry work by hand, in a comment thread, because nobody gave them the axis to shop on.
Not the roasters. Not the marketplaces. Not me.
Here's the part that stung. The data isn't missing. Roasters declare their roast level — "Medium Roast," "Dark Roast" — right on the product page, and they publish tasting notes. My scraper pulls from 92 of their sites, and my canon pipeline normalizes regions, estates, and flavor notes into clean reference tables.
What I never did was make taste a thing you can actually browse.
My catalog is region-shaped. It's price-shaped. It is not taste-shaped. "Flavor notes" live in a normalized table, which is not the same as a buyer being able to say "show me dark roasts with chocolate notes" the way they can already say "show me Chikmagalur." There's a gap between "the flavor notes are captured as data" and "a buyer can filter 1,400 coffees by taste." That gap is the entire reason a stranger is hand-compiling my shortlist on Reddit.
And while I was feeling smug about my data layer, a second clock was ticking.
In the AI-answer era, "best Indian dark roast" is about to be answered by a model a million times over. And the model doesn't rank a list — it cites a source. The search research that's been landing this quarter says it plainly: AI models reward proof, not claims. A roaster's "bold, chocolatey, full-bodied" is a claim. A taxonomy row — roast_level: medium_dark, flavor_profile: [chocolate, caramel, nutty] — is proof.
Read that against the Reddit threads and they stop being two separate things. The taste axis the community is hand-building by committee is the exact structured layer the AI is about to reward. The same artifact fixes both. Whoever owns the taste taxonomy for Indian coffee wins the human discovery problem and the AI-citation problem in one move.
I've spent a year telling anyone who'd listen that "the moat is verified data" and "data integrity is the new SEO." Tonight I have to add the part I kept missing: the moat and the funnel are the same object.
You don't build the taste taxonomy to get cited. You build it because it's the right data model — and the citation comes free because it's the right data model. The structured, source-tagged, timestamped layer I was building for trust is the exact thing that wins distribution. I just never built it along the axis my buyers actually shop on.
So the fix isn't fancy. Capture roast level from the roaster's declared value, bucket the flavor notes into a small controlled vocabulary — fruity, floral, chocolate, nutty, spice — and let people browse by "dark + chocolate." Same scraper. Same canon. One new axis. A filter.
The embarrassing part isn't that I have to build it. The embarrassing part is that the person who made me realize I needed it was a stranger in a Reddit thread who'd spent a year hunting for the answer I should have been able to give him in one query.
What axis are your buyers shopping on that you haven't built yet? Mine was hiding in a comment thread titled "no fruit bombs."