AI search and local visibility

Find out whether a business gets recommended by AI assistants and in local search, and do something about it.

When somebody asks an assistant "best plumber near me", one business gets named and the rest do not. This skill measures whether that business is yours, on seven surfaces, from a grid of real geographic points — and then works on the inputs that change the answer.

Prerequisite: the marketing-os foundation skill.

The seven surfaces

localfalcon_* tools take a platform, one per scan:

platformSurfaceKind
chatgptChatGPTAI answer
geminiGeminiAI answer
gaioGoogle AI OverviewsAI answer
aimodeGoogle AI ModeAI answer
grokGrokAI answer
googleGoogle Maps / local packclassic
appleApple Mapsclassic

The five AI surfaces are the point. They disagree with each other and with Google constantly: a business can sit third in the map pack and never be named by ChatGPT. One scan per platform — there is no "all platforms" call — so a business scanned only on google has no AI-search data whatsoever. Saying that out loud is usually the single most useful sentence in the conversation.

Read what already exists first

localfalcon_list_locations                 # saved locations + their place_id
localfalcon_list_reports                   # past scans: ARP, ATRP, SoLV
localfalcon_get_report  (reportKey)        # one scan's full grid

localfalcon_list_reports filters on place_id, keyword, platform and a date range — and its dates are MM/DD/YYYY, not ISO. That is the one argument shape in this pack that breaks the pattern.

Cover the platforms explicitly. List the reports per platform and say which of the seven have never been scanned.

The three metrics

MetricMeaning
ARP — Average Rank PositionMean rank across the grid points where the business appeared
ATRP — Average Total Rank PositionMean across all points, counting absences — the honest one
SoLV — Share of Local VoiceShare of grid points where the business appeared in the top 3

ATRP is the one to lead with. ARP flatters: it averages only the points where you already showed up, so a business visible at 2 points out of 49 can post a beautiful ARP. ATRP counts the 47 points where nobody saw it.

An unranked point comes back as the string "20+", which means "not in the top 20", not "rank 20". Never average it as 20 and never report it as a rank.

found_in (points found ÷ total points) is the plainest number to give a non-technical user: "you appear at 8 of 49 points on ChatGPT."

Read the grid, not just the average

localfalcon_get_report returns every data point with its own rank and the ranked competitors found there. The shape of the map is the finding:

  • Strong at the centre, gone at the edges — normal distance decay. The radius is bigger than the real service area.
  • Patchy with no pattern — the AI surface is unsure about the business. Usually an entity/citation problem, not a ranking one.
  • Absent on one platform, fine on others — that platform is reading a different source. Whoever is named there tells you which.
  • One competitor everywhere you are not — that is the account to study, and the report names them at every point.

Competitors are counted the way share of voice is meant: a rival named at many grid points is one the surface keeps recommending. A ChatGPT-only rival is a real thing and shows up as one.

Running a new scan

localfalcon_run_scan  (HIGH)
  place_id    from localfalcon_list_locations
  keyword     one search phrase, exactly as a customer would type it
  lat, lng    strings — the grid centre
  grid_size   odd, "3"–"21" as a string
  radius      0.1–100, in `measurement` units
  measurement "mi" | "km"
  platform    one of the seven
  ai_analysis optional

It spends the customer's Local Falcon credits, so it is high tier and does not run. It files an approval. Say that, and say how many scans you are proposing — one per keyword × platform × centre — because that is what the credits are counted in.

Design the scan before proposing it:

  • Grid size and radius should match the real service area. A 15×15 grid over 50 miles for a business that serves 5 miles produces mostly-empty maps and a large bill.
  • One keyword per scan. Pick the phrase a customer types, not the industry term: "emergency plumber" over "plumbing services".
  • Choose platforms deliberately. For a question about AI recommendation, chatgpt and gaio first — they are the two most people actually meet.
  • Re-scan on the same grid and radius. A trend against a different grid is not a trend.

Recurring tracking (schedules across keywords, centres and surfaces) is set up in Marketing OS itself, not over MCP. Point the user there rather than proposing a scan a week by hand.

What actually moves the numbers

Being named by an AI assistant is downstream of what exists about the business in text. Rank does not move because somebody wanted it to.

Say this plainly: none of the levers below is instant, and none of them is guaranteed. What this pack can do honestly is measure the before and the after on the same grid.

  1. Get the entity right. Name, address, phone, hours and categories identical everywhere. AI surfaces resolve an entity before they rank it, and a business with two spellings is two weak entities instead of one strong one. This is not an MCP job — it is a correction the user makes at the source.
  2. Answer the question in text. These surfaces quote pages that answer the query directly. create_marketing_asset_draft (blog_post) with the question as the title, the answer in the first paragraph, and the service area named in words. Pull the real phrasing from google_search_performance's top queries rather than inventing keywords.
  3. Publish the proof. search_knowledge for testimonials and case studies, then put them on the page. "Reviews say" is how several of these surfaces justify a recommendation.
  4. Be current. social_create_post on the connected accounts — a business with fresh, specific, location-mentioning posts is easier to name than one that went quiet.
  5. Study whoever is winning. They are in the grid report. Read what they say about themselves, then say what is true about your business in the same register.

Then re-scan the same grid and show ATRP and SoLV before and after.

Reporting

markdown
## AI search visibility — <location> · <keyword>

| Surface             | ATRP | SoLV | Found at | Scanned           |
| ------------------- | ---- | ---- | -------- | ----------------- |
| ChatGPT             | 14.2 | 6%   | 8 / 49   | <date>            |
| Google AI Overviews | 9.1  | 22%  | 27 / 49  | <date>            |
| Gemini              | —    | —    | —        | **never scanned** |
| Google Maps         | 4.8  | 41%  | 44 / 49  | <date>            |

**Where you are invisible**: <surface> — <found_in>, <who is named instead>
**Who keeps getting named**: <competitor> — <n> of <total> points, <surfaces>
**What would change it**: <the specific lever, and the honest timescale>

Show the never-scanned surfaces as rows. An empty row is the finding.

Do not

  • Report ARP as if it were rank. Lead with ATRP.
  • Treat "20+" as rank 20.
  • Compare to a national or industry average — there is no such benchmark here, and the comparison that matters is this grid's own competitors and this location's own history.
  • Promise a ranking outcome or a timescale you cannot source.
  • Run a scan without saying it spends credits and is waiting for approval.
  • Report a Google Maps result as an AI-search result. They are different surfaces and they disagree.

Something wrong or missing on this page? Tell us and we will fix it.