SEO

How to Build an AI Visibility Baseline in ChatGPT and AI Mode

One screenshot of an AI answer measures the person asking. Five logged-out runs per question, on two engines, measure your market.

Author:
Leon Claassen
Contributors
Vlad Shvets
Date:
October 2, 2026

Somebody on your team asked ChatGPT about your category this morning, and it named three competitors and not you. The screenshot is in a Slack thread by now, on its way to the CEO.

Look at what it measured before it gets there. On 2 October we asked ChatGPT “Who should I hire to get my brand mentioned by AI chatbots?” from two places on the same afternoon, logged out both times.

From a US connection it named six companies. From South Africa it named two South African companies and nobody else, and the next time we asked, it opened the shortlist with its reason: “Since you’re in South Africa.”

ChatGPT answer viewed logged out, under the heading Agencies I’d put on your initial shortlist, opening with Since you’re in South Africa and listing Algorithm, MO Agency and GenerativeOptimisation, each described as a South African agency or specialist.
ChatGPT, logged out, answering Q01 from a South African connection on 2 October 2026, in the second of five rounds. Screenshot by Empact Partners

One answer is one draw, and the person asking is part of what gets drawn. That would be trivia if buyers still started on Google. When G2 surveyed 1,076 B2B software buyers in March 2026, 51% said they start with a chatbot more often than with Google, up from 29% in G2’s 2025 report, and 69% had switched to a vendor they had not planned on because a chatbot recommended it.

Most teams answer the screenshot with another screenshot, or with a tracker bought before anyone decided what it should track. Empact Partners runs Generative Engine Optimization (GEO), the workstream that makes a SaaS brand the name AI engines give when a buyer asks about its category, and every GEO engagement we run opens with this baseline:

Ten questions. Brand-free, written the way a buyer types them.
Five runs. Per question, per engine, each in a fresh logged-out session.
Two engines. ChatGPT and Google AI Mode, kept apart and never added together.
One market. The country your buyers are in, written on every row.
One sheet. It says, for each question on each engine, who owns the answer, who rotates through it, and where nobody is named.

Build the first one by hand. A tracker earns its place in month two, once the questions have earned theirs. Before that, the two calls that decide a baseline, which questions count and what counts as being named, are calls a tool makes for you without showing its work, and a baseline whose calls you cannot see is a number you cannot defend.

We ran it on our own category on 2 October 2026: consultancies that help B2B SaaS companies get recommended by AI engines, which is the work we sell. What came back from the hundred answers asked from the US:

168 different names. That is what ChatGPT offered across fifty answers, and two in three of the names it gave a question appeared in one run of five and never again. AI Mode offered 125.
Different owners. Six questions had a company named in four of five runs on both engines, and on five of the six it was a different company on each engine.
One LinkedIn article. Every AI Mode answer to Q02 cited the same list of ten agencies, written by the founder of the company it lists first, and AI Mode named that list’s first two in all five runs.
The asker’s country. All five of our South Africa runs of Q01 on ChatGPT named only South African companies, and none of the fifteen names the US runs produced.
Our own row. Empact Partners was named in none of the hundred answers. That is the zero we measure from.

Before the first run, you need the following, and one decision:

Accounts. None for ChatGPT or Google AI Mode, because the point is to use them logged out. A free Claude account for the questions, and a Google account for the sheet.
Cost. Nothing, unless your buyers are in another country and you need a VPN.
Time. About an hour for the first round of ten questions on both engines. A working day for all five rounds with the logging, which splits well across two afternoons.
From someone else. Nothing, unless your buyers sit in a country you don’t. Then a VPN set to that country, or a colleague who works there.
The market. One country per baseline, decided before the first run.

This shows who the engines name for your buyers’ questions and which pages they read to do it. Why they chose those names, and what to change on your own site, is the audit that comes after it.

Write the Questions a Stranger Would Ask

Step 1: Ask Claude for thirty candidate questions

Open a new chat in Claude and paste the prompt below. Change the lines that start “My category” and “My buyer” to your own and leave the six rules alone. Our consultants hold every question set to them, and each closes a way a set goes wrong: a question that draws a definition, a brand that tilts the answer, a price question that comes back with a price.

