We asked an AI assistant twelve agency-buying questions. It cited 233 sources. None of them was us.
Measured 2026-08-28. This is a measurement of this site, run by this site, and it comes back zero. We are publishing it because a library that only publishes findings which flatter it is the thing we built this to replace.
What we did
Twelve fixed prompts, in three shapes, each asked twice: once with web search available and once with no tools at all. The second run is a control — koolav.com went up in 2026 and cannot be in a model’s training data, so a miss there proves nothing. The first run is the real measurement, and it is the one that matters: across 12 answers the assistant searched and cited 233 distinct domains, 286 times. None of them was this site.
The result, by question shape
Retrieval condition: 0 of 12 answers named Koolav. Control condition: 0 of 11, and not one control answer cited any source at all, which is what a model answering from memory looks like.
Who got the slots instead
The 15 most-cited domains across those answers. This is the discovery layer for agency selection as an AI assistant currently sees it. The full list of all 233 is in the run file.
| Domain | Known as | Answers citing it |
|---|---|---|
| clutch.co | Clutch | 6 |
| designrush.com | DesignRush | 6 |
| g2.com | G2 | 6 |
| cbinsights.com | 5 | |
| checkthat.ai | 4 | |
| glassdoor.com | Glassdoor | 4 |
| agencyreview.dev | 3 | |
| featuredcustomers.com | 3 | |
| saleshive.com | 3 | |
| agencies.semrush.com | 2 | |
| agencyspotter.com | Agency Spotter | 2 |
| avenuez.com | 2 | |
| blastra.io | 2 | |
| blog.apify.com | 2 | |
| ca.trustpilot.com | 2 |
The top three are the directories. Beneath them the tail is long and thin — 233 distinct domains across 12 answers, most cited exactly once. We have not classified that tail and are not going to claim we have. What we did measure, separately and on the highest-intent buyer queries, is that every organic first-page result was an agency publishing a ranking that included itself: We checked the lists. If that structure holds beyond those queries, an assistant asked to choose an agency is reading it because it is what exists to read.
What we think this means
The obvious reading is that our pages are not good enough for a model to want. We do not think that is what happened, and the named-agency prompts are why: those name agencies we hold full evaluations of, with pricing, sources and dates, and they missed at the same rate as everything else. Being unread and being unconvincing produce the same score here, and the honest position is that this measurement cannot tell them apart.
What it does establish is that structured data was not the constraint. This site was already server-rendered, already carried schema.org markup on every evaluation, already published an llms.txt stating what the corpus is, and already allowed every AI crawler in robots.txt. All of that was true on the day this run returned zero. Being legible to a model and being retrieved by one are different problems, and only the first is solved by markup.
What this is not
It is not a ranking of AI assistants. One model answered here — claude-opus-5 — because it is the only one we hold an API key for. The other 73 cells in the grid were never asked, and they are recorded as unasked rather than counted as misses. Reasons, in full:
- GEMINI_API_KEY not set — Gemini was not asked
- OPENAI_API_KEY not set — OpenAI was not asked
- PERPLEXITY_API_KEY not set — Perplexity was not asked
- Perplexity always searches; it has no parametric mode
- chat/completions does not browse; retrieval condition for this provider must be captured via --import-manual
- empty response — the call succeeded and returned no text, so there is nothing to score
It is not a stable rate. Model answers vary between runs. This is a single sample per cell on a single date, and it should be read as a floor on the problem rather than a measurement of its size. The prompt set is versioned so later runs are comparable to this one.
An API call with a search tool is not the consumer chat product. Different retrieval, different system prompt, possibly a different model. Answers captured by hand from a chat interface are scored by the same code and flagged as hand-captured; none are included above.
Run it against us
The runner, the prompt set and every raw answer are in the repository as a dated artefact, so this number can be checked rather than taken. If it improves, the improvement will be visible in the same file. If it does not, that will be visible too.