AI Search Tool Rank
All posts
By AI Search Tool Rank Teamhow-tochatgptcity-level trackinglocal ai rank tracking

How to track ChatGPT recommendations by city

A step-by-step setup for measuring whether ChatGPT, Gemini and Perplexity recommend your business in each city you serve, without averaging markets together or burning your budget on noise.

Ask ChatGPT for "the best family law firm" with a Seattle location and you'll get one list. Do it as a user in Tacoma and the list changes. Most businesses only check the version they see on their own laptop. That tells you about one city, once, on one day.

Tracking by city means asking the same question, worded the same way, from each market you care about, on a schedule. Here's how to set it up so the numbers are worth reading.

Step 1: decide what "city" means for your business

Write down two lists. The first is cities where you have a physical location. The second is cities you sell into without an address, which is common for law firms, agencies, home services and B2B. Tools built on business listings only cover the first list. If the second list matters, you need a tool where the city is a setting you choose, not an address you own.

Keep the first round short. Three to five cities is enough to learn whether answers differ at all in your category. In some categories they barely move. You won't know which kind yours is until you've compared a few cities side by side.

Step 2: write prompts that would actually be typed

Don't put your brand in the discovery prompts. "Best divorce lawyer for high-asset cases" tests whether AI recommends you. "Is Smith Family Law good" tests whether AI knows you. Track both, but count them separately.

Two habits help. Keep the city out of the prompt text when the tool sets location for you, so you're testing the location signal and not your phrasing. And add one "near me" variant per topic, because that wording carries no place name and depends entirely on location.

Ten to twenty prompts per city is a sensible start. More than that and you'll stop reading them.

Step 3: set the location in the tool, not by hand

Typing "in Seattle" into ChatGPT is not the same as asking as a Seattle user. Use a tracker that sets the location for the run.

In Promptwatch, the location sits on a monitor: country, optional state, optional city, language and persona. Build one monitor for Seattle with your prompts, then duplicate it for Tacoma and Spokane. Every prompt keeps its wording, and only the city changes. That's the difference between a comparison and two unrelated lists. Monitors run daily across ChatGPT, Gemini, Claude, Perplexity, Grok, Copilot, Google AI Overviews, AI Mode and more.

City and state targeting are included from the Business plan ($579/mo) and on every agency plan from Kick-off ($199/mo). Essential and Professional track by country only, so check your tier before you build city monitors.

Other options set location differently. AIrketing takes a city on each prompt and runs weekly. Local Falcon samples a grid of points around one address, which is finer than a city. BrightLocal anchors up to 20 prompts to each business location.

Step 4: let it run before you react

AI answers are noisy. A single check tells you very little. Give each city two weeks of daily data before you draw conclusions, then read the trend, not the last data point. Promptwatch's prompt trends show what changed between checks, such as a competitor entering the answer or a source dropping out. That's usually more useful than the score itself.

Step 5: read each city on its own line

Never average cities into one number. A firm can be the top recommendation in Seattle and absent in Tacoma, and the average will call that "moderate visibility," which describes neither city. Report one row per city per engine.

For each weak city, ask three questions in order:

  1. Which sources did the answer cite? Citation analytics show the pages and domains, including Reddit threads and YouTube videos. In local answers, check first for regional directories and local news sites.
  2. Did AI crawlers reach your page for that city? Agent Analytics logs ChatGPTBot, PerplexityBot, ClaudeBot and others, with errors. A location page that returns errors to crawlers can't be cited.
  3. When AI did send visitors, did they convert? Visitor analytics connects AI-referred traffic to conversions and shows where visitors came from.

Step 6: fix the cause, then measure again

The fix depends on which question failed. Missing from the cited sources: get listed or mentioned there. Not crawled: fix access or errors on the page. Crawled and cited but no conversions: the page itself needs work.

If the gap is that you have no useful page for that city, Promptwatch's Content Agent (Business plan and up) can draft one from the prompts and competitor data, hold it in a review inbox and publish to WordPress, Webflow or Framer. Only publish city pages with real, local facts in them. A page about a city you don't serve is a page a reader dismisses.

Then let the monitor run another two weeks and compare.

The short version

Pick a few cities. Write prompts people would type. Set location in the tool. Wait for a trend. Read cities separately, and trace each weak one to sources, crawling or conversion. The tool we'd use for the whole loop is Promptwatch, because it's the one that covers the "why" questions in step 5, not just the score.