cd /news/generative-engine-optimization/i-built-a-tool-that-explains-why-ai-… · home › topics › generative-engine-optimization › article
[ARTICLE · art-148282] src=ainexusdaily.vercel.app ↗ pub= topic=generative-engine-optimization verified=true sentiment=· neutral

I built a tool that explains why AI recommends your competitors

A developer built AI Cite Who, a tool that asks buyer questions to ChatGPT, Gemini and Perplexity through their search-backed API configurations and records whether a brand appears in the answers, alongside the public pages the models cited. The tool runs audits of up to twenty questions across three providers plus a crawl of the user's site, separating website readiness, recommendation evidence and cited sources into distinct observations, and reports first-party and third-party action plans with a running history for re-runs. The developer says a strong Google ranking does not determine whether a model recommends a brand, since the model synthesizes from a wider set of public text than a ranking position represents.

read6 min views2 publishedOct 9, 2026
I built a tool that explains why AI recommends your competitors
Image: Ainexusdaily (auto-discovered)

I build small tools for the web. For a while I looked at my search rankings and felt fine about them. Then I started asking ChatGPT the same questions my visitors ask. Things like "what's the best option for X if you're a small team." My site wasn't in the answers. Not ranked tenth — absent entirely

I build small tools for the web. For a while I looked at my search rankings and felt fine about them. Then I started asking ChatGPT the same questions my visitors ask. Things like "what's the best option for X if you're a small team." My site wasn't in the answers. Not ranked tenth — absent entirely. Other products were in the answer, and a couple of them rank below me on Google. Ranking well and being recommended turned out to be two different games. That's the gap AI Cite Who is built to measure, and this post is what it does. A strong Google position tells you Google understands your page. It tells you nothing about whether a model, asked a buyer question in natural language, will put your brand in the recommendation set. Those are separate systems with separate inputs. One reads your pages and ranks them. The other reads a pile of public text (your pages, other people's pages, directories, forum threads, comparison articles) and writes an answer. Your page can be the best result on Google and still be invisible in the answer, because the model is synthesizing from a wider set than your ranking position represents. That's not a theory I'm asserting. It's the thing the product measures, and it's why every claim the tool makes has to point at something you can open and read. You give it a brand and a public website URL. It does three things, and keeping them separate is deliberate. Website readiness. It reads your public pages and checks whether they clearly state who you are, what you offer, who it's for, and what proof you have. It also looks at machine-readable structure. This part is about your own site and nothing else. Recommendation evidence. It asks a set of buyer questions to ChatGPT, Gemini and Perplexity through their search-backed API configurations, and records what the answers actually say. If your brand shows up, and how it shows up, are separate observations. A mention is not a recommendation. A recommendation is not a citation. The tool records them as different events because treating them as one thing is how you end up with a number that means nothing. Cited sources. When an answer recommends something, it usually cites public pages. The tool captures those pages so you can see what the model was reading. This is where the interesting part is, because a lot of the time the page doing the persuading isn't yours. The output is a single report: observed outcomes, the sources behind them, the limits of the evidence, and one action plan that splits into first-party work (your pages) and third-party work (pages you don't control but can legitimately take part in). There's also a running history, so you can re-run the same question set later and see whether anything moved. I'll skip the vendor names, because they aren't the interesting part. The shape is. One serverless worker, no framework. The whole thing is hand-written server-side rendering, no React, no Next, no template engine. That sounds like purism and it isn't. The product is mostly server-rendered pages plus a handful of interactive spots, and a framework would have cost more than it returned. It also keeps the client side honest: nothing ships to the browser that isn't needed. Relational data and large files live in different places. Projects, question sets, audit rows and credits are relational and get treated that way. The bulky stuff — the original model responses and the fetched pages — is stored separately, because it's read rarely, written once, and never queried like a table. Long jobs run on a queue. An audit is up to twenty questions across three providers plus a crawl of your site, so the timing is measured in minutes, not milliseconds. That's not a request you hold open. It goes on a queue and the customer gets an email when it's done. Evidence is stored raw. The original responses are kept in full. A report that cites a finding has to be checkable against the answer that produced it, and if I can't show you the raw response, I'm asking you to trust a number. The whole thing ships in two languages, both written by hand rather than machine-translated, which is its own kind of work. Before you confirm an audit, the tool shows you the cost and an estimated duration. Not after. Before. That sounds like a UX detail. It's actually an architecture constraint. To show a price up front you need to know the shape of the work up front: how many questions, how many platforms, and what each one will be asked. Those numbers have to be real, not vibes, which means the pricing logic sits directly on top of how the work is planned. It also means the tool has to be honest about uncertainty. Estimates are estimates. The copy says so instead of pretending the number is exact. This part matters more than the feature list. It does not promise that changing a page will make a model recommend you. Nobody can make that promise, because nobody controls the model. What it can do is show you what the answers currently say, which public pages supported them, and where the distance is between your site and the brands that get picked. What you do with that is a judgment call, and the report is written to leave the judgment with you. It also doesn't claim to reproduce what you'd see in the ChatGPT app. It runs against API search configurations on selected questions. A personalized consumer answer and a reproducible API sample are different objects, and blurring them would make the whole thing untrustworthy. The samples are consistent and checkable; the app is not. The model calls are the easy part now. The two things I'd spend the time on instead are both product decisions, not technical ones. The first is checkable evidence. If your tool can't show the raw material behind a finding, nobody can disagree with you, and a finding nobody can disagree with is worth nothing. Storing the source material is cheap. Deciding to surface it is the hard part. The second is telling the customer the price before they commit. It's easy to charge after the fact and harder to be right up front, but a tool that surprises you with a bill is a tool you stop using. Neither of those is a feature I added on top. They're the reason the whole thing is shaped the way it is. If you want to see it, AI Cite Who is live. You point it at a site and it shows which brands the models recommend, with the evidence behind each one and the limits of that evidence written down next to it.

Key Takeaways #

  • •I build small tools for the web
  • •This story was reported by Dev.to , covering developments in thedev space.
  • •AI advancements continue to reshape industries — read the full article on Dev.to for complete coverage.

📖 Continue reading the full article:

Read Full Article on Dev.to →

── more in #generative-engine-optimization 4 stories · sorted by recency
── more on @ai cite who 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-built-a-tool-that-…] indexed:0 read:6min 2026-10-09 · —