AI Brand Monitor — Visibility Rank Tracker
Pricing
from $60.00 / 1,000 prompt engine checks
AI Brand Monitor — Visibility Rank Tracker
Track brand mentions, position, share of voice, citations, sentiment, competitors, and ranking changes across ChatGPT, Perplexity, Claude, and Gemini.
Pricing
from $60.00 / 1,000 prompt engine checks
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
AI Brand Monitor — AI Visibility Rank Tracker
Track how your brand ranks in answers from ChatGPT, Perplexity, Claude, and Gemini. This AI visibility rank tracker measures brand mentions, competitor position, share of voice, website citations, sentiment, and run-over-run changes for the prompts your customers ask.
Built for Generative Engine Optimization (GEO): the new discipline of getting your brand recommended by AI answer engines. Schedule it daily or weekly to build a visibility history and catch ranking drops before they cost you traffic.
What it does
For every prompt × engine combination, the actor returns a single clean row containing:
- mentioned — was your brand named in the answer?
- position — your rank by order of first appearance among all tracked brands (you + competitors)
- share_of_voice — your % of total tracked-brand mentions in the answer
- cited / brand_cited_url — was your domain referenced as a source?
- citations — the source URLs the answer relied on
- sentiment — positive / neutral / negative framing of your mention
- competitors_mentioned — which rivals showed up alongside you
- position_change / visibility_status — the delta versus the previous run (
new,gained,lost,improved,declined,unchanged,absent)
A run-level rollup (visibility score, attempted/successful/failed checks, average position, share of voice, gained/lost counts, per-engine breakdown) is saved to the key-value store under SUMMARY.
AI search ranking data returned
| Metric | Meaning |
|---|---|
mentioned and mention_count | Whether and how often the tracked brand appears |
position | First-appearance rank among the tracked brand and competitors |
share_of_voice | Brand share of all tracked-brand mentions in an answer |
cited and brand_cited_url | Whether the brand domain appears in the answer's sources |
sentiment | Positive, neutral, or negative framing when mentioned |
position_change | Movement compared with the previous matching check |
visibility_status | New, gained, lost, improved, declined, unchanged, or absent |
Export results, run via API, schedule and monitor runs, or integrate with other tools.
Why track AI visibility?
Buyers increasingly ask ChatGPT, Perplexity, Claude, and Gemini "what's the best tool for X?" instead of scrolling Google. If your brand isn't named — or is ranked below competitors — you lose the recommendation. Traditional SEO rank trackers don't see this. This actor does, across four engines, with trend history.
Input
| Field | Type | Description |
|---|---|---|
brandName (required) | string | The brand/product to track. |
brandDomain | string | Your domain (e.g., notion.so) for citation detection. |
industry | string | Used to auto-generate prompts when you don't supply your own. |
prompts | string[] | The exact questions to monitor. Falls back to auto-generated prompts from industry. |
platforms | string[] | Any of perplexity, chatgpt, claude, gemini. |
competitors | string[] | Competitor brands for position & share-of-voice. |
extractCitations | boolean | Extract source URLs and detect domain citations. |
analyzeSentiment | boolean | Classify the sentiment of each brand mention. |
trackingId | string | Stable ID used to compare history across runs (defaults to a slug of the brand). |
useWebSearch | boolean | Enable OpenRouter's web plugin for non-native-search models. |
webSearchResults | integer | Web results per query for the plugin (1–10). |
models | object | Optional per-platform OpenRouter model-slug overrides. |
maxPrompts | integer | Cap on prompts per run (cost control). |
Example input
{"brandName": "Notion","brandDomain": "notion.so","industry": "productivity software","prompts": ["What is the best note-taking app for teams?","Recommend an all-in-one workspace tool."],"platforms": ["perplexity", "chatgpt", "claude", "gemini"],"competitors": ["Evernote", "Obsidian", "Coda"],"extractCitations": true,"analyzeSentiment": true}
API key (required) — one key for all models
All engines run through OpenRouter, so you only need a single API key. Set it as an environment variable on the actor (Console → Settings → Environment variables):
OPENROUTER_API_KEY = sk-or-...
If the key is missing, every check is reported with an error and not charged.
| Platform | Default model | Web search |
|---|---|---|
| Perplexity | perplexity/sonar | native |
| ChatGPT | openai/gpt-4o-mini | OpenRouter web plugin |
| Claude | anthropic/claude-sonnet-4 | OpenRouter web plugin |
| Gemini | google/gemini-2.5-flash | OpenRouter web plugin |
Note: For non-Perplexity models, web grounding uses OpenRouter's web plugin (it adds live search results to any model) rather than each vendor's own search product — the right trade-off for one-key simplicity, and it still reflects current web data. You pay OpenRouter directly for model + web-plugin usage; the actor's PPE events cover the tracking/analysis layer. Override any model slug with the
modelsinput.
Output
Each row in the dataset:
{"brand": "Notion","brand_domain": "notion.so","engine": "perplexity","model_used": "sonar","prompt": "What is the best note-taking app for teams?","mentioned": true,"position": 1,"share_of_voice": 60,"cited": true,"citations": ["https://notion.so/product", "https://example.com/review"],"brand_cited_url": "https://notion.so/product","mention_count": 2,"mention_context": "Notion is one of the most popular all-in-one workspaces...","sentiment": "positive","competitors_mentioned": ["Evernote", "Obsidian"],"previous_mentioned": true,"previous_position": 3,"position_change": 2,"visibility_status": "improved","error": null,"checked_at": "2026-06-07T12:00:00.000Z"}
Pricing (Pay Per Event)
Charged events:
| Event | When |
|---|---|
actor-start | Once per run. |
prompt-engine-check | Each successful prompt × engine check. |
citation-extraction | Each successful check when citation extraction is enabled. |
sentiment-analysis | Each mention scored when sentiment analysis is enabled. |
Failed checks (e.g., a missing API key) are never charged. You pay your own LLM provider for the underlying API calls.
The maximum base check count is prompts × platforms. Optional citation extraction and sentiment analysis add their documented events only when applicable. Use maxPrompts, a focused platform list, and stable prompts to control cost and keep comparisons useful. Review the Apify Store pricing panel for current event prices.
Use the AI rank tracker through the API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('USERNAME/ai-visibility-rank-tracker').call({brandName: 'Notion',brandDomain: 'notion.so',prompts: ['What is the best note-taking app for teams?'],competitors: ['Evernote', 'Obsidian', 'Coda'],trackingId: 'notion-weekly',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
The actor also works with Apify schedules, webhooks, dataset exports, and Apify MCP for AI-agent workflows.
Scheduling for trend tracking
- Run once to seed a baseline (first run shows
visibility_status: new/absent). - Create a Schedule (daily or weekly) with the same
trackingId. - Each run compares against the previous snapshot and fills
position_changeandvisibility_status.
History is stored in a named key-value store (ai-rank-history-<trackingId>), so multiple brands can be tracked independently.
Use cases
- GEO / AEO monitoring — prove and improve how AI engines recommend you.
- Competitive intelligence — see who AI names ahead of you, and where.
- Content ROI — confirm whether new content gets you cited.
- Agency reporting — deliver weekly AI-visibility reports to clients.
When to use—and when not to use—this actor
Use it when you need repeatable AI search visibility monitoring across a defined prompt set: GEO reporting, AEO measurement, competitor tracking, content campaign evaluation, or an early warning when a brand loses position.
Do not use it as a Google SERP tracker, web-traffic analytics tool, or universal measurement of every AI user's experience. Position is calculated among the brands you explicitly track, not every company in the market. For a deeper view of every source domain cited by the engines, pair it with the AI Citation Monitor.
Best practices for reliable trend tracking
- Use non-branded, buyer-intent prompts that reflect real discovery questions.
- Keep
trackingId, prompts, competitors, models, and platform selection stable. - Separate markets or languages into distinct tracking IDs.
- Check
errorbefore interpretingmentioned: falseas a genuine absence. - Compare multiple scheduled runs; a single AI response is a snapshot, not a durable rank.
Local verification
Build and run the pure logic tests before publishing or deploying changes:
$npm run test
The test suite does not require OPENROUTER_API_KEY; live runs do. If the key is missing in a live run, each prompt-engine check returns a structured error row instead of crashing the actor.
Notes
- Results depend on each engine's live web access and model behavior; answers vary between runs, which is exactly what trend tracking is for.
- Keep prompts stable across runs for the cleanest deltas.
FAQ
What is AI visibility ranking?
It is the tracked brand's first-appearance position among the brand and competitor names supplied for a specific prompt and AI engine. It is a practical comparison metric, not an official ranking published by the model provider.
How often should I monitor ChatGPT and Perplexity rankings?
Weekly monitoring is a useful starting point. Daily schedules suit active campaigns or volatile categories, while monthly runs may be enough for slow-moving markets.
What is the difference between GEO and AEO?
Generative Engine Optimization and Answer Engine Optimization both aim to improve discoverability in generated answers. This actor measures the shared outcomes: mentions, position, share of voice, citations, and sentiment.
Responsible use
AI outputs can be incomplete, variable, or incorrect. Validate material decisions against primary sources and use the results for lawful brand research. Store OPENROUTER_API_KEY as a secret environment variable and never include it in actor input.