gaash.ai

Marketing agencies

Before the RFP goes out, an assistant may already have named three agencies.

A marketing director types "B2B demand generation agency for industrial manufacturers, mid-size budget, US" into ChatGPT and gets five names. An agency that sells visibility is judged on its own. GEO for marketing and advertising agencies starts with what your site states about services, industries, engagement model and the people who do the work.

A buyer's question about an agency asks for what the agency's own site can state: the services by their plain names, the industries it works in, how it engages (retainer, project, a stated minimum), who does the work, and the clients or work it may name. Whatever is only in a deck or a pitch is not in the answer.

How your customers ask

How buyers ask for an agency when they have a budget and a problem

“b2b marketing agency for industrial manufacturers with experience in trade shows and linkedin ads”
“small paid media agency in Chicago that works on a monthly retainer for a restaurant group”
“agency that does seo and geo for law firms and what they charge”
“best branding agencies in Toronto for a consumer packaged goods launch”
“marketing agency for a nonprofit with a small budget that will do email and social”

A service, an industry and a budget, all in one question

Agency questions have three parts: a service (paid media, SEO, branding, content, PR), an industry (manufacturers, restaurants, law firms), and a budget or engagement word (retainer, project, small). With web search on, an AI assistant has only what agency sites state to answer all three from. "Full-service digital agency" answers the service part with nothing in particular, and the industry part with nothing at all.

The budget part is the one a site can leave unanswered without anyone noticing. "Pricing depends on scope" is true, and useless to a buyer who typed a budget. You do not need a rate card; you need the engagement model and the minimum in text: retainers from a stated monthly minimum, projects scoped after a fixed-fee discovery, the smallest engagement you take. A page that states no budget has nothing to say to a buyer who typed one.

Your site is also a work sample. A buyer who asks for an agency and gets five names has just watched an answer be shaped by the kind of work they are buying. If your own site has no business schema, no page that answers a question and three phone numbers, that is the sample they were shown. Nothing in the pitch deck corrects it, because the deck comes later.

What an agency site has to state for an assistant to shortlist it

An assistant reading your agency is reading your HTML, fetched the way an AI crawler fetches it; OpenAI's documentation names ChatGPT-User as the fetcher that opens a page for a ChatGPT user. It reads text. A logo wall is an image to it; a list of clients in a sentence is a list of clients.

What an agency's site has to state, where, and in what form.
What to stateWhere it belongsIn what form
Services by their plain namesOne page per service"Paid search", "LinkedIn ads", "SEO and GEO", "brand identity", "PR"; not "integrated growth solutions"
IndustriesAn industries page, or a line on each service pageThe industries by name, each with one or two named clients or projects where you may name them
Engagement modelA "how we work" pageRetainer, project or both; the stated minimum; typical length; what a first month contains
Who does the workTeam pagePeople by name and role, as text, with what each has done; headcount; in house or contractors
Clients and workCase studies as HTML pagesThe client where permitted, the brief, what was done, the measured result and how it was measured; not a logo wall, not a PDF
Location and reachContact page and markupThe office address once; the markets you serve, by name, as areaServed
ReviewsHomepage or a reviews pageClient reviews quoted as text, with a name and company where permitted, the date and the platform; no platform rating in the markup
The business typeJSON-LD on every pageOrganization, or LocalBusiness if clients visit an office, with address, telephone, areaServed, sameAs, and a Service node per service

schema.org has no agency type, and ProfessionalService, the LocalBusiness subtype older guides suggest, is marked deprecated there. Google's organization documentation lists the Organization fields it reads: name, url, logo, sameAs, contact points. sameAs ties the agency on your site to the agency on the profiles you keep elsewhere, and each service can be a Service node with serviceType and areaServed. JSON-LD is the format Google recommends, stating only what a visitor to the page could also read.

Case studies do the work of reviews in this trade, and a case study that lives in a PDF behind a form does none of it for a crawler. In our audit of 9,483 small business websites (40 trades, 90 metros, late August to early September 2026), 2.1% of sites kept their real substance in a PDF. The same study as an HTML page, with the brief, the work and the measured result, is a page an assistant can quote.

