AI-readable profile: what it is and how to publish one

Updated 2026-09-02

An AI-readable profile is an open, ungated web page about one person or one organisation that an AI system can fetch, parse and cite. Open means no login wall and no bot block; parse means the facts are in the HTML itself and in structured data, not painted on by JavaScript; cite means the page has a stable URL an assistant can hand back as its source. Nothing about the idea is proprietary: any page that meets those conditions is one, whoever hosts it.

This page defines the term, sets out the four things such a page has to get right, lists exactly what Hilyt publishes when it hosts one, says what Hilyt cannot promise, and ends with how to make one — by hand, with Hilyt, or by another route. It is a small category with no settled name yet; we use "AI-readable profile" because it says what the page is for.

What an AI-readable profile is

When someone asks an assistant who a person is, or which company does a thing, the assistant either answers from what it remembers or searches, fetches a few pages and reads them. The second path is the one you can influence, and it has a hard constraint: the fetch is a plain HTTP request by a crawler that usually does not run JavaScript, usually will not sign in, and reads what comes back in one pass. A profile that survives that pass is AI-readable. In practice that means four things on one URL:

The last of these is the least established. llms.txt is a young convention with no vendor-confirmed consumer; a plain-text twin costs nothing to publish and may help some readers, but it is the least important of the four and no page is AI-readable on the strength of it alone.

How it differs from LinkedIn, a CV, a link page and a personal website

LinkedIn is where most professional facts live, and it is login-walled to most automated fetchers: a crawler without a session gets an interstitial, a stub, or nothing. Some fetchers get more than others and the behaviour changes without notice, so the honest statement is "most, not every" — which is why a profile only on LinkedIn is a weak source at answer time. Can ChatGPT read your LinkedIn profile? and why LinkedIn can't get you cited by AI go through what is actually served.

A CV or PDF is a document you hand to someone, not a page a machine finds. It lives in inboxes and applicant-tracking systems; hosted on your own site it is fetchable, but a PDF carries no identity markup and is extracted less reliably than HTML — see can AI read Notion, Substack, Medium or your PDF CV?.

A Linktree-style link page is reachable and usually crawlable, but it is a list of buttons: it rarely states who you are in sentences, almost never carries Person or Organization markup, and its facts are elsewhere. It answers "where can I find this person", not "who is this person".

A personal website is the best home for an AI-readable profile, and an AI-readable profile is not a replacement for one. If you already have a site with real content, the right move is to make its about page meet the four requirements below and keep it. A hosted profile complements a site — it is a second, consistent statement of the same identity that links to the site and is linked from it — and it is the only option for people who have no site and do not want to run one.

The four requirements: reachable, extractable, identifiable, corroborated

These are the conditions a page has to meet to be read, understood and trusted by a machine. They are cumulative: a page that fails an earlier one is not rescued by passing a later one.

Reachable

A crawler can request the page and get the page. It fails when robots.txt disallows the search or user-tier crawler tokens, when a CDN's bot protection challenges or blocks unrecognised fetchers, when the URL needs a session, or when the server answers with an error. Whether a specific vendor's crawler is let in is decided by that vendor's token and, on CDNs, by its published IP range — so "my browser can open it" proves little. robots.txt rules for AI crawlers and Cloudflare blocking AI crawlers cover the two common failures.

Extractable

The response body contains the content. It fails when the page is a JavaScript shell that renders client-side, when the text is inside images, when a soft 404 returns a 200 with a not-found page, or when the substantive text is a few hundred characters wrapped in navigation. Semantic HTML for AI readability and JS shells and soft 404s describe what a fetcher actually sees.

Identifiable

A parser can tell which entity the page is about and separate it from others with the same name. It fails when there is no Person or Organization markup, when the markup is a WebSite node alone, when the entity appears only as a property of something else (an article's author, a site's publisher), when the name on the page does not match the name in the markup, or when nothing links the page to the same entity elsewhere. The conflation case — an assistant describing a different person with your name — is the usual symptom; AI is confusing you with someone else and the Person and Organization schema AI actually uses are the fixes.

Corroborated

Something the entity does not control agrees with the page. It fails when every source for every fact is the entity's own site, when no independent page links to or names it, and when the identity links point one way only. A self-published page can be perfectly reachable, extractable and identifiable and still be treated as a claim rather than a fact — which is the correct behaviour for a system that cannot check. Corroboration is the slowest requirement and the one no host can supply for you; how to become an entity AI models recognise is the guide to it.

What Hilyt publishes for a profile

This list is the product contract, stated as what the edge worker actually emits for a published profile at https://i.hilyt.it/<username>. Anything not on it is not something Hilyt does.

What Hilyt cannot guarantee

