> ## Documentation Index
> Fetch the complete documentation index at: https://areyoufoundbyai.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Schema (JSON-LD): Generated With Your Full Report

> Are you found by AI? generates Organization or LocalBusiness JSON-LD from your real business details with the full report. The open-source route is the thl-open geo-schema skill and its six templates.

Schema.org JSON-LD is the machine-readable statement of what your business is: its name, type, location, contact details and the profiles that belong to it. Are you found by AI? does not offer it as a separate tool page. It comes with the report instead:

* "Organization/LocalBusiness markup built from your real business details, generated with your full report, copy-paste ready."

[Run the free scan](https://areyoufoundbyai.com/) to start. The free scan measures whether AI names you and checks your site, and the full report generates the markup.

<Note>
  There is no standalone schema generator page on areyoufoundbyai.com. If you have an old bookmark to a generator URL, use the free scan instead.
</Note>

<Warning>
  JSON-LD **must** be delivered in server-rendered HTML, not injected by JavaScript. Many AI crawlers fetch raw HTML and do not run JavaScript, so schema added after page load can be invisible to them. See the research note [JS-injected schema is invisible to AI crawlers](https://areyoufoundbyai.com/research/schema-ai-crawlers). After adding your schema, view your page source (not Inspect Element) and search for `application/ld+json`.
</Warning>

## The open-source route

If you would rather build or check the markup yourself, the open-source [thl-open](https://github.com/techhorizonlabs/thl-open) suite includes:

| Where | What it does |
| - | - |
| [`skills/geo-schema`](https://github.com/techhorizonlabs/thl-open/tree/main/skills/geo-schema) | A Claude Code skill that detects, validates and generates JSON-LD for a page and writes `GEO-SCHEMA-REPORT.md`. Run it with `/geo schema https://example.com`. |
| [`skills/geo/schema`](https://github.com/techhorizonlabs/thl-open/tree/main/skills/geo/schema) | Six fill-in JSON-LD templates (listed below). |
| [`tools/audit-report-kit`](/docs/skills/audit-report-kit) | A Node tool that generates compile-checked Organization or LocalBusiness JSON-LD from audit data. |

See [Claude Code Skills](/docs/guides/claude-code-skills) for installation.

## The six thl-open templates

<CardGroup cols={2}>
  <Card title="Organization" icon="building">
    `organization.json`. For companies and any business without a physical storefront: name, URL, logo, description, founding date, founder, contact point, address and `sameAs` links to your profiles.
  </Card>

  <Card title="Local Business" icon="location-dot">
    `local-business.json`. Extends Organization with location fields such as `geo`, `openingHoursSpecification`, `areaServed`, `telephone` and `priceRange`.
  </Card>

  <Card title="Article + Author" icon="newspaper">
    `article-author.json`. For content publishers: `headline`, `datePublished`, `dateModified`, `image` and a full `author` Person with `sameAs`, `jobTitle`, `worksFor` and `knowsAbout`.
  </Card>

  <Card title="Product (E-commerce)" icon="cart-shopping">
    `product-ecommerce.json`. For physical or digital products: `offers` (with `price`, `priceCurrency`, `availability`), `brand`, `sku`, `aggregateRating` and `review`.
  </Card>

  <Card title="Software / SaaS" icon="laptop-code">
    `software-saas.json`. A `SoftwareApplication` with `applicationCategory`, `operatingSystem`, `featureList` and tiered `offers`.
  </Card>

  <Card title="Website with SearchAction" icon="magnifying-glass">
    `website-searchaction.json`. Adds the `potentialAction` search integration to your site-level WebSite schema.
  </Card>
</CardGroup>

## Organization JSON-LD example

Here is an Organization block based on the thl-open template. Add it inside the `<head>` of your server-rendered HTML and replace every placeholder:

```json theme={null}
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://yourdomain.com/#organization",
  "name": "Your Business Name",
  "url": "https://yourdomain.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://yourdomain.com/logo.png",
    "width": 600,
    "height": 60
  },
  "description": "One or two sentences describing what your organisation does.",
  "foundingDate": "YYYY-MM-DD",
  "founder": {
    "@type": "Person",
    "name": "Founder Name",
    "url": "https://yourdomain.com/about/founder",
    "sameAs": [
      "https://www.linkedin.com/in/founder-linkedin"
    ]
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+61-X-XXXX-XXXX",
    "contactType": "customer service",
    "email": "contact@yourdomain.com",
    "availableLanguage": ["English"]
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Your Street Address",
    "addressLocality": "Your City",
    "addressRegion": "Your State",
    "postalCode": "Your Postcode",
    "addressCountry": "AU"
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourcompany",
    "https://www.youtube.com/@yourcompany",
    "https://github.com/yourcompany",
    "https://www.wikidata.org/wiki/YOUR_WIKIDATA_ID"
  ]
}
```

Wrap this object in a `<script type="application/ld+json">` tag. Only list `sameAs` profiles that genuinely belong to your business.

## The `sameAs` property

The `sameAs` array tells machines that the entity on your website is the same entity as the profiles listed elsewhere. Include the public profiles you actually maintain, such as LinkedIn, YouTube, GitHub and, if one exists, your Wikidata item.

## Placement and rendering

Place your JSON-LD inside the `<head>` element of your page's server-rendered HTML, not injected by JavaScript after page load. Tag managers and client-side React or Vue code run after the initial HTML response, so a crawler that does not run JavaScript sees a page with no schema. If you use a JavaScript framework (Next.js, Nuxt, SvelteKit), render JSON-LD on the server or at the edge, not in client-side `useEffect` or equivalent hooks.

To check what a crawler receives, open **View Page Source** (not Inspect Element, which shows the post-JavaScript DOM) and search for `application/ld+json`. From a terminal:

```bash theme={null}
curl -s https://yoursite.com | grep -c "application/ld+json"
```

A result of zero means no JSON-LD in the raw HTML.

<Accordion title="Can I include multiple JSON-LD blocks on one page?">
  Yes. A page can contain several `<script type="application/ld+json">` blocks, for example an Organization block on every page plus a page-specific Article or Product block. You can also combine schemas into one block with the `@graph` pattern, which lets them reference each other through `@id`.
</Accordion>

<Accordion title="How do I validate my schema after adding it?">
  Use Google's [Rich Results Test](https://search.google.com/test/rich-results) or the [Schema.org Validator](https://validator.schema.org/) to check for syntax errors and missing properties. Your scan report's AI Readiness check also includes a structured-data signal, read from your site.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.