GEO & AI Search

DIY AI Brand Visibility Audit: 3 Free Methods With Live Data

Updated 5 min read Daniel Shashko
DIY AI Brand Visibility Audit: 3 Free Methods With Live Data
AI Summary
A DIY AI brand visibility audit checks whether ChatGPT, Gemini, and Perplexity mention your brand on buyer prompts, and it can be run free in an afternoon. Three methods: a 60-minute manual audit (10-20 constraint prompts, five scoring columns), the open-source GEO/AEO Tracker (152 GitHub stars, six engines, BYOK, self-hosted), and a programmatic pipeline on Bright Data's AI scrapers. A live June 2026 CRM-category audit found HubSpot at 100% visibility across both engines, Salesforce invisible on Perplexity for small-business prompts, and one Gmail constraint flipping the recommended roster to Streak, Copper, and Attio. Across 65 citations, techradar.com (7) and crm.org (5) shaped the answers: two listicle publishers effectively decide category recommendations. Loamly's 2,014-company benchmark shows 83.7% of brands sit at the branded-only baseline.

An AI brand visibility audit answers one question: when buyers ask ChatGPT, Gemini, or Perplexity for recommendations in your category, do you appear? You can run a credible audit for free in an afternoon. This guide shows three methods, from a manual spreadsheet to a live API run, with real June 2026 results included.

The stakes are not theoretical. Loamly’s benchmark of 2,014 companies found 83.7 percent sit at the visibility baseline on ChatGPT, meaning they get cited only when someone already asks about them by name. Generic category prompts, the ones that win new customers, belong to a small set of brands. The audit tells you which side of that line you are on, and our visibility tracking metrics guide explains what to measure once you know.

What we found auditing one category live

To make this concrete, we ran a real audit while writing this guide: three small-business CRM prompts, sent to ChatGPT and Perplexity through an API, on June 10, 2026. Mention rates out of three prompts per engine:

BrandChatGPTPerplexityTotal visibility
HubSpot3/33/3100%
Zoho2/32/367%
Pipedrive3/31/367%
Salesforce2/30/333%
Streak1/31/333%
Freshsales1/31/333%
Attio1/30/317%
Copper0/31/317%

Three findings worth the price of admission. HubSpot owns the category: 100 percent visibility on both engines. Salesforce, the biggest CRM on earth, was invisible on Perplexity for small-business prompts. And one constraint flips the roster: adding “that uses Gmail” surfaced Streak, Copper, and Attio while pushing Zoho out. Engines answer constraints, not categories, which is why prompt research comes before any audit.

The citations behind those answers matter just as much. Across 65 source citations in our six responses, techradar.com appeared 7 times and crm.org 5 times. Two listicle publishers shape who gets recommended for an entire category. That is your citation target list, and the mechanics match what we measured in our 42,971 citation study.

Method 1: The manual audit (free, 60 minutes)

  1. Write 10 to 20 decision prompts. Real buyer phrasing with constraints: budget, team size, industry, stack. Not “best CRM” but “best CRM for a 10 person startup that uses Gmail”.
  2. Run each prompt in ChatGPT, Gemini, and Perplexity. Use fresh chats, no memory, logged out where possible.
  3. Score five columns per response: brand mentioned (yes/no), position in the answer (first, middle, absent), sentiment, competitors named, and sources cited.
  4. Repeat monthly. One snapshot is a data point; the trend is the audit. Track share of voice against competitors, not just your own mentions.

The manual method works and costs nothing, but it does not scale past a handful of prompts, and answers are volatile enough that single runs mislead. That is why we built the next option.

Method 2: Our open-source GEO/AEO Tracker (free, self-hosted)

Full disclosure: this is our tool. We built the GEO/AEO Tracker because the paid trackers charge 200 to 500 dollars a month for what is, mechanically, prompt running and string matching. It is open source, currently at 152 stars and 43 forks on GitHub, and it runs the entire audit loop locally: bring your own API keys, and your data never leaves your machine.

It tracks six models simultaneously (ChatGPT, Perplexity, Copilot, Gemini, Google AI Mode, Grok), injects your brand into reusable prompt templates, and batch-runs the whole library in parallel:

Every run lands in an analytics view with average visibility, sentiment split, per-model trend lines, and CSV export. There is also a persona fan-out generator (the CMO asks differently than the founder), a niche explorer for prompt discovery, and a citation opportunities tab that surfaces the domains engines cite where you are absent:

Try the read-only live demo with preloaded data, or clone the repo and run npm install && npm run dev. If you want the full tooling landscape first, our AI search competitive intelligence tools roundup covers the paid options too.

Method 3: Programmatic audits with Bright Data’s AI scrapers

For scale, audit through an API. Bright Data’s AI scrapers return structured responses (answer text, citations, related prompts) from ChatGPT, Perplexity, Gemini, Grok, and Google AI Mode. This is the same pipeline we used for our 42,971 citation study, and it is how the live table above was produced. The whole pattern is one trigger call and one polling loop:

import requests, time

API = "https://api.brightdata.com/datasets/v3"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
DATASETS = {
    "chatgpt": "gd_m7aof0k82r803d5bjm",
    "perplexity": "gd_m7dhdot1vw9a7gc1n",
}
prompts = [
    "What is the best CRM for a small business?",
    "Best CRM for a 10 person startup that uses Gmail",
    "Which CRM should a small ecommerce business choose?",
]

for platform, dataset_id in DATASETS.items():
    payload = [{"url": "https://chatgpt.com", "prompt": p, "country": "US"}
               for p in prompts]
    r = requests.post(f"{API}/trigger", headers=HEADERS,
                      params={"dataset_id": dataset_id}, json=payload)
    snapshot_id = r.json()["snapshot_id"]
    while True:
        time.sleep(20)
        s = requests.get(f"{API}/snapshot/{snapshot_id}",
                         headers=HEADERS, params={"format": "json"})
        if s.status_code == 200 and isinstance(s.json(), list):
            break
    for rec in s.json():
        print(platform, rec["prompt"], rec["answer_text"][:200])

Each record comes back with the full answer text plus a citations array, so you get the mention audit and the citation source analysis from one run. Our six-response audit returned in about four minutes. From there it is a regex over answer_text for your brand and competitors, and a counter over citation domains.

What to do with the results

  • Invisible on generic prompts? Start with brand entity recognition and the 50-point GEO audit checklist. Engines cannot recommend an entity they cannot resolve.
  • Visible on one engine, absent on another? Normal, and actionable: each engine has its own retrieval pipeline and source preferences. Salesforce’s Perplexity gap above is a textbook example.
  • Cited domains list in hand? Pitch the listicle publishers that engines already trust, and seed the forums they pull from, starting with Reddit.
  • Close the loop in analytics. Watch citation velocity, wire up GA4 attribution, and put the results on the free Looker Studio AI traffic dashboard we built earlier in this series.

An afternoon of auditing replaces months of guessing. Pick the method that matches your scale, run it monthly, and if you would rather have the audit, the fixes, and the tracking handled end to end, that is exactly the GEO discipline we run for clients.

When manual checks get tedious, an automated GEO tool runs them on a schedule.