LLM Visibility Monitor: AI Search Brand Audit
Pricing
Pay per event
LLM Visibility Monitor: AI Search Brand Audit
Audit how your brand appears across ChatGPT-style answers, Claude, Gemini (including the Google AI Overview signal), Perplexity, and Grok. Track mentions, citations, share of voice, sentiment, and competitor gaps for SEO and GEO reporting.
Pricing
Pay per event
Rating
5.0
(1)
Developer
Omar Eldeeb
Maintained by CommunityActor stats
2
Bookmarked
6
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
What does LLM Visibility Monitor do?
LLM Visibility Monitor audits how a brand appears across AI search and answer surfaces: ChatGPT-style OpenAI answers, Claude, Gemini (which also powers Google AI Overview), Perplexity, and Grok. It is an AI search visibility API for SEO agencies, GEO teams, and brand marketers who need evidence-backed reporting on mentions, citations, share of voice, sentiment, and competitor gaps.
The Actor does not claim to replicate every personalized logged-in chatbot session. It measures repeatable API/search-backed answer surfaces and labels each result by model, platform, and search mode.
Why use LLM Visibility Monitor?
Traditional SEO rank tracking does not show whether AI assistants recommend your brand, cite your website, or mention competitors instead. This Actor gives agencies a repeatable way to benchmark a client’s GEO visibility and export the evidence.
Use it to:
- Run client-ready AI visibility audits.
- Monitor brand mentions across multiple AI platforms.
- Compare AI Share of Voice against competitors.
- Find pages and domains that AI answers cite instead of your site.
- Discover prompt gaps where competitors appear but your brand does not.
- Schedule recurring audits through Apify and export results via API, CSV, JSON, Excel, or integrations.
What data can LLM Visibility Monitor extract?
| Field | Type | Description |
|---|---|---|
brandMentioned | Boolean | Whether the target brand or aliases appeared in the answer. |
brandPosition | Number | The brand’s first mention position among tracked brands and competitors. |
shareOfVoice | Number | Brand mentions divided by total brand + competitor mentions. |
ownedDomainCited | Boolean | Whether the target website domain was cited. |
citedUrls / citedDomains | Array | Direct, user-facing URLs and domains cited or discovered in the answer surface. Provider redirect URLs are filtered from this list. |
citationQuality | String | Directional quality flag based on direct citations, owned-domain citations, and provider redirect noise. |
sentimentLabel / sentimentScore | String / Number | Directional brand sentiment in the response. |
answerSnippet | String | Evidence snippet for review and client reporting. |
geoScoreSignals | Object | Component signals used for the final GEO Visibility Score. |
The key-value store also contains RUN_SUMMARY, VISIBILITY_SCORECARD, COMPETITOR_SHARE_OF_VOICE, CITATION_OPPORTUNITIES, PROMPT_GAPS, and AGENCY_REPORT.md.
How to run an AI search visibility audit
- Enter the brand name.
- Add the brand website URL so owned-domain citations can be detected.
- Add a market category such as
B2B analytics softwareorlocal HVAC company. - Add competitors for share-of-voice and position tracking. You can enter brand names or URLs; URLs are normalized into brand names, domains, and aliases.
- Either provide custom prompts or let the Actor generate an SEO/GEO prompt set.
- Choose a preset: Quick, Agency, Deep, or Custom.
- Select answer surfaces from OpenAI, Claude, Gemini, Perplexity, and Grok.
- Keep
dryRunon for a smoke test, or turn it off for a live paid audit. - Start the Actor and open the dataset plus
AGENCY_REPORT.md.
How much will it cost?
This Actor uses pay-per-event pricing so costs scale with the amount of AI visibility evidence generated.
Important: multi-platform live audits are not cheap smoke tests. The Actor defaults to dryRun: true and the quick preset so first runs and automated QA checks finish quickly without external LLM calls. Turn dryRun off only when you want a live paid audit. The agency preset is designed for client-ready reporting, not quick validation. Keep dryRun enabled while testing, or use quick for a low-cost live first run. The maxChargeUsd cap auto-scales to your preset by default; set it explicitly if you want a tighter ceiling.
| Event | Price | Frequency |
|---|---|---|
apify-actor-start | $0.01 | Infrequent |
standard-llm-sample | $0.15 | Frequent |
premium-llm-sample | $0.35 | Frequent |
prompt-set-generated | $0.50 | Infrequent |
agency-report | $1.00 | Infrequent |
byok-llm-sample | $0.05 | Frequent in BYOK mode |
Typical presets:
| Preset | Shape | Estimated live cost |
|---|---|---|
| Quick | 5 prompts x 3 platforms x 1 sample | about $3.76 |
| Agency | 10 prompts x 4 platforms x 2 samples | about $13.51 |
| Deep | 25 prompts x 5 platforms x 3 samples | about $117.76 |
These estimates assume the Actor generates prompts and creates the final report. Custom prompts can reduce the estimate by $0.50 because no prompt set is generated. The Actor logs an estimated charge before paid work starts. By default the maxChargeUsd cap auto-scales to 1.5x the estimated cost of your preset, so the audit you picked runs without manual tuning; set an explicit maxChargeUsd value if you want a tighter ceiling. It also uses conservative provider-cost ceilings so bundled pricing stays profitable and avoids runaway API costs.
You only pay for value delivered. Samples that return no usable evidence are written to the dataset as warning rows for transparency but not charged:
standard-llm-sampleandpremium-llm-sampleare skipped when the model returns an empty answer or a clearly truncated response (finish_reasonother thanstopwith a short body).agency-report($1) is skipped on tiny audits (under 8 chargeable sample rows). The report files are still generated and stored — they're free for smoke tests. Full audits (Quick preset and above) include them by default.
The cost economics favor multi-prompt audits: every run pays a fixed actor-start ($0.01) plus prompt-set-generated ($0.50) when you let the Actor build prompts. For one- or two-prompt smoke tests, prefer dryRun: true (no live cost) or accept that fixed overhead dominates per-insight cost.
Input
See the input tab for full configuration options. The most important fields are:
brandName: required brand or product name.websiteUrl: owned domain for citation tracking.marketCategory: used to generate realistic SEO/GEO prompts.competitors: competitor brands or URLs for share-of-voice analysis.prompts: optional custom prompts; leave empty for generated prompts.platforms: answer surfaces to test.maxChargeUsd: optional safety cap. Leave empty and the Actor auto-scales the cap to 1.5x the estimated cost of your selected preset, so the audit you picked just runs. Set an explicit number to enforce a hard ceiling — live runs stop before any paid call if the estimate exceeds it.openRouterApiKey: optional bring-your-own-key mode.dryRun: fixture mode for testing without external API calls. It is on by default; turn it off for live paid audits.
For bundled live runs, the Actor owner must configure OPENROUTER_API_KEY as an Apify secret or environment variable. Secrets are never stored in .actor/actor.json.
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Example dataset item:
{"brandName": "Acme Analytics","prompt": "What are the best B2B analytics software companies?","platformLabel": "OpenAI GPT Mini Latest","brandMentioned": true,"brandPosition": 2,"shareOfVoice": 0.5,"ownedDomainCited": true,"citedDomains": ["example.com", "example.org"],"sentimentLabel": "positive","answerSnippet": "Acme Analytics appears as a relevant option..."}
Tips and advanced options
- For first tests, keep
dryRun: true(the default) or use thequickpreset. LeavemaxChargeUsdempty to auto-scale, or set it to a hard ceiling if you want a backstop. - Use at least two samples per prompt for agency reporting because LLM answers vary.
- Add brand aliases and product names to improve mention detection.
- Use custom prompts for high-intent sales questions your clients care about.
- Use BYOK mode for private audits where you want provider cost on your own OpenRouter account.
FAQ, disclaimers, and support
Does this show exact ChatGPT, Claude, Gemini, or Perplexity consumer UI results?
Not always. The Actor measures stable API/search-backed answer surfaces and labels every row by actual surface type. Personalized logged-in chatbot sessions can differ due to memory, account state, location, experiments, and UI changes.
What about Google's AI Overview?
Google's AI signal is captured via the gemini-flash and gemini-pro platforms. Direct SERP scraping is not part of this Actor.
Is the GEO Visibility Score exact traffic measurement?
No. It is a directional audit metric combining mention rate, owned-domain citation rate, position/prominence, sentiment, and consistency. Use it for benchmarking and prioritization, not as analytics traffic.
What about personal data?
This Actor is designed for brand and public web visibility analysis. It does not intentionally extract private personal data. You should still review outputs before processing or sharing them, especially when prompts or cited pages may include personal data. Personal data is protected by GDPR in the European Union and by other regulations around the world. If you are unsure whether your use is legitimate, consult your lawyers.
For issues, feature requests, or platform-specific accuracy questions, use the Actor Issues tab on Apify.
