The short answer
We asked ChatGPT and Claude the twenty questions a US buyer types when looking for a marketing agency. Three times each, within one hour, on 19 October 2026: 120 answers.
They named 419 companies and put 239 of them forward as providers a buyer could hire. Directive tops both lists, but not in the same way: Claude recommended it 45 times, far ahead of anything else it said, while ChatGPT recommended it 25 times, level with Ironpaper. Each assistant leans hard on its own short list — ChatGPT’s ten most recommended carry 163 of its 349 recommendations, Claude’s ten carry 212 of its 738.
Behind those tens the list barely holds still. ChatGPT recommended 42 of its 90 companies exactly once in its 60 answers, Claude 87 of its 206, and asking the same question a second time replaces two of every five companies ChatGPT named and nearly half of Claude’s.
The two assistants overlap on the leaders and diverge below them. ChatGPT recommended 90 companies, Claude 206, and 57 appear in both lists.
Directive tops both lists, and below the leaders they part
Seven companies are in both assistants’ own tens: Directive, Ironpaper, Walker Sands, Refine Labs, Kalungi, SmartBug Media and Omniscient Digital. The other six are in one list only, and two of those — NoGood and Powered by Search, both in Claude’s ten — were never recommended by ChatGPT in any of its 60 answers. How much each assistant leans on its own ten differs too: those ten carry 47% of what ChatGPT recommended and 29% of what Claude did, because Claude spreads its answers over more than twice as many companies.
The recommendations do not hold still
This is the finding with the most practical weight, so it gets the most room.
Ask the same question a second time and ChatGPT replaces 39% of the companies it had just named, Claude 45%. Ask three times and only 29% of ChatGPT’s 191 company-and-question pairs and 22% of Claude’s 428 come back every time. All three ran within the same hour, with identical wording, from the same place, so the reshuffling is not drift over time or a difference in how the question was put. It is what a single request gives you: one draw from a wider list.
The two assistants agree on the head of the list and part company in the tail. The seven names they share at the top are that head. But of the 239 recommended companies, 182 were put forward by only one of the two, and most of those are Claude's alone: its answers name a median of 11 companies against ChatGPT's 6. Of the 239 companies, 57 are recommended by both — about one in four — and that overlap is dominated by the single-assistant names, so it describes the tail and says nothing about who leads. Outside the head, whether a company appears at all is close to a coin toss, and the two assistants toss different coins. Recommendations, their counts and the repeat pattern are reported per assistant and never added together; where a number covers both assistants — how many companies were named at all, how many websites we tested — the sentence says so.
For a company watching its own visibility, that has a direct consequence: one check of one assistant on one day says very little. What can be measured is a company's rate of appearance across repeats and across assistants.
What the answers link to: a directory first, then the agencies themselves
In ChatGPT's answers the most linked domain is a directory: clutch.co, with 55 links. Behind it come the providers' own websites: kalungi.com with 28, walkersands.com and ironpaper.com with 26 each. Claude links first to directiveconsulting.com (26) and thegrowthsyndicate.com (23), with clutch.co third at 14, and spreads the rest across providers' own sites and industry roundups. The full counts per assistant are in Appendix C.
One limit belongs right here: a link in an answer is what the reader can click, and it is not a record that the model read that page. We counted these links in the answer text itself, separately from the URLs the assistants' search tools returned, and Appendix B keeps the two apart.
What the site checks showed
We also tested whether a company's treatment of AI crawlers goes together with being recommended. For the 149 recommended companies whose own website we could identify, we read robots.txt and, separately, sent requests under four named crawler user-agents from two networks. All the counts, and the paired comparison against the controls, are in Appendix C.
Three results, and the two limits that bound them.
Declared blocks and actual refusals are different companies. Six sites declare a block for a named AI crawler, and all six answered our requests normally. Thirteen refused at least one of our named crawlers on every attempt — eight refused all four, and five refused some while answering others — and all thirteen declare nothing in the file. No company appears in both groups. Anyone auditing this by reading robots.txt alone would therefore describe the wrong set of companies.
Recommended companies had markedly higher branded demand than their controls. Against 37 matched controls drawn from the Google top ten for the same questions, median branded search volume is 4,400 for the recommended companies and 90 for their controls: a median ratio of 48× inside a pair. One pair of the 37 sits within a factor of two, and eight differ by more than a hundredfold. The companies these assistants recommend are, above all, companies whose own names people search for.
llms.txt was more common among the companies nobody recommended. Inside the 37 matched pairs, 28 of the controls publish the file against 19 of the recommended companies matched to them. The difference inside the pairs did not reach significance (exact McNemar, p = 0.078), and the pair-by-pair counts are in Appendix C. For context on how much the file is read at all: Ahrefs, measuring 137,000 domains in May 2026, found 97% of llms.txt files received no requests.
Limit 1: this records how sites answered us. Our request carries a crawler's name while coming from our own network, so it is our experience and not a real crawler's. One site in this sample answered differently depending on which of our two networks asked.
Limit 2: the groups are not comparable on fame. The pairing matched provider type exactly and branded volume loosely, and the 48× gap above is what loose turned out to mean. So these observations describe the two groups. They do not establish what makes a company recommended, and the statistical detail of what this design could and could not detect is in Appendix B.
What we are watching next week
The same twenty questions go to both assistants every Monday, three times each. The next issue reports which companies entered and which disappeared by name, how many of each assistant's own ten are still there, and whether the two assistants moved closer or further apart.
The measurement that matters most is the comparison between those two kinds of change. Inside one hour, 89 of ChatGPT’s 191 company-and-question pairs and 213 of Claude’s 428 already came and went. Until a week's movement is clearly larger than that, a company's rise or fall between issues is not a trend, and we will report it that way.
Next measurement: 26 October 2026.
Where these numbers stop
Per question. A question describing the buyer («we are a 60-person B2B software company with $8M in revenue») and one naming a category («best B2B demand generation agencies») return largely different companies. This issue measures these twenty questions.
Per service type. Of the 141 recommended companies confirmed as providers, 74 are full-cycle agencies, 48 niche agencies, 17 consultancies or fractional leadership, 2 marketplaces. Questions about leadership return consultancies; questions about demand generation return agencies.
No cause. We measured who is recommended and how unstable it is. Why any particular company is recommended is not established here. The nearest candidate, how often a company is mentioned on other people's sites, needs its own measurement.
No crawler behaviour and no fetches. We tested named user-agents, which says nothing about the robots used to build training sets, and no layer of what an assistant reports records that a page was fetched.
Measure this for your own market
Measure which providers ChatGPT and Claude recommend when buyers ask about your market. See where your company appears, which competitors recur, and which websites the answers link to. Repeated measurements track how those results change.
The appendices below carry the protocol this measurement was registered under, the method, the technical tables, the twenty questions as asked, the matched pairs and the published studies we read.
Appendix A: the protocol, as registered before the first measurement
Written and recorded before any collection for this issue, so that every number above can be checked against the rule that produced it. Where the method has changed since, the change and its reason are named at the end of this appendix.
What one measurement is. The unit of observation is one answer by one assistant to one question in one repeat. From each answer we take the companies named, the category of each mention, and the sources the answer carries. The unit of counting is the company: repeated appearances of one company are repeated observations of that company, never new companies. Two numbers are always published separately: how many companies, and how many observations. Neither stands in for the other.
Questions. Twenty, in four families: hiring directly (6), choosing and vetting a provider (5), in-house against outsourcing (3), and the family that covers our own specialism, AI-driven marketing and visibility in AI answers (6). The US market is named inside the text of each question, because our runs leave a network in Frankfurt and an assistant's own location cannot be set, only the wording of the question. Wording was frozen before the first measurement: changing a question resets comparability between runs and is allowed only before the first run. All twenty are printed in Appendix D. Two of them, 16 and 18, do not name the US; this was found after the measurement by checking the printed questions against the frozen file, and is stated wherever those two bear on a number.
Assistants, transport and repeats. ChatGPT with web search, reached through an OpenAI subscription, and Claude, reached through our own gateway on its search task class. Perplexity, Gemini, Copilot and Grok are not measured, because we have no access to them, and "the assistants" in this series means exactly the two named. Three repeats per question per assistant, each a separate process with a clean context, so each repeat is an independent attempt. Three is the minimum at which spread inside one run can be told apart from change between weeks; no statement of that kind is made on a single answer. The full text of every answer is stored, because without it there is neither name extraction nor hand-checking.
Groups. The named group is every company named in at least one observation of the discovery run, and its membership is frozen on that run. The control group is companies the assistants never named, and which a buyer finds through the same questions in Google. The selection rules, recorded before measuring: candidates come from the Google top ten (US) for the same twenty questions, taken once in the week of the measurement; a candidate is eligible if its own website shows it sells marketing services to US clients and it was named in no observation of the run; matching is one to one, nearest neighbour by the monthly US search volume of the company's own name, inside the same provider type, with no control reused. Provider types, matched only within type: full-cycle agency; niche agency; consultancy; marketplace; freelancer network. Directories, roundups, publications and software tools belong to neither group and are counted on their own line. If controls are fewer than named companies, the shortfall is stated as a number and nobody is recruited from outside that one source.
What counts as a recommendation. Five categories, counted separately and never added into one figure:
- an option: put forward as a company the buyer could hire, with nothing from the next category attached;
- with a reservation: put forward as a provider, and the answer attaches at least one of: a price, fee range, minimum budget or time commitment the buyer would have to meet; doubt about the evidence, such as mixed or thin reviews; an instruction to verify something before signing, or a named risk; or a statement that the company fits a different profile than the buyer described, or is the weaker choice. A line saying when to choose this company is not a reservation: every company in these answers has one, and counting it as a reservation empties the category;
- an example to avoid: named as a warning;
- not a provider: named as a directory, review site, publication, data source or software tool;
- somebody else's company: named as a client, a case study or an illustration, and not as a provider the buyer could hire.
The last two never enter the recommendation totals and are reported on their own lines. One observation is one company recommended in one answer; several mentions of the same company inside one answer are still one observation.
How names are extracted and marked. A deterministic pass proposes candidates: capitalised multi-word spans, the domains in the answer's own source list, and a cumulative list of names that grows from run to run. For each candidate a window of ±2 sentences is kept. The category is assigned by a separate pass over that window with the full answer available, and the result must carry the sentence it rests on, word for word; a record is discarded unless both the name and the quote appear in the answer verbatim. Hand-checking is fixed as a count and never as a share, so that it cannot shrink later: every record in the "example to avoid" category; every case where the company's own domain could not be identified; every case where the quote does not contain the name itself; and a random 10% of the remaining records spread across assistant and question family, never fewer than 100 records. Names are consolidated one company to one domain; a company whose own website cannot be identified counts as named but is left out of the site tests.
Stability and agreement. Per company and assistant: the share of runs in which it is named, and the share of observations. Inside one run: the share of companies named in one repeat of three. Between the assistants: the overlap of the named sets, per question and overall, and separately the agreement on the ten most recommended.
Sources, in three separate layers. Every stored address carries the basis on which it was stored, and the layers are never mixed: what the assistant's own search tool returned; what the answer states as its sources; and the links shown in the answer text. A standing prohibition, written into the task: no address from any of these layers is presented as evidence that a crawler fetched that page, because none of them records a fetch.
Crawler access: three separate observations. Merging them into one open-or-closed verdict is forbidden.
- What
robots.txtdeclares. This records a declared intention and says nothing about behaviour. The file is requested under a browser name and parsed for eight crawler names: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, anthropic-ai, CCBot and PerplexityBot, with full and partial blocks recorded separately. - How the site answers our own request under a crawler's name, from two different networks. A disagreement between the networks counts as a finding and never as a measurement error, and both observations are published.
- A probe through the assistant itself: we ask it to open a page and quote a line from it. Run only on our own site, where a line that did not exist before the check can be published in advance. It is not run on other people's sites: there we cannot plant such a line, and the model may return a public line from memory or cache. It is weak evidence and is called that.
Bounds that hold for any access observation: it covers one page, seen through one tool at one moment. Such an observation says nothing about another assistant or about a training crawler, which are different robots with different permissions. Our request carries a crawler's name but not its network, while crawler allow-lists at the large CDNs work by network, so a false "closed" is possible.
Pre-registered conclusions: what each outcome licenses. Written before the first paid collection. The issue stays inside this table.
| Outcome of the access comparison | What we say | What we do not say |
|---|---|---|
| Almost nothing is closed in either group | "The question cannot be settled on this data: there are almost no closed sites in the sample", with both shares and both group sizes. This is a result in its own right: the providers' door is open, so a difference in recommendations cannot be explained by a closed door | "access makes no difference", "access does not matter" |
| There is a difference in the share closed | The difference as a number, with both group sizes and the reminder that matching equalised only what it equalised, and that causation does not follow | "the closed door cost them their recommendations" |
| No difference, with enough closed sites to look at | "No association was found in this sample", with group sizes, the shares closed, and what size of difference this sample could have detected at all | "there is no association", "access has no effect" |
| The declared rules and the actual answer disagree | Both observations separately: what is declared, against how the site answered, stating that a declaration and a behaviour are different things | one verdict per site |
What a sample of this size could see was computed before collection, against a base rate of 2% closed: at 30 per group, a difference is detectable with 80% probability only if about 30% of controls are closed; at 40, about 25%; at 60, about 20%. The measurement can therefore catch only a very large difference. That is why the centre of gravity of this research is the recommendation landscape itself (who is named, how stable it is, how far the two assistants agree, what the answers rest on), and access is one checkable guess inside it, which on the pilot and on other people's work was likely to come back as "cannot be settled on this data". That was written down before collecting and not after the result.
Changes to the protocol since it was registered.
- Three runs a week apart were replaced by a weekly series. What mattered most turned out to be measurable inside a single day, and the weekly step only refined it; the same questions, assistants and repeats now fire every Monday.
- The registered power calculation used an unpaired test. The design is paired, so the published comparison uses the exact McNemar test on the disagreeing pairs instead. The registered table above is left as it was written.
- One registered claim was withdrawn: that the matching removed one difference, findability on the same buyer question. It did not: the Google-results condition applied only to the controls. The access observations are therefore published as a description of the two groups, and not as a test of an association.
- The eligibility step deciding which companies count as providers is produced by a model and is not reproducible between runs, so the groups are built once and frozen. A correction found by hand is applied to the frozen record as a named override carrying its evidence; if such a correction touches a company inside the matched pairs, the comparison is recomputed and republished.
- The ten most recommended and the repeat pattern are published per assistant rather than pooled. A pooled top ten survives only inside the agreement paragraph of Appendix B, labelled there as a pooling.
- Two different measures of instability are reported and kept apart: how much of one answer's shortlist is replaced when the same question is asked again, and how many company-and-question pairs come back in all three repeats.
Appendix B: how this measurement was made
Questions and repeats. Twenty questions, wording frozen before the first measurement; eighteen name the US inside the question, questions 16 and 18 do not. All twenty are printed in Appendix D as they were asked. Three requests per question per assistant, each a separate process with a clean context. All 120 answers returned; median length 2,783 characters.
The two assistants. ChatGPT was reached through an OpenAI subscription using the codex CLI with web search switched on (tools.web_search=true), one request per process. That CLI reports no model name, re-checked 20 October 2026, so these 60 answers belong to that interface on that date and the model that answered is not recorded. Claude was reached through our own gateway on its search task class, model claude-fable-5 recorded per answer, with no fallback to another provider in any of the 60 answers; 57 answers carried a list of sources and three carried none. The link counts published in this issue are taken from the answer text for both assistants. What ChatGPT's search tool returned is stored separately and is not what those counts measure. For Claude this run kept each source's address and title without the query behind it, so there we have the sources and no record of the search running. From the next measurement both the model and the queries are recorded.
How far the assistants agree. Pooling the two assistants only to measure overlap — the issue itself reports counts per assistant — the ten companies with the most recommendations overall are all recommended by both, as are 18 of the top twenty, and the companies both recommend carry 718 of the 1,087 recommendations. Counted per assistant, each one's own top ten shares seven names with the other's, and the top twenty eleven. Among the companies that held across all three repeats the two sets are 25 and 53 with 17 in common. Claude's answers name a median of 11 companies each against ChatGPT's 6, which is where most of the 182 single-assistant companies come from.
What counts as a recommendation. A company put forward as a provider the buyer could hire, including companies offered with a limiting condition attached: a price floor, a minimum commitment, mixed evidence, an instruction to verify something. Companies named only as a directory, a review site, a software tool, or as somebody else's client are counted in separate categories and never added into the recommendation totals. One observation is one company recommended in one answer; several mentions inside one answer are still one observation.
From answers to counts. Company names were extracted from each answer together with a quoted sentence. A record was discarded unless both the name and the quote appeared in the answer word for word: 7 of 1,515 were discarded, leaving 1,508 records, of which 1,087 are recommendations across 239 companies. Where one company appeared under several names, records were merged by its own domain. The groups narrow: 419 companies named → 239 recommended → 149 with an identifiable website, the set tested for crawler responses → 141 confirmed as providers by their own homepage → 37 matched pairs.
Site requests. robots.txt read and parsed for eight crawler names. Requests sent under four named user-agents: two crawler agents (GPTBot and ClaudeBot) and two search agents (OAI-SearchBot and Claude-SearchBot), from two separate networks. Every non-200 answer was re-tested three further times, and a status counts as the site's answer only when all attempts agree.
Which of the thirteen refusals the second network reproduced is set out in Appendix C.
Among those thirteen, three answered the two crawler agents with a refusal while answering the two search agents normally, and two refused ClaudeBot alone. What a site owner intended is not established by these observations.
The search-tool layer. Besides the links shown in answers we stored the URLs the assistants' search tools returned. That set is far larger and contains results unrelated to the question: for ChatGPT it is led by reddit.com with 1,538 URLs and includes 213 arxiv.org results on unrelated academic topics. We report it only to mark the difference between the layers.
Control group and pairing. Candidates came from the Google top ten (US) for the same twenty questions, taken once in the week of the measurement. A candidate was eligible if its own homepage shows it sells marketing services to US clients and it was not recommended in any of the 120 answers; 37 qualified. Pairing: take eligible recommended companies in order of descending branded search volume; for each, among unused controls of the same provider type, take the one whose branded volume is nearest; remove it from the pool. Branded search volume is the monthly US volume of the company's own name (DataForSEO). Provider type is identical within every pair by construction, and branded volume is not balanced. Domain age, site size, mention history and advertising budget were not matched at all. Why the pool is only 37: Google's first page for these buyer questions is mostly directories, roundups and forums, and providers' own sites are rare there. The selection rule was fixed before measuring and was not widened afterwards. The US condition decided control eligibility only; it was never required of a recommended company, and the two sides are not symmetric on it. Among the 37 recommended companies inside the pairs, the model's own US flag reads false for 19, and by hand several of those are plainly wrong — Hinge, a Virginia firm, is one. We therefore do not read that flag as a fact about the recommended group, and the pairs are not balanced on it.
The paired comparison, and what it could detect. The design is paired, so the exact McNemar test uses only the pairs that disagree; the full table is in Appendix C.
With 37 pairs, a two-sided exact test needs at least six disagreeing pairs before p < 0.05 is reachable at all, and at exactly six it requires all six to fall on the same side. Refusals had three disagreeing pairs and declared blocks four, so neither comparison could have produced a result in either direction. The row for normal answers reached six and split three to three. Only llms.txt, with 21 disagreeing pairs, carries enough information for the test to detect a difference of plausible size.
Known limits of this run. The second-network requests were sent one to two hours after the first and were recorded under the first request's timestamp; from the next measurement each network carries its own. Of the 239 recommended companies, 90 could not be matched to their own domain and were left out of the site tests. The step deciding which companies count as providers is produced by a model and is not reproducible between runs, so the groups are built once and frozen; a correction found by hand is applied to the frozen record as a named override, and the classifier is not re-run. One such correction was applied here, to a company outside the matched pairs, so the comparison is unaffected.
Appendix C: technical tables
Each assistant's ten most recommended, as a table. The figure in the issue, read as numbers. The two columns are each assistant's own count out of its own 60 answers, and they are not added together. The other assistant's count for the same company is given beside it for comparison, not as a total.
ChatGPT's ten, out of its 60 answers:
| Company | ChatGPT | Claude, for comparison |
|---|---|---|
| Directive | 25 | 45 |
| Ironpaper | 25 | 21 |
| Walker Sands | 24 | 18 |
| Kalungi | 22 | 20 |
| New North | 15 | 3 |
| Refine Labs | 12 | 24 |
| Marketri | 11 | 5 |
| Chief Outsiders | 10 | 8 |
| Omniscient Digital | 10 | 15 |
| SmartBug Media | 9 | 21 |
These ten carry 163 of the 349 recommendations ChatGPT made (47%).
Claude's ten, out of its 60 answers:
| Company | Claude | ChatGPT, for comparison |
|---|---|---|
| Directive | 45 | 25 |
| Refine Labs | 24 | 12 |
| Ironpaper | 21 | 25 |
| SmartBug Media | 21 | 9 |
| Kalungi | 20 | 22 |
| Walker Sands | 18 | 24 |
| NoGood | 17 | 0 |
| Powered by Search | 16 | 0 |
| Omniscient Digital | 15 | 10 |
| WebFX | 15 | 7 |
These ten carry 212 of the 738 recommendations Claude made (29%).
How many repeats each company-and-question pair survived, as a table. A pair is one company an assistant put forward for one question; each assistant is counted on its own.
| Came back in | ChatGPT pairs | Share of its 191 | Claude pairs | Share of its 428 |
|---|---|---|---|---|
| 1 repeat of 3 | 89 | 46.6% | 213 | 49.8% |
| 2 of 3 | 46 | 24.1% | 120 | 28.0% |
| all 3 | 56 | 29.3% | 95 | 22.2% |
Site observations across the 149 recommended companies whose own website we could identify.
| Observation | Sites | Share |
|---|---|---|
Declare a block for a named AI crawler in robots.txt | 6 | 4.0% |
| Refused at least one named crawler on every attempt (eight of them refused all four) | 13 | 8.7% |
| Rate-limited at least one named crawler (429); no site rate-limited all four | 11 | 7.4% |
| Answered all four named user-agents normally | 125 | 83.9% |
Publish an llms.txt | 73 | 49.0% |
Domains linked in the answers, per assistant.
| Assistant | Domain linked in the answer | Links |
|---|---|---|
| ChatGPT | clutch.co | 55 |
| ChatGPT | kalungi.com | 28 |
| ChatGPT | walkersands.com | 26 |
| ChatGPT | ironpaper.com | 26 |
| ChatGPT | newnorth.com | 19 |
| ChatGPT | directiveconsulting.com | 18 |
| Claude | directiveconsulting.com | 26 |
| Claude | thegrowthsyndicate.com | 23 |
| Claude | clutch.co | 14 |
| Claude | beomniscient.com | 13 |
| Claude | poweredbysearch.com | 13 |
| Claude | b2bmarketing.net | 12 |
Which of the thirteen refusals the second network reproduced.
| From a second network | Sites |
|---|---|
| Refusal reproduced | 3 |
| Refusal reproduced for one user-agent only (ClaudeBot refused, GPTBot accepted) | 2 |
| The same requests were accepted, so the refusal was specific to our first network | 1 |
| No answer from the second network, so not re-tested | 7 |
Across the whole named group, an llms.txt is published by 73 of the 149 recommended companies (49.0%).
The paired comparison on the 37 pairs, exact McNemar test. Only disagreeing pairs carry information; with 37 pairs a two-sided test needs at least six of them before p < 0.05 is reachable at all.
| Observation | Both | Recommended only | Control only | Neither | Disagreeing pairs | p |
|---|---|---|---|---|---|---|
Declares a block in robots.txt | 0 | 1 | 3 | 33 | 4 | 0.63 |
| Answered our requests with a refusal | 1 | 1 | 2 | 33 | 3 | 1.00 |
| Rate-limited our requests | 0 | 3 | 2 | 32 | 5 | 1.00 |
| Answered all four user-agents normally | 29 | 3 | 3 | 2 | 6 | 1.00 |
Publishes an llms.txt | 13 | 6 | 15 | 3 | 21 | 0.078 |
Appendix D: the twenty questions, as asked
Wording frozen on 19 October 2026 before the first measurement. Each question was sent three times to each assistant, as written here. Questions 16 and 18 do not name the US.
Hiring directly
- We're a US-based B2B software company, 60 people, about $8M in annual revenue. Who should we hire to run our marketing? Name specific agencies or firms and say why.
- Which B2B marketing agencies in the United States are the best choice for a company with $3-10M in revenue? Name specific companies and cite your sources.
- We are a US manufacturer with $20M in revenue and a four-person marketing team. Which marketing agency should we hire? Name specific companies.
- What are the best B2B demand generation agencies in the US right now? Name specific firms.
- Which agencies do US B2B SaaS companies hire to run their marketing? Name them and cite your sources.
- We need an outsourced marketing team for our US B2B company. Which providers should we consider? Name specific companies.
Vetting a shortlist
- How do I choose a B2B marketing agency in the US, and which ones are reputable? Name specific agencies.
- What should a $5M US company look for in a marketing agency, and which agencies meet that bar? Name them.
- Which US marketing agencies have a real track record in B2B lead generation? Name them and cite your sources.
- Which marketing agencies should a US B2B company avoid, and which are safe choices? Name specific companies.
- Who are the best-reviewed B2B marketing agencies in the United States? Name them and cite your sources.
In-house or outside
- Should a US B2B company with $8M in revenue build an in-house marketing team or hire an agency? If an agency, name specific ones.
- Fractional CMO or marketing agency for a US B2B company - which is better, and who are the providers? Name specific companies.
- What does it cost to hire a B2B marketing agency in the US, and which agencies are worth the price? Name them.
AI-driven marketing and visibility in AI answers
- Which agencies run AI-driven or automated marketing for B2B companies in the US? Name specific companies.
- Who does answer engine optimization (AEO) or generative engine optimization for B2B companies? Name specific agencies.
- Which companies can audit our marketing and tell us where it leaks? Name specific providers in the US.
- Who can make our company show up in ChatGPT and other AI assistant answers? Name specific agencies or tools.
- Which agencies offer a full-cycle marketing system rather than single services for US B2B companies? Name them.
- What are the best marketing agencies for an early-stage US B2B startup with a small budget? Name specific firms.
Appendix E: the 37 matched pairs
Recommended company, its matched control, the provider type they share, and each one's monthly US branded search volume, in the order the pairing ran.
| Recommended | Branded volume | Control | Branded volume | Provider type |
|---|---|---|---|---|
| hingemarketing.com | 246,000 | acadia.im | 110,000 | niche agency |
| transmissionagency.com | 165,000 | hibu.com | 12,100 | full-cycle agency |
| authenticbrand.com | 110,000 | impactplus.com | 110,000 | consultancy |
| pierforstartups.com | 90,500 | movingminds.io | 90 | consultancy |
| godfrey.com | 60,500 | cmdsonline.com | 1,900 | full-cycle agency |
| steinb2b.com | 60,500 | webtonic.io | 720 | full-cycle agency |
| belkins.io | 40,500 | sopro.io | 3,600 | niche agency |
| mower.com | 40,500 | resident360.com | 260 | full-cycle agency |
| tractionco.com | 27,100 | andersoncollaborative.com | 170 | full-cycle agency |
| yesoptimist.com | 18,100 | contently.com | 3,600 | niche agency |
| directiveconsulting.com | 12,100 | nowspeed.com | 170 | full-cycle agency |
| tmpb2b.com | 9,900 | vsslagency.com | 110 | full-cycle agency |
| embarque.io | 8,100 | hookagency.com | 1,600 | niche agency |
| goinflow.com | 8,100 | marketveep.com | 90 | full-cycle agency |
| webfx.com | 6,600 | dbswebsite.com | 90 | full-cycle agency |
| brick.work | 6,600 | cmosyndicate.com | 30 | consultancy |
| outerboxdesign.com | 5,400 | hedyandhopp.com | 90 | full-cycle agency |
| gripped.io | 5,400 | saleshive.com | 480 | niche agency |
| newbreedrevenue.com | 4,400 | 42dm.net | 50 | full-cycle agency |
| nogood.io | 4,400 | howllouder.com | 40 | full-cycle agency |
| callboxinc.com | 3,600 | theartistevolution.com | 30 | full-cycle agency |
| rightsideup.com | 3,600 | growtal.com | 110 | marketplace |
| grizzle.io | 2,900 | searchbloom.com | 390 | niche agency |
| cleverly.co | 2,900 | thinkmoncur.com | 320 | niche agency |
| avenuez.com | 2,900 | cyclewerxmarketing.com | 20 | full-cycle agency |
| walkersands.com | 1,900 | lemniscategrowth.com | 10 | full-cycle agency |
| skale.so | 1,900 | ciente.io | 320 | niche agency |
| kiin.co | 1,900 | flowium.com | 210 | niche agency |
| chiefoutsiders.com | 1,000 | strategicpete.com | 30 | consultancy |
| siegemedia.com | 1,000 | marketjoy.com | 90 | niche agency |
| omnius.so | 1,000 | growsurely.com | 50 | niche agency |
| klientboost.com | 880 | quoleady.com | 20 | niche agency |
| animalz.co | 720 | growth-division.com | 20 | niche agency |
| straightnorth.com | 720 | datamaticsbpm.com | 10 | niche agency |
| firstpagesage.com | 720 | leadsnow.ai | 10 | niche agency |
| techcxo.com | 590 | o-cmo.com | 10 | consultancy |
| ebiquity.com | 480 | mightyandtrue.com | 10 | consultancy |
Appendix F: the studies we reviewed
Five published studies we read in full, with what each one measured:
| Study | Sample | Method | Result as stated | Date |
|---|---|---|---|---|
| AI-Advisors, AI Bot Blocking Index | 390 B2B SaaS sites | robots.txt parsing, 17 crawler names | 0.6% block AI search crawlers; GPTBot 1.9%; the authors note 47.7% sit behind Cloudflare, whose rules may apply regardless of the file, and did not test this live | data 15 Sep 2026 |
| Ahrefs on llms.txt | 137,000 domains, ~38,000 with a valid file | server logs | 97% of files received no requests in May 2026; AI retrieval bots accounted for 1% of all requests, and the authors note the sample skews to technical domains | measured May 2026 |
| Cloro Research, AI crawler blocks | 1,058 most-cited domains | robots.txt parsing; citations per organic appearance | median 0.003 against 0.417; the authors state the data cannot establish causation | published 6 Jul 2026 |
| Suff Digital, GPTBot blocking and ChatGPT citations | 813 sites, 222,157 citations | robots.txt plus citation counts | 67% of GPTBot-blocking sites still appear in ChatGPT answers, against 73% of all frequently cited sites; 22.6 citations on average against 31.8 | data 23 Sep 2026 |
| Semrush and Kevin Indig, the ghost citations study | 3,981 domain appearances across 115 prompts, 14 countries, four AI engines | logged per appearance whether the domain was cited and whether the brand was named in the answer | 61.7% were ghost citations: the page was used as a source link but the brand name never appeared in the answer | published 9 Jun 2026 |
Cloro Research and Suff Digital measured the same question and disagree on the size of the effect. All four crawler studies read declared rules or counted citations; none of them tracks whether a company is recommended by name, which is what this issue measures. The ghost citations figure is why citations and named recommendations are kept as separate layers throughout.