I want to find out which companies AI assistants recommend when someone shops my category. Write the questions to test.

My category: consultancies that help B2B SaaS companies get recommended by AI assistants like ChatGPT and Google AI Mode, usually alongside SEO and content
My buyer: a head of marketing at a B2B SaaS company with 50 to 500 employees

Write 30 questions this buyer would type into ChatGPT or Google AI Mode when they want names to choose from.

Rules:
1. A good answer to every question is a list of companies or products. Never ask what something is, how something works, or how to do it yourself.
2. Never name a company, product, or brand, including mine. Never use the words alternative, vs, versus, or compared to.
3. If a question is about price, ask for affordable options, never for what something costs.
4. Make about half the questions broad and plain. Give each of the rest exactly one detail a real buyer adds: company stage, team size, region, budget, a tool they already use, or a deadline.
5. Write the way a person types into a chat box: one sentence, plain words, under 25 words.
6. Vary how the questions start. No more than three may open with the same two words.

Return a numbered list, one question per line, nothing else.

Claude returns thirty questions in a numbered list. Ours came back in under a minute, and twenty failed the cut in the next step, more than half for doing a job another question already did. Sales-call transcripts make the list better: Cris S. Cubero, a B2B SaaS content strategist at Kalungi, posted in August that thirty calls gave her about fifty questions in buyers’ own words.

Step 2: Cut the thirty to ten

Ten is the number because of the arithmetic downstream. Ten questions, two engines and five runs make a hundred answers, and a hundred is what one person can log in a day. Read the thirty against these rules, in this order:

Names, not explanations. Keep a question only if a good answer to it is a list of companies. Cut anything asking what something is or how to do it.
Your category only. A question whose honest answer is a list of software tools measures the tools category, which is a different set of competitors.
Your buyer only. A retailer’s question or an enterprise one measures a market you do not sell to.
No brand names. Yours included. A brand in the question tilts the answer toward itself, and the sheet ends up counting your marketing.
One job each. Two questions doing the same job draw the same answer twice. Keep the plainer one, and keep a few that add one detail a buyer adds: company stage, team size, region, budget, a deadline.

Our thirty lost twenty to those rules. Five of the cuts, with the fault in each:

CutThe fault
“We use HubSpot already, who integrates AI visibility tracking with it?”Names a brand, and asks about tracking tools
“Recommend vendors for tracking share of voice in generative AI results.”The tools category, not ours
“List providers that help brands get surfaced in AI shopping recommendations.”A retailer’s question, not our buyer’s
“Who are the leading players in AI assistant brand recommendation strategy?”Vague enough to draw an overview
“Can you list specialists in making SaaS brands show up in AI search?”The same job as Q02, in other words

Write the keepers in a buyer’s words rather than your category’s. Meghan Houston of Go Fish Digital posted in August that Go Fish showed up in 23.6% of answers to prompts using terms like GEO and AEO (answer engine optimization), and in 3.6% when a buyer described their situation. Two of our ten carry the jargon, Q05 and Q10, and Q05 drew the org chart Step 7 comes back to.

IDQuestionThe detail it adds
Q01Who should I hire to get my brand mentioned by AI chatbots?none
Q02What companies help B2B SaaS get recommended in ChatGPT answers?none
Q03What teams combine SEO and AI visibility work for SaaS marketers?none
Q04Who are known experts in getting cited by Google AI Mode?none
Q05Who handles AI answer engine optimization for a Series B startup?company stage
Q06Who specializes in AI visibility for companies under 100 employees?team size
Q07Need a consultancy in Europe for AI search optimization, who fits?region
Q08Looking for affordable options to improve AI search visibility, who’s good?budget
Q09Who can help us rank better in AI assistant answers within a quarter?deadline
Q10Which consultants help with answer engine optimization before a product launch?use context

This cut is where a GEO engagement spends its first judgment. The questions that make the set are the ones a partner’s buyers would type, never the ones its sales deck answers, and every number after this step inherits the choice.

Step 3: Set up the sheet

Create a Google Sheet with three tabs named Questions, Runs and Baseline. Paste your ten into Questions with their IDs in column A. On Runs, click cell A1 and paste this header row:

Date	Market	Engine	Question	Run	Brands named, in order	We were named (Y/N)	Our position	Pages cited	Notes