A published profile is an input to systems Hilyt does not run. The following are outside anyone's control, and any product that promises them is promising something it cannot deliver:

What Hilyt can show is narrower and testable: that the URL is stable and ungated, that crawlers receive substantive HTML and structured identity data, that claims carry dates, sources and honest labels, that a plain-text representation exists, that requests from recognised AI user-agent families are logged, that the owner controls publication, and that an assistant can maintain the page with the owner's confirmation. The two measurements Hilyt publishes — a readiness check for any site and a benchmark of its own visibility — are described at AI visibility.

Person and business profiles

A Hilyt profile is either a person or an organisation, and the entity type decides the markup. A person page emits Person: its url is the Hilyt page itself, its jobTitle and worksFor come from the role and company fields, and its sameAs is the identity links plus the one link the person labelled as their own website. A business page emits Organization: its url is the organisation's own site, the Hilyt page is mainEntityOfPage, its sameAs is identity links only and never repeats url, its location is a Place (where it is based, not where it serves), and a parent company appears as parentOrganization.

The founder relationship is an edge between the two. An organisation profile names its founder by username, and the page emits founder as a Person carrying the founder's own @id; the founder's page lists the organisations that name them under "Products and organisations founded", with each one's own site. Publish the organisation and the edge appears on both pages; unpublish it and it disappears from both — it is derived, never stored twice.

Two worked examples

The person example is Hilyt's founder: https://i.hilyt.it/jack and its card at https://i.hilyt.it/jack/llm.txt. Read the HTML source and you will find one ProfilePage block whose mainEntity is a Person with the @id https://i.hilyt.it/jack#person, a claims list with the three provenance labels, identity links marked rel="me", and the organisations that name him as founder. The card repeats the same facts under plain headings, with sameAs links under "Same entity elsewhere".

The organisation example is Hilyt itself: https://i.hilyt.it/hilyt and https://i.hilyt.it/hilyt/llm.txt. Its Organization node carries the @id https://hilyt.it/#organization — the same id the hub homepage's graph uses, so the two pages describe one entity — with url https://hilyt.it, the profile as mainEntityOfPage, and the founder edge back to the person page. It is also a fair illustration of the corroboration limit: its claims cite Hilyt's own pages, which is the weakest kind of source, and the page says so through its labels rather than dressing it up.

Both are ordinary profiles served by the same code as everyone else's. The useful exercise is to fetch each URL with a crawler user-agent and with a browser and compare what comes back; the difference is the whole point of the category.

Crawler reads are not citations

A read is logged when a request for the page or the card arrives with a user-agent Hilyt recognises as an AI crawler or fetcher. It is evidence that the page was reachable and that a system asked for it — nothing more. A training-tier read (GPTBot, ClaudeBot, CCBot) says the page entered a corpus. A search-tier read (OAI-SearchBot, Claude-SearchBot, PerplexityBot) says an index fetched it. A user-tier read (ChatGPT-User, Claude-User, Perplexity-User) is the closest to a person asking, and still says only that the page was fetched during an answer, not what the answer said.

A citation is a different event: the assistant's reply names the page as a source. Hilyt does not observe replies for profiles, so a read count is never presented as a citation count. What the two measurements Hilyt does publish are, and which of these events each one can see, is set out at AI visibility.

How to create one

By hand, on a site you own

Work through the four requirements in order, because each one is invisible until the previous one passes. This is the checklist, with the guide that covers each step:

Then run the AI readiness check against the page. It tests the first three requirements the way a plain fetcher sees them and says which rule each result came from; it cannot test the fourth.

With Hilyt

i.hilyt.it/try takes a name and, optionally, a site: it fetches the site's text and drafts a profile from it — name, one-liner, description, skills and FAQ — shown exactly as it would publish, next to the plain-text card. Nothing is published at this step. Claiming the draft creates a private profile you edit: add claims with dates and sources, add the identity links that should become sameAs, set the entity type. Publishing is the discoverable switch in the dashboard — the first time it runs the moderation screen described above — and from then on the page, card, directory, sitemap and llms.txt entries exist together and disappear together. Maintenance is the dashboard, the REST API, or an assistant over MCP with your confirmation (connect Claude to your Hilyt profile).

Other routes

Hilyt is one way to publish such a page, not the only one. Your own site with the markup above is the fullest option and the one every other route should point at. A GitHub profile README serves developers reasonably well as a reachable, extractable page, and an ORCID record does the same for researchers with a registry-grade identifier. A Google Business Profile is the identity page that matters most for a local business and is fed to Google's own answer surfaces directly. Each covers part of the four requirements; none of them, and no hosted profile either, supplies corroboration on its own.


AI-readable profiles · AI visibility · Run the AI readiness check · How the score works · Benchmark · Guides · hilyt.it