Use case Entities

Build an entity graph
of your own site

Engines do not read your site page by page. They resolve it into things: people, products, organisations, topics, and the relationships between them. Ask Moose to build that graph and you see the version of you an engine can actually cite.

Watch Moose build one The spreadsheet version
Chat Workflows
Fathom Analyticshttps://usefathom.com
New chat
Home Inbox Context Visibility Workflows Audio Chats Library Connections
Recents
can you create an entity gra…Chat · now do we cover the topic of usi…Chat · 16m Building a Knowledge Grap…Content brief · 24m How AI Search Ranking Wor…Content brief · 2h
Sam SamPremium
can you create an entity gra… New chat Share
can you create an entity graph of usefathom?

On it, Sam. Let's map out how Fathom's entities connect across the site.

I can build an entity graph for this project. Choose how deep the run should go, then start it below.

Build the entity graph

Hi, Moose maps the people, products, places, and topics across this project's crawled pages, plus how they connect.

Depth
QuickStructured data only. Runs instantly.
FullAdds an AI pass over up to 100 top pages. This can take a few minutes.
Build entity graph
Reading structured data across 418 crawled pages… Resolving entity names and merging duplicates… Extracting declared relations…
Entity graph
Entities across this project
Quick
Entities
290
Relations
3
Generated
8/2/2026
Entities by type
topic: 284 · organization: 3 · product: 2 · person: 1
Top entities
NameTypePagesSalience
User Documentation topic 246 7.12
Fathom Analytics product 22 4.20
Affiliate Program Terms topic 7 3.58
Fathom Analytics organization 10 3.43
Jack Ellis person 9 3.33
Showing 5 of 290. Full list in Library.

Two hundred and ninety entities, three relations. The site names a lot of things and connects almost none of them. Every relation I found came from schema markup on two templates. The rest of the graph is loose nouns.

Fathom (organization)→ founder →Jack Ellis Fathom (organization)→ publisher →User Documentation Fathom (product)→ isPartOf →Web Analytics

Two things stand out. Fathom Analytics resolves as two separate entities, once as a product and once as an organization, with nothing tying them together. And User Documentation sits on 246 pages with the highest salience on the site, so by volume the docs are the brand.

Want me to run the Full pass over the top 100 pages, or draft the schema that merges the two Fathom entities first?

Share a URL, a draft document, or run an AEO audit…
Site index · 418 pages · local Claude Sonnet 5 Send
Hi, Moose 0.3.281 Beta Need help?
A recreation of a real run, against a public site we do not work with. Paths and counts are illustrative.
Moose, a dog, supervising a desk

Chief desk supervisor. Resolves as exactly one entity, related to the sofa, the garden, and lunch. A cleaner graph than most websites manage.

The problem

An engine does not see pages. It sees things, and how they relate.

Before an engine can recommend you, it has to know what you are. A product, made by an organisation, founded by a person, in a category, competing with these others. That resolution happens whether you help it or not.

If your site never states the connections, the engine either infers them from third parties or leaves you as a floating name it cannot place. That is how you end up mentioned but never recommended, or described using a competitor's category.

What comes back

Four things, in one pass

Every entity carries the pages it appeared on, so you can always get from a claim back to the URL that made it.

Entities
Every thing your site names

People, organisations, products, places and topics, each with the number of pages it appears on. Types are counted, so you can see at a glance whether your site reads as a product or as a pile of articles.

Salience
What your site is actually about

A weighted score per entity, from how often and how prominently it appears. This is where sites get a surprise: the entity with the highest salience is rarely the one on the homepage.

Relations
The connections you actually declare

Founder, publisher, brand, part of, operating system. Only the ones your markup or copy genuinely states. A low number here is the most common finding, and the most fixable.

Duplicates
Where one thing reads as two

Entity splits, like a brand appearing once as a product and once as an organization with nothing tying them together. Engines that see two weak entities cite neither.

Two depths

Quick, then Full when it earns it

Quick reads only what your site already declares, which is the honest baseline. Full adds a model pass and finds the entities you talk about without ever marking up.

Quick
Structured data only

Reads the JSON-LD, microdata, headings and internal link structure already on your pages. Runs instantly, costs nothing, and shows you exactly what an engine can extract without guessing.

Use it for · The baseline, and checking a schema fix landed.
Full
Adds a model pass over your top 100 pages

A model reads the body text and pulls the entities and relations you state in prose but never mark up. Takes a few minutes. Runs on your own key, or entirely on a local model.

Use it for · The real picture, once a quarter.
What to ask next

The graph is a starting point, not a report

Once it exists, it stays in the project. Every one of these runs against it, in the same chat window.

Why is User Documentation the highest salience entity on our site?Traces the score back to the pages and templates causing it
Write the schema that merges our two brand entities.Drafted markup, staged in the CMS, waiting on your approval
Which relations should we be declaring and are not?Compared against what similar sites in your category declare
Which entities do we mention on one page only?Thin coverage that reads as a passing reference, not a claim
Does our graph match how ChatGPT describes us?Puts the graph next to the live answers from the visibility run
What changed in the graph since last quarter?Versioned, so entity and relation counts diff cleanly
Which competitors show up as entities on our own site?Often more than you expect, and rarely in a comparison you control
Run the Full pass and tell me what the AI found that schema missed.The gap between what you state and what you only imply
Without Moose

The way this normally gets done

