2 GPT agents + 2 Claude agents + Wave Maps reveal how AI systems actually try to answer one human request — "find all the roofing companies in my town" — town-by-town and statewide. Every source, every why, every inclusion trail preserved.
5 independent discovery surfaces. 122 towns. 1 simple human request per location.
384 companies appeared in 2+ sources. 61 in 3+. 9 in 4+. 1 in all 5.
2237 RED · 859 AMBER · 17 GREEN. 964 unscored. Average score 31.1/100.
Wave Maps surfaced 3365 roofers Google can show today. LLM agents only converged on 1167 of those. That gap is the AI-invisibility gap.
A one-prompt-only experiment. Same human request every time. Forensic notebook mandatory.
"Find all the roofing companies in my town." Issued to every TX town for both GPT and Claude. Each town treated as a brand-new first search — no memory carry-forward.
"Find all the roofing companies in my state." Issued once to each engine. Maximum-effort statewide discovery under the same simple prompt.
Every town must restart the mental frame from scratch. Companies may reappear across towns only if independently rediscovered.
Each agent kept a chronological notebook — interpretation, first move, sources opened, qualifying signals, why each company qualified, when to stop. The diary is a primary deliverable, not background thought.
Each surface produced an independent diary + dataset. Cross-source confirmation is one of the most important signals.
197 companies surfaced. OpenAI gpt-5.5 + web_search. One fresh-eyes call per TX town, no memory carry.
80 companies surfaced. One statewide call. Tested how the same engine behaves when asked at scale.
703 companies surfaced. Anthropic Claude Opus 4.7 + WebSearch. Town batches, fresh-eyes reset between every town.
187 companies surfaced. One statewide forensic discovery run.
3365 businesses surfaced. Google Places textSearch · 5 query forms × every town. The reality layer.
Every town accounted for. Skips, failures, partials all surfaced honestly.
122 towns
8 / 122
122 / 122 (8 / 8 batches)
3756
GPT ✓ · Claude ✓
LLM source paths and Maps surfacing paths shown separately — they're different layers and must not be blended.
Patterns from the agents' inclusion-reason sentences — the explicit "I included this company because..." they were required to write.
Dominant pattern. The agent guessed or landed on the business's own domain, saw service-area copy + "Texas" + town name, and included it. Brittle — only works for guessable domains.
Web result snippet contained the town name and "roofing" — agent included on snippet alone without opening the site.
Yelp / Angi / BBB list page existed for the town · agent harvested company names from it.
GAF Master Elite, Owens Corning Platinum directory entries — strong qualifying signal because the trade body vetted the business.
The same company on multiple types of sources (own site + directory + chamber) raised the agent's confidence and triggered inclusion.
Local chamber-of-commerce roster pages — strong locality signal especially in smaller towns.
The single most actionable view in this report. Every host the LLMs cited, ranked by how many forensic records it appeared in. These are the directory pages WR customers need to be listed on, the manufacturer pages they need to be certified through, and the chambers they need to join.
Click any bucket to filter the master table below to just those records.
Filter by HOW found, AI-Vis color, town, or text. Click any row to expand FULL forensic — every agent that found it, every source URL, every inclusion reason.
| Business | City | Sources | AI-Vis | Contact |
|---|
Every town's GPT + Claude notebook in one place. Click a town to expand both agents' reasoning side-by-side.
Full statewide forensic notebooks for both GPT and Claude.
Guessable domain (companyname-roofing.com), service-area copy mentioning every TX town served, contact + phone above the fold, schema.org structured data, llms.txt directive, sitemap.xml.
The 433+ Maps-only roofers are statistical ghosts to ChatGPT/Claude. They need to be planted in Yelp, BBB, Angi, GAF Master Elite, local chambers AND in WR-built city/vertical .xyz directories.
Hundreds of legitimate small/medium roofers with phone + address + reviews. LLMs ignore them because their domain isn't AI-bot-allowlisted or doesn't exist.
Larger statewide brands cited in directory roundups and manufacturer pages — LLMs amplify the already-visible. Smaller locals get nothing.
Use Section 7's source-URL ranking as the literal placement target list. Get WR customers ON those domains. That's how you flip the AI surface.
WR doesn't compete for AI ranking — WR creates the AI-indexable record that didn't exist before. Cheap moat: $1/year .xyz slugs × hundreds of city-verticals = $2,500/yr to own the AEO index layer.
Master JSON and CSV exports.
Download tx_merged.json — full registry + all diaries
All 4,077 businesses · 3113 AI-Vis scans · every agent's diary · every source URL