Research
What AI assistants name when a buyer asks about SaaS spend
On 30 October 2026 we wrote forty questions a small-company finance lead would actually type into an assistant: how to find unused subscriptions, how to audit spend before a renewal, which tool reads invoices out of a mailbox. Then we asked four models the same forty questions through one endpoint and kept every answer verbatim. This page counts what came back — which product names appeared, how often, and in whose answers.
- Questions
- 40
- Models
- 4
- Answers kept
- 151
- Names counted
- 24
How the run worked
- The forty questions were written before the first call and have not been edited since. They live in the same repository as the page generator, as a plain JSON file.
- Every call went through one OpenAI-compatible endpoint at temperature 0.2, with no tools and no web browsing. The answers come from what each model already knew, which is the condition a buyer meets when they type the question into a plain chat box.
- Each call is one JSON line: model, question, HTTP status, latency, token usage and the answer text. A retry appends a line. Nothing is overwritten, so a failed call cannot quietly replace a good answer.
- Counting is a case-insensitive whole-word match against a fixed list of product names written before the run. A name counts once per answer, however many times the model repeats it.
Every name the models used
Answers counted: 151 of 160 attempts, across 4 models and 40 questions. Share is that name's answers divided by 151 — the same denominator for every row, so two rows can be compared directly.
The 9 attempts that produced no usable text are in the denominator and nowhere else: 7 stopped at the token ceiling while the model was still reasoning, 2 were refused by a rate limit. Neither was retried into the count.
| Product | Kind | Answers | Share | glm-4.5 | glm-4.7 | glm-5.1 | glm-5.3 |
|---|---|---|---|---|---|---|---|
| Slack | Named as a subscription | 74 | 49% | 18 | 21 | 26 | 9 |
| Okta | Named as a subscription | 65 | 43% | 20 | 16 | 15 | 14 |
| Vendr | Spend management | 64 | 42% | 18 | 12 | 19 | 15 |
| Zylo | Spend management | 63 | 42% | 9 | 14 | 20 | 20 |
| Ramp | Spend management | 63 | 42% | 14 | 17 | 17 | 15 |
| Microsoft | Named as a subscription | 60 | 40% | 14 | 14 | 22 | 10 |
| Torii | Spend management | 57 | 38% | 13 | 12 | 12 | 20 |
| Cledara | Spend management | 55 | 36% | 17 | 12 | 13 | 13 |
| Productiv | Spend management | 52 | 34% | 10 | 14 | 14 | 14 |
| Brex | Spend management | 52 | 34% | 12 | 15 | 13 | 12 |
| Jira | Named as a subscription | 31 | 21% | 9 | 11 | 9 | 2 |
| BetterCloud | Spend management | 27 | 18% | 7 | 8 | 12 | 0 |
| Notion | Named as a subscription | 23 | 15% | 5 | 8 | 7 | 3 |
| NetSuite | Spend management | 20 | 13% | 5 | 5 | 6 | 4 |
| Airbase | Spend management | 19 | 13% | 5 | 4 | 4 | 6 |
| Expensify | Spend management | 18 | 12% | 6 | 3 | 7 | 2 |
| Tropic | Spend management | 16 | 11% | 8 | 3 | 3 | 2 |
| Flexera | Spend management | 16 | 11% | 2 | 5 | 5 | 4 |
| ServiceNow | Spend management | 12 | 8% | 1 | 5 | 2 | 4 |
| SAP | Spend management | 10 | 7% | 2 | 2 | 4 | 2 |
| Google Sheets | Named as a subscription | 10 | 7% | 3 | 2 | 3 | 2 |
| Snow Software | Spend management | 9 | 6% | 2 | 3 | 2 | 2 |
| Sastrify | Spend management | 8 | 5% | 0 | 0 | 0 | 8 |
| Trelica | Spend management | 8 | 5% | 2 | 3 | 3 | 0 |
“Spend management” means the product sells software that finds or controls SaaS spend, including procurement platforms, corporate cards with spend controls and ERP suites that carry the same question. “Named as a subscription” means the model reached for it as an example of something a company pays for month after month. That second group is not competition; it is what the assistant puts in front of the reader while answering.
What these counts can and cannot tell you
- A mention is presence, not endorsement. Nothing here says a model would pick that product for a specific company, and the surrounding sentence is often a caveat.
- One call per question per model. There is no stability figure in this data: the same question asked tomorrow may return a different list, and a single run cannot tell you how much of the ranking is noise.
- The name list is finite — 24 names appear here, and a product outside the list scores zero by construction. These rows cannot distinguish “never named” from “never looked for”.
- What the rows do show is the order a buyer meets names in, and where the models disagree with each other. Those two patterns are visible even at this sample size.
Where SaaSClerk lands
Zero of 151 answers named SaaSClerk. We sell the thing these questions describe, and no model brought us up once. That is the result we are least happy about, and the reason this page exists. Discovery for this category now happens inside assistants, so being absent from that surface is a distribution problem more than a ranking one — and a distribution problem is the kind you can measure, publish and work on.
If you want the other side of the same question for your own site, the free AEO scanner reports whether an assistant can read it at all: crawler rules in robots.txt, llms.txt, sitemap, structured data, heading structure, and one live model asked about the brand.
Reproduce it
Three Node scripts in the project repository produce this page: ai_citation_run.cjs calls the endpoint and appends rows, ai_citation_analyze.cjs de-duplicates retries and counts names, ai_citation_publish.cjs writes the JSON this page imports. No figure above is typed by hand; every one is read from that file at build time. Average answer length in this run: 4664 characters.
Get the list for your own company
Scan one mailbox free at saasclerk.app. Twelve months of billing email in, one subscription inventory out, with the renewal dates that are actually coming.