Every answer you collect becomes one row on Runs. Baseline stays empty until the runs are in, because its only job is arithmetic, and Step 9 gives it the formulas.

Ask Every Question Five Times, Logged Out

Step 4: Open a private window in your buyers’ country

Open a new private window (Incognito, in Chrome) and sign in to nothing. That keeps your memory, search history and settings out of the answer: for the next hour you are a stranger. Irina Maltseva, who runs Seen, posted in August about a CMO who believed, from their own ChatGPT account, that they were at 80% visibility. A clean run through the tracker Scrunch put them at 20%.

If your buyers are in another country, connect a VPN to that country first. OpenAI’s help pages say ChatGPT may use an approximate location from your IP address to give local results, and our run shows what that does to a shortlist: all five South Africa runs of Q01 named only South African companies, eight of them, and none of the fifteen our US runs named.

One country per baseline. Comparing markets month on month is where a sheet stops scaling, and it is what Qvery, our sister company, was built for: daily runs on ChatGPT and Google AI Mode in more than 200 countries, with every cited page kept. It is ours, so discount what we say about it, and ask to see the raw answers behind any number it shows you.

What Reddit says

“I would do it, but my ChatGpt just knows a lot about my comings and goings, I fear it would have bias in what it tells me. I should ask someone else to check on me :)”
r/SEO, July 2026
“Along with most of the comments here about tools showing an estimate I would like to add there are some geographic & context/memory variance too. Tools are mostly tracking US while your customer might be in another geography.”
r/seogrowth, September 2026

Step 5: Ask ChatGPT

Go to ChatGPT in the private window. Paste Q01 into the box and press Enter. Wait until the answer stops growing and the Sources button appears under it, which took 15 to 21 seconds in our South Africa runs. Close the window when you have logged the answer, and open a new one for the next question.

Here is a finished logged-out answer to Q02, asked from South Africa. The bold names are the shortlist, and the grey chip at the end of each line is the page the answer leaned on for that line.

ChatGPT answer viewed logged out to What companies help B2B SaaS get recommended in ChatGPT answers, listing DerivateX, Arobis AI, Breaking B2B, LoudFace, GTM Engage and Nivonto in bold, each line ending in a grey source chip.
Q02 on ChatGPT, logged out, from South Africa, round four. Each chip names the page behind its line, here the companies’ own sites. Screenshot by Empact Partners

Three things you will meet, and what each one means:

A refusal. “Unable to connect” or “Chat stopped unexpectedly” means ChatGPT is refusing the network, not the question. A cloud browser we tried for the US runs got that reply on every attempt, on both of its network settings, while an ordinary office connection got an answer every time.
A preamble. A first line like “I’ll look for consultancies that…” is the search starting, and the answer arrives under it.
The closing offer. Almost every answer ends by offering a better shortlist if you share your company, budget or website. Don’t: the next answer would be about you.

Step 6: Ask Google AI Mode

Go to Google AI Mode in a fresh private window, still signed out. Paste the same question and press Enter. The answer streams through “Searching” and “Thinking a little longer” and is finished when the line “AI can make mistakes, so double-check responses” appears under it, 7 to 16 seconds in our South Africa runs.

AI Mode ends by asking you something back: your industry, your budget, whether you want a tool or a service. Leave it unanswered, for the same reason. Here is AI Mode’s answer to Q02 from a US connection, signed out:

Google AI Mode answer viewed signed out to the same question, listing Arobis AI, Discovered Labs, SimpleTiger, Omnius and Flow Agency under Specialized GEO and AEO Agencies, several lines ending in a chip reading LinkedIn, Ran Yosef.
Q02 on Google AI Mode, signed out, from a US connection, round four. Three of the first four names lean on the same LinkedIn article. Screenshot by Empact Partners

The chip at the end of each line names the page AI Mode leaned on, and the full list of pages sits under the answer, behind Show all.

Step 7: Log what the answer named and cited

Add one row to Runs per answer: the date, the market, the engine, the question’s ID and the run number. In F, type every company the answer offers as an option, in order, separated by commas. Type Y in G if your brand is one of them and its position in H, and paste the cited links into I, separated by spaces. We logged ours under these rules:

