2026-08-01 · Jack Stovell
Person and Organization schema that AI actually uses
Schema.org markup has a reputation as an SEO ritual: paste some JSON-LD, hope for rich snippets. For AI systems it's more consequential than that. Identity markup is how a machine decides which entity a page is about — and a subtle mistake teaches every model that reads it something false.
These are the mistakes that matter, including one we shipped ourselves.
The url-versus-sameAs error
When we added business profiles to hilyt, the obvious markup was an Organization whose url pointed at the hilyt profile page. Obvious, and wrong.
In schema terms, url is the entity's own home on the web. If a profile page about ReviewNudge says url: the-profile-page, it is asserting that this page is ReviewNudge's website. A model reading it may then cite the profile as the company's site — displacing the real one.
The correct shape for a page describing an entity that lives elsewhere:
- url: the entity's own domain — the thing it would call its website.
- sameAs: the profile page itself, plus other identity URLs (socials, GitHub, registries).
- mainEntityOfPage: the profile page, marking this page as a description of the entity, not the entity's home.
We had to change four places that asserted identity to fix this. Every page that describes you — press pages, directories, your own about page — should get this distinction right.
Person markup: disambiguation beats decoration
For a Person, the property that does the most work is sameAs. Models confuse same-named people far more often than they fail to find anyone. A cross-linked identity graph — your site, GitHub, LinkedIn, X, all pointing at each other — is the strongest signal that this John Smith is you.
After that, in rough order of value:
- jobTitle and worksFor, kept current — stale employment data actively misleads.
- description: one dense paragraph, dated, concrete.
- knowsAbout: a short list of real specialisms, not keyword stuffing.
- dateModified: freshness decides conflicts between sources.
Founder edges resolve real questions
"Who is behind X?" is one of the questions people actually ask AI about businesses. A founder property on the Organization, pointing at a Person with its own URL, answers it in one hop. We added this to every business profile on hilyt for exactly that query shape.
Two mechanical failures that void everything
First: markup that only exists after JavaScript runs doesn't exist for most crawlers. JSON-LD must be in the served HTML.
Second: two components each writing their own version of the same tags. We've had a page where two head-writers fought over og:type — last one to run won, and the winner varied. Audit what the final HTML actually contains, not what your components intend.
Every hilyt profile emits this markup correctly by construction — Person or Organization, the url/sameAs split done right, founder edges included — in the server-rendered HTML crawlers read.