We Asked ChatGPT for the Best Roofer in San Antonio. It Read the Lists.

We asked ChatGPT four times who the best roofer in San Antonio is. It gave four different lists, cited 12 different websites, and named one company every time. Not one of the 19 citations in those answers pointed to a roofer's own website.
That last number is the story. When a homeowner asks a chatbot for a contractor, the chatbot does not visit contractors. It visits the sites that rank them.
How we asked, and why six answers prove little
Every question went through OpenAI's API to gpt-5-mini, with web search on and the user location set to San Antonio, Texas. That is the same setup behind our free AI visibility check. We asked about roofers three times on October 7, 2026, then on October 13 asked for the best roofer, plumber and AC repair company in San Antonio.
Two caveats. API answers can differ a little from what the ChatGPT app shows a signed-in person. And six runs is a sample, not a study. We counted what came back and stopped there.
Businesses appear below exactly as ChatGPT named them. Being named says nothing about anyone's work. It says what a machine found that morning.
Six runs, 32 citations, one table
| Date | Question | Businesses named | Source domains cited |
|---|---|---|---|
| Oct 7 | Best roofer | 3 | sanantoniotoprated.com, bestroofersinsanantonio.com, theroofingbrief.com |
| Oct 7 | Best roofer | 7 | serviceagent.ai, bestinhood.com, roofers.contractorsestimates.com, theroofingbrief.com, bbb.org |
| Oct 7 | Best roofer | 9 | serviceagent.ai, bestinhood.com, theroofingbrief.com, angi.com, homeversa.com, documents.gaf.com, bbb.org |
| Oct 13 | Best roofer | 4 | ratingsnearme.com, roofers.contractorsestimates.com, angi.com, nationalroofingdirectory.com |
| Oct 13 | Best plumber | 4 | rotorooter.com, files.ecatholic.com, bestinhood.com, homeadvisor.com, angi.com, mysanantonio.com, rrc.texas.gov, fastplumbernearme.com |
| Oct 13 | Best AC repair company | 5 | a press release PDF on rackcdn.com, mydavco.com, angi.com, carnesandsons.com, bestinhood.com |
That is 32 citations from 21 domains. Sorted by what each site is:
- Ranked "best of" lists and rating sites: 12 citations, 7 domains, including a local newspaper's best-of page and a roofing trade site with city rankings.
- Directories, marketplaces and the BBB: 10 citations, 5 domains.
- The named businesses' own websites: 3 citations (Roto-Rooter's San Antonio page, Davco, Carnes & Sons), all in the plumbing and AC answers.
- Other documents: 4 citations: a business directory PDF on a church website service, a press release, a Texas state agency PDF and a document from shingle maker GAF.
- Unclear: 3 citations from a software company for home service firms and a domain that now redirects to an unrelated site.
Twenty-two of 32 citations went to lists, rating sites and directories. For roofers, own-site citations were zero out of 19.
The pages ChatGPT actually reads
Most of the lists explain their method, and the explanations are worth reading. Ratings Near Me ranks 20 San Antonio roofers by a score it says weighs star rating at 35% and review volume at 30% (as of October 2026). Best in Hood says it scores mainly on current Google rating and review volume. San Antonio Top Rated says it draws on public Google ratings and business details. The Contractors Estimates page lists 534 San Antonio roofers with Google and Yelp ratings.
So there is a chain. Customers leave Google reviews. List sites turn reviews into a score. ChatGPT reads the lists. The October 13 roofer answer even printed a Google review count beside its first name, and the link for that number went to a ratings site, not to Google.
Then the engine points readers back down the chain. The roofer answer told people to check Google, the BBB and Angi. The machine reads the directories, then recommends the directories.
Our sample ran against a bigger one. According to a BrightLocal study of 800 local business searches in ChatGPT (November 2024), 58% of sources were business websites. Ours went 3 of 32. Our questions all asked for "the best," which invites a ranking, so treat the gap as a reason to test your own customers' questions rather than a trend. Reddit and Yelp were not cited once, worth noting if you have read why Reddit is the new Yelp.
The names held still while the sources moved
Across four roofer runs, no cited domain appeared in all four. The first October 7 run and the October 13 run shared no source at all. The trade site theroofingbrief.com appeared in all three October 7 runs, then vanished.
The names were steadier. Rhino Roofers was named in all four answers. Presidio Roofing Company of San Antonio was named in all three October 7 runs and not on October 13. Ideal Precision Roofing, Twin Hammers and Kidd Roofing appeared twice each. In total the four answers named 13 or 14 roofing companies, depending on whether you count two names the engine once paired in a single entry and later listed apart.
Our reading, labeled as one: a company that sits on many lists survives a change of sources, because whatever pages get fetched, it is on those too. A company on one list appears when that list is fetched and vanishes when it is not. One listing is a lottery ticket. Most of them is a habit.
It also means one check tells you little. A roofer who asked on October 13 saw four names. Ten others had been named six days earlier. Voice assistants drift the same way, as we found when Siri, Alexa and Google disagreed on the best plumber.
The to-do list hiding in the citations
- Find your lists. Ask your customers' question several times over several days and open every cited link. Write down which sites recur for your trade in your city. Our pages on AI visibility for roofers, plumbers and HVAC companies go deeper by trade.
- Feed the scores. Most of these lists score on Google rating and review volume. Ask every customer for a review. Google's policy forbids review incentives and asking only happy customers, so do neither. A Google map pack audit shows where your profile stands.
- Claim the directories that keep getting cited. Angi appeared in four of six runs, the BBB in two. The BBB letter grade comes from complaint history, time in business, licensing and similar factors, not customer reviews.
- Make every listing match. The lists copy public business details. If your name, phone or address differs from site to site, each list copies a different version.
- Keep your own site plain. Three businesses were cited from their own pages. Say what you do, where and for whom, in text a crawler can read. Our guide to ChatGPT visibility covers how it finds sources.
Some of these lists sell featured placement and say payment does not change their scores. We have no data showing a paid spot changes an AI answer. If a competitor keeps getting named and you do not, see when ChatGPT recommends a competitor.
Ask it about your own trade this week
Our free AI visibility check puts your customers' question to ChatGPT and other AI engines, live, and shows each answer, whether you were named and who was named instead. You verify your email once. Run it on different days, because our six runs could not agree on a source.
For someone to do the reading for you, start with a free GEO audit. GEO is part of DataCram's monthly SEO programs, from $625 a month, and most local businesses land between $625 and $2,250, per our SEO pricing page. Nobody, including us, can promise a mention. Call (210) 346-0848 to talk it through.
Frequently asked questions
Why didn't ChatGPT cite roofers' own websites?
We can say what happened, not why. In four roofer runs, all 19 citations went to rating sites, directories, a trade site and similar pages. A question asking for "the best" seems to pull ranked lists, which already summarize many roofers at once. Three plumbing and AC businesses were cited from their own sites, so a business website can still be a source.
Will the ChatGPT app give the same answer as the API?
Not always. We used OpenAI's API with web search on and the location set to San Antonio, the same setup as our free check. The app can use a different model, the person's memory and settings, and a different moment. Expect the same kind of answer from the same kind of sources, not identical names in identical order.
How many directories does a contractor need to be on?
There is no magic number. Start with the ones that get cited for your trade in your city, which you find by asking several times and opening the links. In our runs that meant Angi, the BBB, a few trade directories and several ranked lists. Claim each one and make it match your Google Business Profile exactly.
Should I pay for a featured spot on a "best of" list?
That is your call. Several cited lists sell featured placement, and their pages say payment does not change the underlying score. We have no evidence either way that a paid spot changes an AI answer. Reviews, accurate listings and a clear website help in ordinary search too, which makes them the safer first spend.
How often should I check what ChatGPT says about my business?
More than once, because sources change from run to run. In our sample the first and last roofer answers shared no source at all. Checking monthly with the same questions shows the pattern better than any single answer. DataCram built AICiteBeam to track names and cited sources over time for that reason.