Options, not mentions. A company counts when the answer offers it as something the buyer could hire or buy. Tools count when they are offered as the way to do the job, because the budget could go there instead.
Not the engines. ChatGPT or Perplexity as the subject, and Reddit, G2 or LinkedIn named as places an engine reads, are not options.
One spelling each. Spell every brand the same way each time, because the sheet counts “Peec” and “Peec AI” as two companies.
Empty answers too. Log an answer that names nobody with an empty F and a note saying what it answered instead.

The note matters more than it looks. Seven of our fifty ChatGPT answers named nobody, and none of them was an empty seat. Four were Q05 drawing an org chart: ChatGPT read “who handles” as a question about which of your own people owns the work, which is the question’s fault rather than an opening in the market.

The other three ran no search and replied with a sentence or an offer to find names. Log answers like that as they came, because a stranger got them too.

Step 8: Repeat until every question has five runs

Run all ten questions on both engines, a fresh private window each time, then go again later the same day until every question has five runs on each engine. We spaced our five rounds twenty minutes apart through one afternoon, in fresh automated browser sessions because our buyers are in the US and we were not, and read every answer whole before logging it.

Five is where a baseline starts telling regulars from passers-by. Two in three of the names ChatGPT offered for a question appeared in one run of five and never again, and so did nearly half of AI Mode’s. Only eight names held a question on ChatGPT for four runs or more, against 35 on AI Mode, the first sign that the two engines answer from different places.

Bar chart of how many of five runs each name survived on its question: on ChatGPT 67% of names appeared in one run, 19% in two, 10% in three, 2% in four and 2% in all five; on Google AI Mode 47%, 19%, 15%, 11% and 8%.
212 question-name pairs on ChatGPT and 186 on AI Mode, in our own category, asked logged out from a US connection.

Stopping at three would have misread both engines. On ChatGPT, three runs showed a name in every answer on three questions, and five runs found an owner on six. On AI Mode, Kevin Indig appeared in all three of the first answers to the experts question and in neither of the last two, and Exposure Ninja did the same on Europe. Runs four and five also brought 54 new names on ChatGPT.

How many runs is enough is the most argued line in this work. The newest posts and studies on it disagree on the number and agree that one is not it:

WhoPublishedRuns per questionWhat they found
RankJojo, on LinkedInSeptember 202610 for a first baselineThe same question asked 20 times drew 11 different answers
Senthil Kumar Hariram, FTA Global, on LinkedInSeptember 20265The same brand stayed first in only 35% of identical reruns
Brain Buddy AI, on LinkedInAugust 2026A check a week for four months44% of citation wins looked permanent after 3 checks, 26% after 5, 17% after 8
Julius Schulte, Malte Bleeker and Philipp Kaufmann, preprintApril 2026At least 7 a day, to track a rateA single run is “essentially uninformative”
Rand Fishkin, SparkToroJanuary 202660 to 100, to know an engine’s set of recommendationsUnder 1 in 100 chance of the same list of brands twice
Leon Claassen
Senior GTM Consultant @ Empact Partners
A screenshot argument ends the moment the sheet shows a rate. Once your CEO can see that the competitor in the Slack thread turned up in one run of five, the meeting moves on to the questions where somebody turns up every time, and that is where the work is.

Read Who Owns Each Question

Five runs will not give you a share of your market to the point, and the preprint’s seven a day is the floor for a rate a dashboard can carry. A baseline asks something smaller and more useful first: for each question on each engine, is there a company the engine names nearly every time, several that take turns, or nobody at all?

Step 9: Give the Baseline tab its formulas

On Baseline, type your brand’s name in B1. Click A3 and paste the header row below, then list each question ID twice from A4 down, once for each engine, with the engine written in B exactly as you wrote it on Runs.

Question	Engine	Runs	Answers naming anyone	Times we were named	Our share	Most-named company	Its share	Seat

Click C4, paste this row of formulas, and fill it down to the last question:

