SearchApi is paying me for this post as part of their Developer Ambassador program ($300 plus API credits) and provided the credits this build runs on. I picked the angle, and I'm not changing a conclusion to flatter them. The numbers below are what the run returned, including the parts that make single engines look inconsistent.
My Software Index used to answer one question: how many people search for a tool's name. That is useful, but it is only half of how people now pick software. A growing share of buyers ask ChatGPT, Gemini or Google's AI Mode a question like "best SEO software for small businesses" and take the answer from there. So I added a second signal: which tools those AI answers actually name. This post covers how I measure it with SearchApi, what the first run showed, and where the method is weak.

Why I Dropped My First Approach
My first version searched each tool's bare name on Google, Bing, DuckDuckGo and Yandex and recorded where its own site ranked. It worked as code and told me almost nothing as research. 42 of the 73 tools ranked first on all four engines, because a brand ranking first for its own name is the default. The interesting cases were a handful of names that double as dictionary words, and even those moved between runs.
What a buyer does is different. They have not picked a tool yet, so they never type a brand name. They type a category question. That is the moment an AI assistant recommends something, and that is what the index should measure.
What the Index Measures Now
The Software Index now keeps two signals apart on purpose. Search demand is estimated monthly searches for the brand name, with the trend over the last three months. I call it TMB AI Visibility: the percentage of relevant tracked buyer prompts where a tool appeared, when a buyer asks a question that mentions no brand at all. They answer different questions, and the interesting results are where they disagree.
For the first run I picked three categories, SEO suites, GEO (AI visibility) tools and SEO autopilot tools, and wrote 12 buyer questions for each, 36 in total. They cover different buyers on purpose: "best SEO software for small businesses", "easiest SEO software for beginners", "best SEO tool under $100 per month", "best SEO software for agencies", for GEO "best AI visibility software", "best ChatGPT visibility tracker", "affordable AI search visibility tracker", and for autopilot "best AI tool that writes and publishes SEO blog posts automatically" and "best SEO autopilot tool for Shopify stores".
None contains a brand name. A tool is only scored against the questions of its own category, so a GEO tracker is never marked down for missing from an SEO question.
How It's Built on SearchApi
Every question goes to three AI engines through SearchApi: ChatGPT, Gemini and Google AI Mode. They are three values of the same engine parameter on the same endpoint, which is the reason I used SearchApi for this. One request shape, one response format with the answer as markdown plus a list of cited sources, instead of three separate integrations.
javascript// engine is "chatgpt", "gemini" or "google_ai_mode"
const params = new URLSearchParams({ engine, q: question, api_key: SEARCHAPI_API_KEY });
if (engine === "chatgpt") params.set("web_search", "true");
if (engine === "google_ai_mode") { params.set("gl", "us"); params.set("hl", "en"); }
const res = await fetch(`https://www.searchapi.io/api/v1/search?${params}`);
const { markdown, reference_links, response_metadata } = await res.json();36 questions times 3 engines is 108 requests. Each one cost 1 credit, so the whole run used 108 credits, and all 108 came back usable. ChatGPT runs with web search on so its answers can cite live sources the way a real session does. The response also reports the model (ChatGPT answered with gpt-5-6, Gemini with 3.5 Flash-Lite and 3.6 Flash), which I store with every answer.
The fetch script is built so it cannot run up a bill by accident:
- It does a dry run by default and prints the number of requests it would make. Nothing is requested without an explicit --run flag.
- It refuses to start if the plan is above a request cap, 100 by default.
- It skips any question and engine pair that already has a stored answer, so re-running costs nothing.
- A failed request is stored as failed. It is never counted as the tool being absent, and it is left out of every denominator.
Every raw response is saved as its own file. All the numbers are calculated from those files when the page loads, so when I improve the matching I can recompute the whole snapshot without spending a single credit.
How Does an AI Answer Become a Number?
I count which tools each answer names. Each category gets 36 answers (12 questions times 3 engines). If a tool is named in 8 of them, its TMB AI Visibility is 8 divided by 36, which is 22%. The headline figure on the index is the equal-weight average of the three engines, and the per-engine numbers always sit next to it, because the engines disagree more than I expected.
Matching names in free text is where this goes wrong easily. Each tool has a list of aliases (SE Ranking also matches SERanking and SE-Ranking, Otterly.AI also matches OtterlyAI), a match has to contain a capital letter (so theStacc counts and the lowercase word "profound" does not), and it cannot sit inside a longer word. Names that are also ordinary words or other products, such as Profound, Conductor and Goodie, only count when they appear in a heading, a bold item, a table row, a list item or a link.
A sentence like "this has a profound impact" must not score for a GEO tool. I would rather miss a few real mentions than invent some. One check I run: if an answer cites a tool's own site but my matcher found no mention of its name, I read that answer. That check caught TheStacc, which one answer writes as theStacc.
Two more numbers sit on top. AI Share of Voice is a tool's mentions divided by all mentions of the tracked tools in its category. AI vs Search is its share of voice minus its share of tracked search demand, in percentage points: positive means the tool over-indexes in AI answers compared with its search demand, negative means it under-indexes. I deliberately did not blend any of this into one score.
What Did the First Run Show?
In SEO suites, Semrush is named in 92% of the answers, Ahrefs in 72%, SE Ranking in 61% and Mangools in 44%. Moz, which has the fourth-highest search demand of the ten, is named in 11%. In GEO, Otterly.AI is named in 78% of answers, Peec AI in 72%, Profound in 56% and Scrunch AI in 28%. Nothing else in GEO is above 19%.
SEO autopilot is the odd category. The tools I track there are barely named at all. Koala AI is named in 17% of the answers, Distribb in 14%, TheStacc in 11%, and ten of the 13 tracked tools are at 6% or below, five of them at zero. Across 36 answers, 20 did not name a single one of them. What the engines recommend instead are tools that are not in my database: Surfer, Alli AI, SEOwriting.ai, Frase and Byword show up in bold in several answers each (a rough text match, so read it as a pointer, not a count).
The index lists these under "named by AI but not tracked", because a leaderboard that only ranks the tools I happen to know would look more complete than it is.
Autopilot also splits the engines hard. Distribb is named in 42% of Gemini's answers and none of ChatGPT's or Google AI Mode's. Most autopilot names are either new, so Google's keyword data shows nothing for them, or ordinary words like Outrank and Soro, so their search demand can only be counted on qualified long-tail searches.
The sharper result is where search and AI disagree. SE Ranking gets 18% of the AI mentions from about 5% of the search demand, and Mangools 13% from about 1%. Semrush is the reverse, 28% of the mentions from 45% of the search demand, while still being the most recommended. Search demand here is branded search volume from DataForSEO as of 10 September, so it is a different measurement from the AI answers and the two should be read side by side, not added up.
The three engines disagree sharply. Scrunch AI is named in 58% of ChatGPT answers and in none of Gemini's. SE Ranking is named in 33% of ChatGPT answers and 83% of Gemini's. A report built on one engine would have ranked these tools differently, which is why the index shows the average with the spread beside it.
Being named is also not the same as being cited. Semrush is named in 92% of answers, but its own site is cited as a source in only 22% of the answers (the "Own site cited" column). The sources the AI engines cite most across the SEO answers were onelittleweb.com, ahrefs.com, semrush.com, zapier.com and reddit.com. For GEO they were zapier.com, youtube.com, position.digital, reddit.com and rankability.com.
For a smaller tool, this is the practical lesson: the answer often recommends you and then sends the reader to a roundup page instead of your own site.
What This Doesn't Claim
- It is one snapshot. AI answers change from run to run, so differences of a few points are noise. I will not call a trend until I have repeated the run.
- It is a pilot: 36 questions, 35 tools, three categories, US English. TMB AI Visibility describes my fixed benchmark of buyer questions. It is not how many ChatGPT, Gemini or Google AI Mode users see a tool.
- Share of voice only counts the tools I track. The answers also name others, like Screaming Frog, Serpstat, AccuRanker and ZipTie in SEO suites, and Surfer, Alli AI and Byword in autopilot, so the shares are among tracked tools, not the whole market. In autopilot the 13 tracked tools got only 22 mentions in total, so those shares move a lot on a single mention.
- Search demand share is share of tracked branded search interest. It is not market share and says nothing about customers or revenue.
- Names that can mean something else (Profound, Conductor, Goodie) are measured on qualified long-tail searches only, so their demand is a floor. I mark them with a star.
- Most GEO tools are new enough that Google's keyword data shows little or nothing for them. For that category the TMB AI Visibility column is the more reliable of the two.
The full data, with the per-engine breakdown, the questions and a real example answer, is on the Software Index. If you want to run the same thing for your own tool list, the request above and the counting rules are the whole method. You need a SearchApi key and a fixed list of questions that never name a brand.
Mentioned in this post

Joonas Rotko
Author & founder of That Marketing Buddy
I test and score SEO and AI-visibility software for small business owners and agencies, backed by 10+ years in digital marketing.

