More buyers now ask an AI assistant "what's the best X for Y?" before they ever open Google. If ChatGPT, Perplexity, Gemini or Claude name three competitors and not you, you don't get a click to lose: you simply aren't in the conversation.
"Generative engine optimization" (GEO) is the name for trying to fix that. But before optimizing anything, you need a number: in how many relevant answers are you mentioned, in which position, and who is mentioned instead?
Disclosure: I built the tool used in this guide, the AI Search Visibility Tracker on Apify.
Why you can't just ask ChatGPT once
- Answers vary. The same question gives different lists from run to run. One answer is an anecdote.
- Web search changes things. With search on, the model cites sources; which domains it cites is half the story.
- Scraping the ChatGPT website breaks its terms of use and stops working whenever the UI changes.
The reliable way is the official APIs (OpenAI with web search, Perplexity, Gemini, Claude), the same questions every week, and a few answers per question.
Step 1: Write the questions your buyers ask
Unbranded, like a real buyer would type them:
- "What are the best CRM tools for small agencies?"
- "HubSpot alternatives for startups"
- "Which CRM integrates with Gmail and is cheap?"
Ten to thirty questions per market is a good start. Branded questions ("Is Acme CRM good?") are worth a separate list.
Step 2: Run the tracker
Open AI Search Visibility Tracker:
{
"prompts": ["What are the best CRM tools for small agencies?", "HubSpot alternatives for startups"],
"brandName": "Acme CRM",
"brandDomains": ["acmecrm.com"],
"competitors": ["HubSpot | hubspot.com", "Pipedrive | pipedrive.com", "Zoho CRM | zoho.com | Zoho"],
"providers": ["openai"],
"runsPerPrompt": 2,
"webSearch": true
}
You can bring your own API keys for OpenAI, Perplexity, Gemini and Claude (you pay the provider directly), or run OpenAI without a key.
Step 3: Read the results
Per answer you get: whether your brand is mentioned, its position among all tracked brands, whether your domain is cited as a source, which competitors appeared, and the domains the AI cited. The SUMMARY record aggregates it: visibility %, average position, citation rate and share of voice per brand and per AI, plus the questions where only competitors show up.
Those "only competitors" questions are your to-do list. And the cited domains tell you where to get mentioned (reviews, comparison articles, directories), because that's what the AI is reading.
Step 4: Track it weekly
Turn on Compare with previous run with a monitoring ID per brand and market, and add a weekly Schedule. Each row then says whether you gained or lost a mention, moved up or down, or gained or lost a citation. With "only changes" on, you only see what moved.
Costs, roughly
The Actor is $10 per 1,000 checks with your own key ($35 per 1,000 for OpenAI without a key, AI costs included). Provider costs with your own key are listed in the README: Perplexity's fast preset is a couple of dollars per 1,000 answers, OpenAI with web search about $10-15. Thirty questions, two answers each, weekly, is about 240 checks a month: a few dollars.
What it doesn't do
It measures; it doesn't make the AI recommend you. That part is still content, reviews and being cited by the sources the models read. But you'll know within a week or two whether anything you changed moved the number.
Top comments (0)