=COUNTIFS(Runs!D:D,A4,Runs!C:C,B4)	=COUNTIFS(Runs!D:D,A4,Runs!C:C,B4,Runs!F:F,"?*")	=COUNTIFS(Runs!D:D,A4,Runs!C:C,B4,Runs!G:G,"Y")	=IF(C4=0,"",E4/C4)	=IFERROR(LET(t,QUERY(ARRAYFORMULA(TRIM(FLATTEN(SPLIT(FILTER(Runs!F:F,Runs!D:D=A4,Runs!C:C=B4,Runs!F:F<>""),",")))),"select Col1, count(Col1) where Col1 <> '' group by Col1 order by count(Col1) desc",0),TEXTJOIN(", ",TRUE,FILTER(INDEX(t,0,1),INDEX(t,0,2)=INDEX(t,2,2)))),"")	=IFERROR(INDEX(QUERY(ARRAYFORMULA(TRIM(FLATTEN(SPLIT(FILTER(Runs!F:F,Runs!D:D=A4,Runs!C:C=B4,Runs!F:F<>""),",")))),"select count(Col1) where Col1 <> '' group by Col1 order by count(Col1) desc",0),2,1)/C4,"")	=IF(C4=0,"",IF(D4=0,"Empty",IF(F4>=0.8,"Ours",IF(H4>=0.8,"Owned","Contested"))))

The Seat column carries four labels:

Ours. Your brand was named in at least four of the five runs.
Owned. Another company was, and the column beside it names them.
Contested. Companies were named, but none in four of five runs.
Empty. No company was named in any run. Read the notes before you believe it.

Here is our Baseline tab once the hundred US answers were in:

The Baseline tab of the specimen Google Sheet viewed logged out, listing Q01 to Q10 twice, once for ChatGPT and once for Google AI Mode, with runs, answers naming anyone, times Empact Partners was named (zero on every row), the most-named company, its share, and a Seat column reading Owned or Contested.
Q01 to Q10 on both engines, every count worked out by the Step 9 formulas. The seat colors are the sheet’s conditional formatting. Screenshot by Empact Partners

And the same seats side by side, one row per question, which is how they read best:

QuestionChatGPTGoogle AI Mode
Q01, who to hireContestedContested
Q02, companies for B2B SaaSOwned by Breaking B2B, 4 of 5Owned by Arobis AI and SimpleTiger, 5 of 5
Q03, SEO and AI visibility teamsOwned by LoudFace and PipeRocket, 5 of 5Owned by Breaking B2B, Omnius and SimpleTiger, 5 of 5
Q04, experts on AI ModeOwned by Lily Ray, 4 of 5Owned by Profound, 5 of 5
Q05, a Series B startupContested, four answers were org chartsOwned by Profound and Synscribe, 5 of 5
Q06, under 100 employeesOwned by Monic AI Systems and The AI Citation, 4 of 5Owned by HubSpot and Peec AI, 4 of 5
Q07, EuropeOwned by PromptMarketing, 5 of 5Owned by Alice Labs and Omnius, 5 of 5
Q08, affordable optionsOwned by Otterly.AI, 5 of 5Owned by Otterly.AI and Rankscale, 5 of 5
Q09, within a quarterContestedContested
Q10, before a launchContestedOwned by Elevate AI Consulting, LinkingRow and NoGood, 5 of 5

Our own row reads zero: Empact Partners was named in none of the hundred answers, and Qvery in none either. We ran the baseline on our own category because it is the one we can publish without breaking a partner’s confidence, and a baseline is measured from where you stand, not from where a screenshot says you stand.

Step 10: Compare the two engines

Read each question’s two rows side by side and never add them together. Both engines matter on their own: OpenAI puts ChatGPT past a billion weekly users, and Google says AI Mode passed a billion monthly users within a year. Kevin Indig posted Semrush data in August showing the two shared 69% of their most-mentioned brands and only 57% of their cited sources.

In our runChatGPTGoogle AI Mode
Answers that named nobody7 of 502 of 50
Names per answer, on average6.48
Different names across 50 answers168125
Names that appeared in one run of five67%47%
Questions with an owner6 of 108 of 10
Links cited per answer, on average7.312.3
Links to a named company’s own site61%27%
Seconds to a finished answer, from South Africa15 to 217 to 16
Six questions had an owner on both engines. On five of them, the two engines had settled on different companies.