What our crawl found, and the two figures agencies should read twice

The audit's crawler ran no JavaScript and obeyed robots.txt, fetching the homepage, the contact page and the about page of each site. It publishes no separate cut for agencies; the figures describe the whole sample, and the method section says how it was drawn.

17.8% of sites had no schema.org markup at all; of the 82% that did, most of it described the website (WebSite, WebPage, BreadcrumbList) rather than the business, and 13.7% had business schema missing the fields that would make it usable. For a trade that bills clients for structured data, those are the figures to read twice.

Three sites in five (61.5%) carried no question-and-answer content at all, and half (50.7%) asked a question in a heading without answering it anywhere a machine could lift. "Why choose us?" over three adjectives is the agency version.

43.1% were inconsistent about who and where they are across their own three pages, and 36.9% published more than one phone number. Nearly two thirds (64.7%) gave a crawler no review signal to read; 8.9% carried rating markup.

In the audit's probe, one buyer question per business put to Claude with web retrieval on named 14.9% of 9,240 businesses, and 17.7% among the 5,928 answers that gave a differentiated list rather than a hedge: one assistant, one question, one day, a direction rather than a rate. Of every name given, 99.4% were actual businesses and 0.6% were directories or aggregators. The answer names agencies, not agency directories.

What to fix first, in order, on your own site before a client's

  1. One agency name, one address and one phone number, in text on every page and in the markup.
  2. One page per service in its plain name, each naming the industries you work in and stating the engagement model and the minimum.
  3. A team page with people, roles and what each has done, as text.
  4. Case studies as HTML pages: the client where permitted, the brief, the work, the measured result and how it was measured.
  5. Organization (or LocalBusiness for an office clients visit) in JSON-LD on every page, with sameAs to the profiles that are yours and a Service node per service, describing only what the page shows.
  6. The questions buyers ask on a first call (what you charge, who does the work, what the first month looks like), as headings with a real answer under each.
  7. Client reviews as text where permitted, with a name, the date and the platform. Google's review snippet rules say not to aggregate ratings from other websites, and a business that controls the reviews about itself is not eligible for review stars, so keep platform ratings out of the markup.
  8. Check what a crawler receives: the crawler access check for robots.txt, and the source of a service page with scripts off. Then run the same eight steps on a client's site.

None of this guarantees a place in the answer; no agency has a lever inside these systems, ours included. What it does is take away the reasons an assistant could not shortlist you, and the measurement shows whether it now does.

What agency principals ask

We are an agency. Why would we not do this ourselves?

You can, and the order above is where to start. What it leaves out is the measurement: a fixed panel of twelve buyer questions put to Claude with live web search, every answer kept word for word and scored the same way each time, before the fixes, once they are live and every month with monitoring, so a change on the site can be set beside a change in the answers. That is what we sell, at the prices on the pricing page.

Our clients come from referrals and pitches. Where does an assistant come in?

Before the reply to the referral. The person who was given your name may ask an assistant about you and about two alternatives, and what it says is drawn from what it can read. In our probe of 9,240 businesses, one buyer question put to Claude named 14.9%: a direction, not a rate. A referral that survives that check is the one that turns into a meeting.

Should we publish pricing?

Publish the engagement model and the minimum: retainer or project, the smallest engagement you take, what a first month contains. That is not a rate card, and it answers the budget part of the buyer's question, the part a page that says "it depends" leaves blank.

What is the right schema type for an agency?

LocalBusiness if clients visit an office; Organization if they do not. ProfessionalService, which older guides suggest, is marked deprecated on schema.org. Either way, add sameAs links to the profiles that are yours, describe each service as a Service node with serviceType and areaServed, and keep the values identical to the visible page. In the audit, 13.7% of sites had business markup with the useful fields left empty.

Sources: our audit of 9,483 small-business sites, with its method · Google, organization structured data · Google, introduction to structured data · Google, review snippet · schema.org, LocalBusiness · schema.org, Service · schema.org, sameAs · OpenAI, crawler documentation