AI Search Visibility Tracker: ChatGPT & Perplexity (GEO)
Pricing
Pay per event
AI Search Visibility Tracker: ChatGPT & Perplexity (GEO)
ChatGPT brand monitoring and Perplexity rank tracker: see how often AI search mentions, ranks and cites your brand vs competitors for buyer prompts. LLM share of voice, cited domains, run-over-run deltas. Official APIs, Arabic-ready.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Temkin Mengistu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Share
AI Search Visibility Tracker: ChatGPT & Perplexity Brand Share of Voice (GEO)
Find out whether AI assistants recommend your brand or your competitors. Enter your brand, your competitors and the questions your buyers ask. The Actor asks ChatGPT (included) and optionally Perplexity (with your own Perplexity API key, for now) each question, with live web search turned on, and reports for every answer:
- whether your brand was mentioned
- its rank among the tracked brands
- which competitors were mentioned, and in what order
- which websites the AI cited
- whether your own domain was cited
It then calculates LLM share of voice per engine and overall, and can compare the results with your previous run.
Built for generative engine optimization (GEO / AEO): SEO teams, agencies and brand managers who need ChatGPT brand monitoring, a Perplexity rank tracker and LLM share of voice reporting, tracking AI search visibility the way they track Google rankings. It uses the providers' official APIs, not browser scraping, and supports Arabic and other non-English prompts.
What you get
| Output | Where |
|---|---|
One row per prompt × engine: brandMentioned, brandRank, competitorsMentioned, citations, citedDomains, brandCited, answer text | Dataset (Overview and "Answers & citations" views) |
| Share of voice, mention rate, average rank, own-domain citation rate, top cited domains (per engine and overall), changes vs the previous run | Last dataset row (type: "summary") and the key-value record SUMMARY |
| Client-ready HTML report (light/dark, RTL-friendly) | Key-value record REPORT |
How it works
| Engine | How it is queried |
|---|---|
| ChatGPT | OpenAI Responses API with the built-in web_search tool (default model gpt-5-mini) |
| Perplexity | Perplexity Agent API, perplexity/sonar with web search — currently requires your own Perplexity API key |
Mention detection:
- Ignores case and accents. "Nestle" matches "Nestlé".
- Respects word boundaries. "Apple" does not match "Pineapple".
- Counts aliases and domains. "hubspot.com" counts as a HubSpot mention.
- Is Arabic-aware. It ignores harakat and tatweel, unifies أ/إ/آ/ا, ة/ه and ى/ي, and handles attached prefixes such as و، ب، ل، ال. For example "وبنون" matches "نون", but "كانون" does not.
Rank is the order in which tracked brands are first mentioned in the answer (1 = mentioned first). Share of voice is your brand's mentions divided by the mentions of all tracked brands.
Input example
{"brand": "HubSpot","brandAliases": ["HubSpot CRM"],"brandDomain": "hubspot.com","competitors": ["Salesforce | salesforce.com","Zoho | zoho.com | Zoho CRM","Pipedrive | pipedrive.com"],"prompts": ["What is the best CRM for a small business?","Which CRM is easiest to set up for a startup?","ما هو أفضل نظام CRM للشركات الصغيرة في الإمارات؟"],"engines": ["chatgpt"],"country": "AE","runsPerPrompt": 1}
Optional inputs:
previousDatasetId: adds change fields versus an earlier run.language: asks the engines to answer in a given language.openaiApiKey/perplexityApiKey: bring your own keys (cheaper, see pricing).maxAnswerChars/includeAnswer: control how much answer text is stored.
Output example (one check)
{"type": "check","engine": "chatgpt","model": "gpt-5-mini-2025-08-07","prompt": "What is the best CRM for a small business?","status": "ok","brandMentioned": true,"brandRank": 1,"competitorsMentioned": [{ "name": "Zoho", "rank": 2, "mentionCount": 1 },{ "name": "Pipedrive", "rank": 3, "mentionCount": 1 },{ "name": "Salesforce", "rank": 4, "mentionCount": 1 }],"brandCited": true,"citations": [{ "url": "https://www.forbes.com/advisor/business/software/best-crm-small-business/", "domain": "forbes.com", "title": "Best CRM For Small Business 2026 – Forbes Advisor" },{ "url": "https://www.hubspot.com/products/crm", "domain": "hubspot.com", "title": "Free CRM Software | HubSpot" }],"citedDomains": ["forbes.com", "hubspot.com"],"answer": "Top picks for small businesses in 2026: 1. HubSpot CRM …","previousBrandMentioned": false,"chargedEvent": "check","timestamp": "2026-09-27T10:00:00.000Z"}
Summary row (shortened):
{"type": "summary","brand": "HubSpot","overall": {"checks": 100,"brandMentionRate": 0.62,"brandShareOfVoice": 0.31,"brandAvgRank": 1.8,"brandCitedRate": 0.24,"entities": [{ "name": "HubSpot", "mentionRate": 0.62, "shareOfVoice": 0.31, "avgRank": 1.8 }, "…"],"topCitedDomains": [{ "domain": "g2.com", "checks": 41, "rate": 0.41 }, "…"]},"byEngine": { "chatgpt": { "…": "…" }, "perplexity": { "…": "…" } },"delta": { "overall": { "brandMentionRate": 0.08, "brandShareOfVoice": 0.03 } },"totals": { "plannedChecks": 100, "okChecks": 100, "failedChecks": 0, "skippedForBudget": 0 }}
The numbers above are illustrative. They are not real measurements.
Pricing (pay per event)
| Event | Price | When |
|---|---|---|
| AI answer check | $0.09 | One prompt answered by ChatGPT using the Actor's API key |
| AI answer check, your own key | $0.02 | One prompt answered by one engine using your API key. You pay the AI provider directly. |
- Failed checks are not charged.
- There is no report fee: the summary and HTML report are included.
- The Actor respects your Maximum cost per run setting. It stops starting new checks when the next one would exceed the limit, then finishes normally with a summary of what was checked.
Example: 50 prompts × ChatGPT = 50 checks = $4.50. Adding Perplexity with your own key: +50 checks × $0.02 = $1.00, plus what Perplexity bills you.
Scheduling weekly tracking
- Run the Actor once and note the run's dataset ID.
- Create a Schedule (for example weekly) with the same input, and put the previous dataset ID in
previousDatasetId. - Each run's summary and rows then show changes (
delta,previousBrandMentioned,previousBrandRank). Use the Apify API or an integration to updatepreviousDatasetIdautomatically.
FAQ
Are these the same answers I see in the ChatGPT / Perplexity apps? Not exactly. The Actor uses the official developer APIs with web search. Consumer apps can use different models, personalization, memory, location and system prompts. Treat the results as a consistent, repeatable sample of what the engines say, not a screenshot of one person's app.
Why do results change between runs?
AI answers are non-deterministic, and search results change daily. Use runsPerPrompt (2–3) and track trends over several weeks rather than single answers.
Does it cover Google Gemini or AI Overviews? Not yet. Google's API terms restrict how search-grounded Gemini answers may be analyzed or resold, and there is no official API for AI Overviews, so this Actor covers ChatGPT and Perplexity only.
Does it work in Arabic? Yes. Prompts can be in any language. Brand matching normalizes Arabic spelling variants and attached prefixes, and the HTML report renders right-to-left text correctly. Add the Arabic spelling of your brand as an alias.
How is a "mention" different from a "citation"?
A mention is your brand name, an alias or your domain appearing in the answer text. A citation is a source URL the engine attached to the answer. brandCited is true when one of the cited URLs is on your domain or a subdomain of it.
Can a common word as a brand name cause false positives? Yes. A brand called "Notion" or "Apple" will also match the ordinary word, because matching is text-based. Use specific aliases where possible.
Is my API key safe? Key inputs are Apify secret inputs, stored encrypted. They are never written to the dataset, logs or report.
Limitations
- API answers can differ from consumer app answers, and results vary from run to run.
- Mention detection is text matching, not semantic understanding: it cannot tell "Apple" the company from "apple" the fruit, and it does not score sentiment.
- Rank is based on the order of mention, not on an explicit "top 10" list.
- Google Gemini, AI Overviews and AI Mode are not covered (see FAQ).
- Each run is limited to 200 prompts and 50 competitors.
Support
Open an issue on the Actor's Issues tab with the run ID. Please do not paste API keys.