A validator, a crawl export, a whiteboard diagram nobody updates, and a strong opinion about schema from someone who read a blog post in 2019.

The manual route
01 Paste a URL into a schema validatorIt confirms the markup on that one page is valid. It says nothing about the other three hundred, and nothing about how they connect.
02 Export a crawlA crawler gives you a spreadsheet of pages and tags. Turning that into entities means writing your own resolution logic in a pivot table.
03 Dedupe by handDecide whether "Hi, Moose", "HiMoose" and "Hi Moose Ltd" are one thing or three. Do this a few hundred times and your judgement drifts by row 200.
04 Draw it on a whiteboardSomeone diagrams the intended graph in Figma. It reflects the strategy, not the site, and it is stale a sprint later.
05 Hand-write the JSON-LDCopy an example, adapt it, hope the template renders it, and find out later that one field silently broke.
06 Never check it againThe audit was a one-off deliverable. Nobody re-runs it, so nobody notices when a migration drops the markup entirely.
Where it goes wrong
Valid markup is not a graph

A validator checks syntax on one page. It cannot tell you that your product and your company are two disconnected entities across the site.

Strings are not things

Spreadsheets count text. Deciding that two spellings are the same organisation, and that a third is a different one, needs a resolution step nobody does by hand consistently.

The diagram is aspirational

Whiteboard graphs describe how the brand wishes it were structured. Engines read what is on the pages, which is usually thinner and messier.

No baseline, no proof

Without a versioned graph you cannot show that a schema change worked, so entity work stays the thing that gets cut from the sprint.

With Moose

Ask once, get the graph and the fix list

The crawl is already on your machine from indexing the site, so the graph is built from pages you own, not from a third-party index of them.

01
Ask in the chat

No new screen to learn. Ask for an entity graph, pick Quick or Full, and it runs against the pages already crawled for this project.

02
Read the shape, not the list

The counts are the point. Which type dominates, which entity carries salience it should not, and how few relations you actually declare.

03
Fix it in the same loop

Ask for the markup that merges a split entity or states a missing relation. Moose drafts it, stages it in your CMS, and waits for you to approve.

Nothing about your site is uploaded to build it

Quick runs entirely offline against your local crawl. Full sends page text to whichever model you chose, and if that model is local it never leaves the machine either. The graph is written to local storage and versioned, so you can diff it after a schema change.

How it reasons

Why the numbers are low on purpose

A graph that invents relations is worse than no graph, because you would ship markup asserting things your site never said. Three real relations beats forty plausible ones.

Order
Declared first, inferred second

Quick reads only what your pages state: JSON-LD, microdata, headings, internal links. That is the same material an engine gets for free, which makes it the honest baseline to fix against.

Resolution
It merges, but it shows its work

Name variants collapse into one entity when the evidence supports it. When it does not, you get two entities and a note saying they may be the same thing, rather than a silent guess.

Restraint
No invented relations

If no page says who founded the company, the graph has no founder relation. It reports the absence, because that absence is the finding you can act on.

Salience
Weighted, not counted

Position matters as much as frequency. An entity in a title and a heading outweighs one buried in a footer on every page, which is why nav links do not dominate the ranking.

Provenance
Every entity keeps its pages

Each entity carries the URLs it came from, so you can check any row yourself. Nothing in the graph exists without a page behind it.

History
Versioned, so it is comparable

Each run is kept. Ship a schema change, re-run Quick, and diff the counts. That is the difference between entity work and entity opinions.

From the graph to the markup

A diagram you cannot act on is a poster. This one turns into staged changes without leaving the chat.

Fix the split. One Fathom.
The cleanest version is one Organization with the product as its brand, both on a single @id you can reference site-wide. I have drafted it against your layout template and staged it. Nothing is live until you approve.
What else is missing from the same template?
A founder relation to Jack Ellis, who appears on nine pages with no statement connecting him to the company, and a category claim on the product. Both are one line each. After you publish, re-run Quick and the relation count should go from three to six.

Questions people ask

What is an entity graph, in plain terms?

A list of the things your site talks about, and the stated connections between them. Not keywords, and not pages. An engine builds one of these about you whether you look at it or not, so the useful move is to see yours and decide whether it says what you meant.

Is 290 entities and 3 relations bad?

It is normal, and it is the reason to run this. Most sites name hundreds of things and explicitly connect almost none of them, because relations only come from markup and most markup stops at the article template. The fix is usually a handful of lines on two templates.

Do I need schema markup for this to work?

Quick depends on it, which is precisely why the result is useful: it shows you what an engine can extract today. Full reads the prose too, so a site with no markup still gets a graph, and the gap between the two runs tells you what to mark up first.

Does the Full pass cost me anything?

It uses whichever model you have connected, so it is your key and your spend, capped at the top 100 pages by default. Point it at a local model and it costs nothing but time. Quick is always free and always offline.

Does any of this get uploaded?

Quick never leaves your machine. Full sends page text to the model you chose, and if that model runs locally then nothing leaves either. The graph is stored locally and versioned, so there is no Hi, Moose copy of your site structure.

How is this different from a coverage check?

Coverage answers whether you have written about a topic. The graph answers what your site says you are. You need both: one stops you writing duplicates, the other stops engines describing you as a category you do not sell in.

More things to ask Moose

All use cases
Built on your machine

See the version of you
an engine can cite.

Download Hi, Moose, index your site, and build the graph in about a minute. Quick runs on the free plan.