Somebody sold you schema as the secret door into ChatGPT. A plugin, a checkbox, a line item on a proposal. You installed it. Nothing happened. Now you're not sure it does anything at all.
Here's the straight answer. Schema markup for AI search is a way to state your facts (who you are, what you do, who runs the firm, where you work) in a format machines can read without guessing. Its job is clarity: it removes the ambiguity that gets a firm skipped. Google itself says no special schema is required to appear in AI Overviews, so treat schema as a precision tool and keep your expectations honest.
Does schema markup help you show up in AI search?
Yes, as a clarity layer, and only when it matches what's on the page. Google's own guidance on AI features says no special schema, AI text files, or markup is required to appear in AI Overviews or AI Mode, and that standard SEO applies, including "making sure your structured data matches the visible text on the page" (Google Search Central). Schema helps every system that parses it read your facts without guessing. It can't rescue a page that says nothing specific.
Where schema fits in the CITE Framework
Schema is one piece of generative engine optimization, and a smaller piece than people think. In our CITE Framework, it lives under the second letter.
- C is for Claim. The specific, checkable sentence about who you serve, what you do, where, and what happened.
- I is for Instrument. Making the page machine-readable: question headings, direct answers, clean HTML, AI crawlers allowed, and schema that matches the visible text.
- T is for Testimony. Named client results, reviews, and third-party mentions.
- E is for Evidence. Named sources, dates, and bylines with real credentials.
Order matters. Claim comes first. If your About page says "we deliver tailored solutions for discerning clients," perfect JSON-LD gives a machine a very precise version of nothing. Write the claim. Then instrument it.
The research backs that order. The Princeton and IIT Delhi GEO study (Aggarwal et al., KDD 2024) found that GEO methods "can boost visibility by up to 40% in generative engine responses," and that adding quotations, statistics, and source citations were among the top performers (arXiv). Those are content moves. Schema makes sure the content behind them gets attributed to the right firm, the right partners, and the right services.
Why bother, then? Because the summary is becoming the introduction. Pew Research Center found that Google users who saw an AI summary clicked a traditional result in 8% of visits, against 15% when no summary appeared (Pew Research Center). Fewer clicks means the facts inside the answer carry more weight. You want those facts to be yours, and correct.
The schema types a B2B service firm actually needs
Eight types. Most firms need the first six on day one. For each: what it is, where it goes, and the mistake we see most.
1. Organization
The master record of your firm. Name, URL, logo, description, founding date, contact point, and the property that matters most here, sameAs.
Where it goes: your homepage, with a stable @id (for example https://www.yourfirm.com/#organization) that every other block points back to.
Lean on sameAs. List your LinkedIn company page, your Google Business Profile, industry directories, and association listings. That's how a machine connects the firm on your site to the firm other sources talk about. It's the bridge between Instrument and Testimony.
The mistake: name drift. "Harbor Point Advisory" on the site, "Harbor Point Advisors LLC" on LinkedIn, "HPA" in the directory. Pick one name and use it everywhere.
2. ProfessionalService (or another LocalBusiness subtype)
ProfessionalService is a subtype of LocalBusiness in the Schema.org vocabulary, which is itself a subtype of Organization. So it carries everything Organization does, plus address, geo coordinates, opening hours, and areaServed. If a more specific subtype fits (AccountingService, LegalService, RealEstateAgent), use that.
Where it goes: usually the same homepage block, typed as ProfessionalService in place of plain Organization. Multi-office firms add one per location page.
The mistake: an address in the markup that doesn't match your Google Business Profile, or a street address marked up when the site shows none. Mark up what a visitor can see.
3. Person
One for each founder or partner. Name, jobTitle, worksFor (pointing to your organization's @id), alumniOf, knowsAbout, sameAs (LinkedIn, speaker pages, podcast appearances), and the URL of their bio page.
Where it goes: each partner's bio page, and referenced as the author on every article they write.
The mistake: a knowsAbout list of forty buzzwords. Keep it to the four or five topics the bio actually covers. And if the bio shows no credentials at all, fix the bio first. Schema can only describe what the page already says.
4. Service
One per service you sell. Name, serviceType, description, provider (your organization's @id), areaServed, and an audience if you serve a defined buyer.
Where it goes: each service page.
The mistake: one "Services" page with eight offerings crammed into a paragraph and markup claiming all eight. Give each real service its own page and its own block.
5. Article or BlogPosting
Headline, author (a Person with a real @id), datePublished, dateModified, publisher, image.
Where it goes: every post in your insights section.
The mistake: an author of "admin," or a dateModified that changes every time someone fixes a comma. Dates are provenance. Show them on the page and keep them honest.
6. FAQPage
Question-and-answer pairs. Here's the caveat a lot of agencies still skip: in 2023, Google limited FAQ rich results to well-known, authoritative government and health sites. Your firm's FAQ markup will very likely never produce an expandable result in Google.
Add it anyway, where a real FAQ appears on the page. It hands machines clean question-and-answer structure, which is the same shape buyers use when they type a prompt.
The mistake: marking up questions that don't appear on the page, or paying anyone who promises FAQ rich results.
7. BreadcrumbList
Home, Insights, this post. It tells a machine where a page sits in your site.
Where it goes: every page below the homepage, usually generated by your CMS.
The mistake: breadcrumbs in the markup that don't exist in the visible navigation, or that point to category URLs that return a 404.
8. Review and AggregateRating, with a caveat
Google doesn't show review stars for reviews a business marks up about itself on its own Organization or LocalBusiness pages. Self-serving reviews aren't eligible. The 4.9-star plugin on your homepage won't produce stars.
Put testimonials on the page as visible text, with full names and full company names. Let your reviews live on your Google Business Profile and third-party directories, and point to them through sameAs. That's where they count as Testimony.
One complete example: a firm in a single graph
Say you run Harbor Point Advisory, a sell-side M&A firm in Charlotte, North Carolina, founded in 2014 by a managing partner named Dana Whitfield. The firm, the person, and the domain are all invented for this example.
Here's the JSON-LD for the homepage, combining the firm, the founder, and the flagship service in one @graph:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "ProfessionalService",
"@id": "https://www.example.com/#organization",
"name": "Harbor Point Advisory",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/harbor-point-advisory-logo.png",
"description": "Harbor Point Advisory is a sell-side M&A advisory firm in Charlotte, North Carolina, that represents owners of founder-led lower-middle-market companies when they sell.",
"foundingDate": "2014",
"telephone": "+1-704-555-0142",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street, Suite 400",
"addressLocality": "Charlotte",
"addressRegion": "NC",
"postalCode": "28202",
"addressCountry": "US"
},
"areaServed": [
{ "@type": "State", "name": "North Carolina" },
{ "@type": "State", "name": "South Carolina" }
],
"knowsAbout": ["Sell-side M&A", "Business valuation", "Exit planning"],
"founder": { "@id": "https://www.example.com/team/dana-whitfield/#person" },
"sameAs": [
"https://www.linkedin.com/company/example-harbor-point-advisory",
"https://maps.google.com/?cid=1234567890123456789",
"https://www.example-directory.org/firms/harbor-point-advisory"
]
},
{
"@type": "Person",
"@id": "https://www.example.com/team/dana-whitfield/#person",
"name": "Dana Whitfield",
"jobTitle": "Managing Partner",
"url": "https://www.example.com/team/dana-whitfield/",
"image": "https://www.example.com/images/dana-whitfield.jpg",
"worksFor": { "@id": "https://www.example.com/#organization" },
"alumniOf": {
"@type": "CollegeOrUniversity",
"name": "Wake Forest University"
},
"knowsAbout": ["Sell-side M&A", "Founder-led business exits", "Buyer outreach"],
"sameAs": ["https://www.linkedin.com/in/example-dana-whitfield"]
},
{
"@type": "Service",
"@id": "https://www.example.com/services/sell-side-advisory/#service",
"name": "Sell-Side M&A Advisory",
"serviceType": "Sell-side mergers and acquisitions advisory",
"url": "https://www.example.com/services/sell-side-advisory/",
"description": "Harbor Point Advisory runs the full sale process for founder-led companies, from valuation and buyer outreach through letter of intent and closing.",
"provider": { "@id": "https://www.example.com/#organization" },
"areaServed": [
{ "@type": "State", "name": "North Carolina" },
{ "@type": "State", "name": "South Carolina" }
],
"audience": {
"@type": "BusinessAudience",
"audienceType": "Owners of founder-led companies preparing to sell"
}
}
]
}
A few things to notice.
The @id values are the glue. The Person block says Dana works for #organization. The Service block says #organization provides it. A machine reads three connected facts in place of three loose ones.
Everything in it has to be visible somewhere on the site. If Dana's bio never mentions Wake Forest, alumniOf comes out. If the homepage doesn't say "founder-led lower-middle-market companies," the description gets rewritten to match what it does say.
It goes in a <script type="application/ld+json"> tag in the page's head. Hand this post to whoever runs your site and they'll know what to do.
Ask Claude to draft your schema
You don't need to write this by hand. Turning text you already have into structured data is one of the best everyday uses for an AI assistant. Copy this prompt into Claude or ChatGPT, fill in the brackets, and paste your page text at the bottom.
You are helping me write JSON-LD structured data for my firm's website.
Below is the text of my About page, each partner's bio, and my service pages.
Using ONLY facts that appear in this text, write one JSON-LD block that uses
@graph and includes:
1. A ProfessionalService entity for the firm with @id, name, url, logo,
description, address, areaServed, foundingDate, and sameAs.
2. A Person entity for each partner with @id, name, jobTitle, url, worksFor,
alumniOf, knowsAbout, and sameAs.
3. A Service entity for each service with @id, name, serviceType, description,
provider, and areaServed.
Rules:
- Do not invent any fact, credential, date, review, rating, or URL.
- If a property has no supporting text, leave it out and list it for me
after the code so I can decide whether to add it to the page.
- Use https://www.[MYDOMAIN].com as the base for every @id.
- Connect the entities with @id references (worksFor, provider, founder).
My sameAs links:
- Firm LinkedIn: [URL]
- Google Business Profile: [URL]
- Directory or association listings: [URLs]
- Each partner's LinkedIn: [URLs]
Page text:
[PASTE HERE]
Then check its work. Two tools, both free.
Run the output through Google's Rich Results Test (https://search.google.com/test/rich-results). It shows whether Google can parse the markup and flags errors. Many of these types (Person, Service) won't show an eligible rich result. That's expected and fine.
Then run it through the Schema.org validator (https://validator.schema.org/), which checks every property against the vocabulary.
Last step, and the one people skip: read every value against the live page. AI drafts get the syntax right and occasionally invent a founding year or a LinkedIn URL. One wrong fact in your markup is worse than no markup.
What order to do this in
If you're starting from zero, here's the sequence.
- ProfessionalService or Organization on the homepage, with
sameAs. - Person on every partner bio.
- Article or BlogPosting on every post, with a real author and honest dates.
- Service on each service page.
- BreadcrumbList site-wide.
- FAQPage wherever a real FAQ is visible.
Then confirm your robots.txt lets AI crawlers in, because perfect markup on a blocked page helps no one. The AEO checklist for B2B service firms covers that and the other technical moves in order.
And keep the bigger picture in view. In 2026 we restructured RE/MAX Commercial Advisors Group's site content for AI answer engines. Afterward, Patrick J. Buckhoff, CCIM, reported: "Recently I've gotten three calls inbound that people found us online. Two from chat, one from Claude." Schema helps state a firm's facts cleanly. The facts themselves have to be on the page first, which is the whole subject of how to make your website citable by AI.
Structured data is a small, durable piece of generative engine optimization. Do it once, do it accurately, and update it when your firm changes.
Frequently asked questions
Do I need schema markup to appear in Google AI Overviews? No. Google says no special schema, AI text files, or markup is required to appear in AI Overviews or AI Mode, and standard SEO applies. Schema still helps by stating your facts in a format machines can read without guessing, as long as it matches the visible text on the page.
Do ChatGPT and Claude read JSON-LD schema? There is no public promise that they give it special weight, so don't add schema on that assumption. What schema reliably does is make the facts on your page unambiguous for every system that parses it, and Google uses it. The visible text on the page still does the heavy lifting.
Which schema type should a B2B service firm add first? Start with Organization, or ProfessionalService if you serve clients from a physical office, on your homepage. Give it a stable @id, your exact legal or brand name, and sameAs links to your LinkedIn company page, Google Business Profile, and directory listings. Then add Person markup for each partner.
Will FAQPage schema get my firm rich results in Google? Probably not. In 2023 Google limited FAQ rich results to well-known, authoritative government and health sites. FAQPage markup is still worth adding where a real FAQ appears on the page, because it gives machines clean question-and-answer structure.
Can I use AI to write my schema markup? Yes, and it's a good use of it. Give Claude or ChatGPT your page text and tell it to use only facts that appear in that text. Then run the output through Google's Rich Results Test and the Schema.org validator, and check every value against the live page before you publish.
If your partners' names, services, and proof are scattered across a site that says them three different ways, that's the place to start.