The pages explain the split. The four pages ChatGPT cited most were PipeRocket’s, Breaking B2B’s, LoudFace’s and PromptMarketing’s own pages about their services, and every one of those four companies owns a question on ChatGPT. What a company says about itself is most of what ChatGPT reads.

Bar chart of the pages each engine cited, by kind: ChatGPT sent 61% of its links to the site of a company named in the same answer, 38% to other third-party sites and 1% to LinkedIn; Google AI Mode sent 27% to named companies’ sites, 44% to other third-party sites, 15% to YouTube, 9% to LinkedIn and 4% to Reddit.
A named company’s own site is the domain of a company the same answer offered as an option. Our own category, logged out, 2 October 2026.

AI Mode reads what other pages say about you, and many of those pages are lists. All five of its answers to Q02 cited one LinkedIn article, a list of ten agencies published on 2 September by the founder of Arobis AI, and AI Mode’s two names in every run, Arobis AI and SimpleTiger, are that list’s first two. Its most-cited page overall was Optimist’s own list of the best GEO agencies, in nine answers.

Getting a partner into the lists an engine already cites is Existing Article Outreach, the method we built for this half of GEO. On ChatGPT the first move is usually the partner’s own pages, and on AI Mode it is the pages other people publish about the category.

Step 11: Turn the seats into the first month’s list

Sort Baseline by Seat. The Empty and Contested rows on questions your buyers really ask are the first month’s list, because an empty seat has no incumbent and a contested one has an incumbent the engine only half trusts. Owned rows go last: winning one means displacing a company the engine names every time.

To see which pages sit behind those seats, add a tab called Pages and paste this into A1. It counts every page the answers cited, per engine, most-cited first:

=QUERY(ARRAYFORMULA(IFERROR(SPLIT(FLATTEN(IF(Runs!I2:I="",,Runs!C2:C&"|"&TRIM(SPLIT(Runs!I2:I," ")))),"|"))),"select Col1, Col2, count(Col2) where Col2 <> '' group by Col1, Col2 order by count(Col2) desc label Col1 'Engine', Col2 'Page', count(Col2) 'Answers citing it'",0)

The pages that name your competitors and not you are where mention building starts. Our category had no empty seats, which is what a crowded category looks like, so our own list starts with Q01 and Q09, contested on both engines, then Q10 on ChatGPT, where 22 names took turns. Q05 stays off it: four of its five ChatGPT answers were org charts, so the fix there is a better question.

Leon Claassen
Senior GTM Consultant @ Empact Partners
We open a partnership on the contested seats and leave the owned ones for later. A company an engine names in every run is sitting on pages the engine already trusts, and moving it is slow work. A contested seat is one where the engine is still choosing, and that is where new mentions show up first.

On a partnership this sheet is the first page of the audit, and the roadmap that follows decides which seats get the first month of mention work. A named senior consultant owns that call, the standing report reruns the same questions so the movement shows, and it shows over quarters rather than weeks. If you want the list built and worked for your category, book a call with us.

What the Sheet Cannot Tell You

Rerun the sheet once a month with the same ten questions, market and five runs, and read the Seat column first. A contested question that turns into one of yours is the first evidence the work landed. A wobble of one run is the engine drawing again: in our own panel, only 58% of the brands ChatGPT gave for a software question came back ten days later, and 48% on AI Mode.

The sheet is the right first instrument, and it is not the only one you will need. What each way of checking can and cannot tell you:

The checkWhat it can tell youWhat it cannot
One screenshotWhat one person saw, onceAnything about your buyers, because it measures the asker
One run per questionWhich names an engine reaches forWhether a name is a regular or passing through
The five-run sheetWho owns, contests or leaves empty each question, per engine, and which pages it readYour share to the point, other markets, why the engine chose
A daily tracker, per countryMovement over time in every market you sell inWhich questions matter, unless someone chose them first

Start with the sheet and automate the recheck once the questions have earned their place. Some trackers read the engines through their APIs, and Surfer’s September 2026 test of 1,000 prompts found the brands named through an API overlapped with those on the screen users see by only 15.5% to 23.8%. A sheet built by hand reads your buyers’ screen, which makes it the check for any tool.

If your buyers are asking AI engines who to hire and your name is not in the answers, book a call with us, and we will work out together whether we could help.

Ready
To Connect?

Let's Partner