AI Visibility Tracker (GEO/AEO): ChatGPT, Perplexity & Claude
Pricing
from $30.00 / 1,000 ai answer checkeds
AI Visibility Tracker (GEO/AEO): ChatGPT, Perplexity & Claude
AI visibility and rank tracker for GEO/AEO: see how often ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews and AI Mode recommend your brand vs competitors. Real app answers with sources: share of voice, list rank, citations and citation gaps. Pay per check, failed checks free.
AI Visibility Tracker (GEO/AEO): Share of Voice in ChatGPT, Perplexity, Claude & Google AI
An AI visibility tracker for GEO (generative engine optimization) and AEO. See your brand visibility in ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews and AI Mode, next to your competitors. ChatGPT and Gemini answers are captured from the real apps, as your buyers see them, with their sources, not guessed from an API model, and Google AI Overviews and AI Mode come from live Google results. Each run gives you your AI share of voice, list rank and AI citations per prompt, so you can use it as a ChatGPT rank tracker, a Google AI Overviews tracker or for ongoing LLM brand monitoring.
- No API keys needed. Enter your brand, competitors and prompts, and run.
- Pay per completed check. Failed checks are free. No subscription.
- Every engine in one run. ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews and AI Mode.
- Try it on the Apify Free plan. Free-plan runs are limited to 10 prompts and 1 run per prompt, and Claude Premium runs as Claude Standard. These limits are set by the developer of this Actor, not by Apify; any paid Apify plan removes them.
Who uses it
- SEO and GEO agencies: audit a client's AI visibility against its competitors before a pitch, then track it every week.
- SaaS and e-commerce marketing teams: find the buyer questions where AI assistants recommend competitors instead of you (lost prompts).
- PR and content teams: get the list of sites the AI engines cite when you are not mentioned (citation gaps), your best outreach targets.
Example report
Each run writes a readable summary to the key-value store (REPORT, Markdown) and the same data as JSON (OUTPUT). Example (illustrative numbers):
# AI Share of Voice: HubSpotChecks: 30 · Failed: 0 · Engine showed no AI answer: 2## All engines| Brand | Share of voice | Mentioned in | Avg. list rank | Cited in ||---|---|---|---|---|| **HubSpot** | 34% | 79% | 2.1 | 21% || Salesforce | 29% | 68% | 1.6 | 29% || Pipedrive | 22% | 50% | 3.4 | 14% || Zoho CRM | 15% | 36% | 4.2 | 7% |## Citation gaps (sites AI cites when you are NOT mentioned)- g2.com (4 answers)- reddit.com (3 answers)## Lost prompts (competitors mentioned, you are not)- [chatgpt] "Best CRM for real estate teams" → Salesforce, Pipedrive
What you get
For every prompt × engine you get the full answer plus:
- Brand mentioned? and list rank (e.g. #2 in a numbered list)
- Mention order vs competitors (who is named first)
- Brand cited? whether the engine linked to your domain
- Competitors mentioned and cited domains
And a summary report, overall and per engine:
- Share of voice per brand
- Mention rate, average list rank, citation rate
- Citation gaps: sites the AI cites in answers where you are not mentioned (your best PR, content and outreach targets)
- Lost prompts: questions where competitors are recommended and you are not
Engines
| Engine | What it measures |
|---|---|
| ChatGPT | Answers as users see them in the ChatGPT app, with web sources |
| Gemini | Answers as users see them in the Gemini app |
| Perplexity | Perplexity answers with their sources |
| Claude | Claude with web search. Standard = Claude Sonnet 5 (the default model for Free and Pro claude.ai users). Premium = Claude Opus 5.5, Anthropic's most capable model, set to search the web and cite its sources |
| Google AI Overviews | The AI Overview block on Google Search and its references |
| Google AI Mode | Google's AI Mode answer and its references |
How to use
- Enter your brand and domain (e.g.
HubSpot,hubspot.com). - Add competitors, one per line:
Salesforce (salesforce.com). Optional aliases:Zoho CRM (zoho.com) | Zoho. Only names and aliases count as mentions (the domain is used for citations), so add the short names AI engines actually use. - Add prompts: the questions your buyers ask AI assistants.
- Pick engines and a country. Run.
Claude checks are processed as a batch, which usually adds a few minutes to runs that include Claude, and up to about 15 minutes when Anthropic's batch queue is busy. A run of 50 prompts × 4 engines including Claude took about 13 minutes in our tests. AI answers vary between runs: use Runs per prompt = 2-3 for more stable numbers. Want to preview the output first? Turn on Dry run to get free demo data.
Pricing
Pay per event, only for completed checks. Failed checks are free.
Price per check by Apify plan:
| Event | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Answer checked (ChatGPT, Gemini, Perplexity, Google AI Overviews, AI Mode) | $0.06 | $0.04 | $0.035 | $0.03 |
| Claude answer checked, Standard (Sonnet 5) | $0.20 | $0.10 | $0.09 | $0.08 |
| Claude answer checked, Premium (Opus 5.5) | not available* | $0.15 | $0.14 | $0.13 |
* On the Apify Free plan, runs are limited to 10 prompts, 1 run per prompt, and Claude Premium runs as Claude Standard.
| Example run (Starter plan) | Checks | Cost |
|---|---|---|
| 10 prompts × 3 engines | 30 | $1.20 |
| 25 prompts × 4 engines | 100 | $4.00 |
| 50 prompts × 6 engines (incl. Claude Standard) | 300 | $15.00 |
A "no AI Overview shown" result is a real finding (Google chose not to show one) and counts as a check; an empty or broken answer from a chat engine is a failed check and is free. Dry runs return sample data and are free.
Set Max cost per run in the run options: the Actor plans the run to stay within it and skips the last prompts if needed.
Pay per check vs monthly AI visibility subscriptions
| Pricing model | Cost of a one-off audit (10 prompts × 3 engines) | |
|---|---|---|
| This Actor | Pay per check | $1.20 (Starter) · $1.80 (Free) |
| Otterly.ai | Subscription from $29/month | $29+ |
| Peec AI | Subscription from ~€85/month | ~€85+ |
| Semrush AI visibility | Subscription from ~$99/month | ~$99+ |
| Profound | Subscription from $399/month | $399+ |
Subscription prices as listed by each vendor in September 2026. Those tools include dashboards and alerts; this Actor gives you the raw answers and a report you can schedule and send anywhere.
Run it weekly
-
Schedule it: save your input as a Task and run it every week with Apify Schedules. Each run keeps its own dataset, so you can track share of voice over time.
-
Send results anywhere: Google Sheets, Slack, Make, n8n or Zapier through Apify integrations, or the Apify API.
-
Use it from AI agents (Claude, Cursor, VS Code or any MCP client) through the Apify MCP server. Add this server to your client and ask, for example, "check how ChatGPT and Perplexity rank my brand against these three competitors":
{ "mcpServers": { "ai-visibility": { "url": "https://mcp.apify.com?tools=touchrock/ai-share-of-voice" } } }For quick answers inside an agent, pick ChatGPT, Perplexity and Google AI Overviews; Claude runs as a batch and takes minutes. The agent reads the results from the run's
OUTPUTrecord or its dataset.
Output example
One dataset item per prompt × engine × run:
{"prompt": "What is the best CRM for small marketing agencies?","engine": "chatgpt","status": "ok","brandMentioned": true,"brandListRank": 2,"brandCited": false,"competitorsMentioned": ["Pipedrive", "Salesforce"],"citedDomains": ["g2.com", "reddit.com", "pipedrive.com"]}
FAQ
Is "no AI answer" a failure? No. Google does not show an AI Overview for every query; those checks are reported as no_ai_answer and excluded from rates.
How is share of voice calculated? For each answer we count which tracked brands are mentioned. Share of voice = a brand's mentions ÷ all tracked-brand mentions.
Can I track several markets? Yes, set the country (e.g. GB, DE) and language per run.
What do the error codes mean? Failed checks are free and show one of these in the error field: engine_busy (the engine was overloaded or rate-limited; try again later), engine_timeout (it did not answer in time), engine_unavailable (the engine is temporarily unavailable), engine_refused (the AI declined to answer), empty_answer, incomplete_answer or answer_cut_off_max_tokens (the engine returned no usable answer), empty_ai_overview or no_results_page (Google's results did not load), and engine_error (anything else).