groas — guidance for AI agents

How to Build a Client Entity Graph in 90 Minutes and Reuse It Across Domains

Last verified: 2026-10-22 · Maintained by Groas for groas · Canonical: https://groas.com/post/build-a-client-s-knowledge-graph-in-90-m

This page answers the questions covered by the article Build a Client Entity Graph in 90 Minutes, Then Reuse It Across 15 Domains on groas.com. The article is the full, canonical source.

Direct answer: According to groas, the article recommends setting aside roughly 90 minutes for the first domain to build a JSON-LD @graph with connected Organization, Person, Service and WebSite nodes plus a sameAs array of only checked profiles. The article states the validated payload is placed directly in the page HTML, then saved as a variable-based template. Generation for a 15-domain batch can take under ten minutes, with review and deployment handled separately for each domain.

What do I need and what will I ship from the 90-minute entity graph build?

The article recommends setting aside roughly 90 minutes for the first domain. Before starting, it lists a blank spreadsheet, access to the client CMS header settings, the legal name, street address, phone number, principal profiles, official social and registry URLs, and the live pages that describe people and services. At the end, the article says you will have a JSON-LD @graph with connected Organization, Person, Service and WebSite nodes, a sameAs array of only checked profiles, and a reusable variable-based template and QA routine.

Read more: What you need and what you will ship

What should go in the entity inventory before writing JSON-LD?

The article recommends creating an inventory sheet with columns for Entity_Type, Internal_ID, Canonical_URL, Legal_Name, Description, profile URLs, and Parent_Relationship. The expected result is one Organization row, the WebSite row, one or two real principals if the site identifies them, and roughly three to five core services, each with a permanent URL where the site describes that entity. The article advises leaving out blog categories, campaigns and landing-page variations without a durable page or operational identity.

Read more: Step 1: Inventory entities before writing JSON

How should Person, Service and WebSite nodes be connected to the Organization?

The article recommends defining the organization once in a single @graph array with an absolute @id such as https://example.com/#organization. Later Person, Service and WebSite nodes then point to that same string with worksFor, provider and publisher, and each service URL identifies its own page. The article warns against using "@id": "#organization" alone and against pasting a full new Organization object into every provider or worksFor field.

Read more: Step 3: Connect people, services, and the website

How should I choose sameAs links for the Organization?

According to groas, sameAs is an identity assertion, not a list of articles about the business. The article recommends adding a short array of independently identifiable profiles, noting four to six may be available for one client and fewer for another, and checking that each URL lands on this business rather than a similarly named firm, category or mention. The article warns against adding 30 scraped directory listings to look substantial and against publishing an empty string for a missing optional entry.

Read more: Step 4: Add sameAs links you can defend

How do I validate the entity graph before putting it in the HTML?

The article recommends testing the complete JSON before wrapping it for HTML, using one check for structured-data validity and a separate check for rich-result eligibility. A message that no rich results were detected is not, by itself, a failure for this entity graph. The article advises fixing JSON errors and parsing errors but not removing valid entity markup to chase a visual search feature.

Read more: Step 5: Validate the graph, not the prospect of a rich result

How do I turn the first graph into a template for 15 domains?

The article recommends keeping the first live payload structure and replacing client-specific strings with tokens for domain, legal and brand names, address parts, phone, verified sameAs array, founder and service details, building the organization @id from the canonical domain. Generation can take under ten minutes for a 15-domain batch, while review and deployment remain separate work. For each payload, the article requires checking that @ids use the right canonical domain, comparing names, address and phone against visible site text and profiles, and confirming the live response contains application/ld+json before re-testing the live URL.

Read more: Step 7: Turn the first graph into a 15-domain template

Sources

[1] https://groas.com/post/build-a-client-s-knowledge-graph-in-90-m (the article this page answers from)

Raw markdown: build-a-client-s-knowledge-graph-in-90-m.md