— The 3-Pass AI Pipeline —

Single-pass schema generation is how you ship hallucinations to production.

Most “AI SEO” tools call Gemini once and publish whatever comes back — including the made-up phone numbers, the guessed business categories, and the flat unconnected entities. Schema Monkee’s pipeline does it three times, on purpose, with three different jobs. Here’s exactly what each pass does to your data.

The Architecture

Three passes. Three jobs. One published graph.

Every site we touch flows through this pipeline. Each stage has a single, narrow responsibility — which is exactly why they don’t fail in the way single-pass generators do.

01

Generate

Read everything.
Build the graph.

02

Enforce

Override the AI.
Lock in the truth.

03

Perfect

Apply Schema.org
authority.

Pass 01 · Generate

Read everything. Build the graph from scratch.

Pass 1 ingests up to 100,000 characters of your published content — every page that matters, every service, every team bio — and constructs the initial @graph from a blank slate. This is where Gemini 3 Flash Preview earns its keep: extracting entities, inferring relationships, and applying mandatory Schema.org rules before anything is allowed to ship.

What it does

  • Crawls and ingests up to 100K characters of your site content — homepage, services, locations, team, about, FAQ.
  • Extracts every candidate entity — Organization, Person, Service, Place, Product, Event, Article — and assigns provisional @ids.
  • Applies mandatory Schema.org typing rules: a coffee shop becomes CafeOrCoffeeShop, not just LocalBusiness; a dentist becomes Dentist under MedicalBusiness.
  • Infers initial relationships: founder → founded → organization, organization → offers → service, organization → location → place.
  • Hands off to Pass 2 with a complete-but-unverified graph. Nothing is published yet.

Why a single pass isn’t enough: at this stage, the model has read your content but has no access to your verified business records. It’s making its best guess about your phone number, your exact legal name, and your service area. Every one of those guesses is a liability — which is what Pass 2 exists to fix.

Pass 1 output (excerpt)

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "CafeOrCoffeeShop",
      "@id": "#org",
      "name": "Acme Coffee Roasters Brooklyn",
      "telephone": "(718) 555-0142",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "412 Bedford Ave",
        "addressLocality": "Brooklyn",
        "addressRegion": "NY"
      },
      "foundingDate": "2019",
      "founder": { "@id": "#person-1" }
    },
    {
      "@type": "Person",
      "@id": "#person-1",
      "name": "Jane Acme"
    }
  ]
}

Phone number and “Brooklyn” suffix were inferred by the model — both wrong. Pass 2 will catch them.

Pass 02 · Enforce

Override the AI. Lock in your Golden Source.

Pass 2 takes Pass 1’s draft graph and overlays your Golden Source data — the verified business name, parsed address, phone, and email you control. Anything Pass 1 invented gets overwritten. For multi-location operators, this is also where cross-domain sibling awareness kicks in, so the Dallas franchise location doesn’t accidentally claim the Detroit address.

What it does

  • Overwrites NAP fields with your verified Golden Source: exact legal name, parsed and normalized address, E.164-formatted phone.
  • Corrects schema typing when Pass 1 chose too generic a type. LocalBusiness becomes CafeOrCoffeeShop, Restaurant becomes FastFoodRestaurant, etc.
  • Cross-domain sibling awareness — for franchises and multi-location brands, ensures every location’s @graph references the same parent @id and the correct sibling locations.
  • Strips invented citations and reviews. Pass 1 sometimes hallucinates aggregate ratings or sample reviews; Pass 2 removes them unless they were verified from your actual review feed.
  • Hands a verified-but-flat graph to Pass 3. The data is now true — the next pass makes it powerful.

For franchise operators: Pass 2’s sibling awareness is the only thing standing between “40 disconnected LocalBusiness records” and “one coherent franchise network.” This is the pass that reads your franchise_network database and wires every location to its parent and siblings before Pass 3 ever sees the graph.

Pass 2 output (corrections highlighted)

{
  "@type": "CafeOrCoffeeShop",
  "@id": "#org",
- "name": "Acme Coffee Roasters Brooklyn",
+ "name": "Acme Coffee Roasters",
- "telephone": "(718) 555-0142",
+ "telephone": "+1-718-388-2000",
  "address": {
    "@type": "PostalAddress",
-   "streetAddress": "412 Bedford Ave",
+   "streetAddress": "412 Bedford Avenue",
    "addressLocality": "Brooklyn",
    "addressRegion": "NY",
+   "postalCode": "11249",
+   "addressCountry": "US"
  },
+ "parentOrganization": {
+   "@id": "https://acme.coffee/#franchisor"
+ }
}

NAP overridden, postal code & country added, parent organization linked. Hallucinated phone replaced with verified line.

Pass 03 · Perfect

Apply Schema.org authority. No restrictions.

Pass 3 receives a verified-but-flat graph and acts as a world-class Schema.org authority: rebuilding entity relationships, attaching sameAs links to every external authority signal, weaving in E-E-A-T attribution, and producing the deeply nested architecture that machine readers — and the LLMs trained on them — recognize as canonical. This is the pass with no guardrails. Once your data is true, we let the model optimize freely.

What it does

  • Rebuilds the entity architecture as a deeply nested @graph — Organization → Person → Service → Offer → Place — with every relationship explicitly typed and every @id resolvable.
  • Attaches authority sameAs links — Wikidata Q-IDs, official social handles, Crunchbase, LinkedIn company page, Google Business Profile — every external signal that proves you are who you say you are.
  • Weaves in E-E-A-T attribution: founder credentials, author profiles on articles, organizational accreditations, awards, certifications.
  • Adds machine-readable depth: knowsAbout, memberOf, award, hasCredential, publishingPrinciples — the long tail of properties Schema.org defines but no plugin actually fills in.
  • Hands the perfected graph to the webhook, which pushes it to your WordPress site as a single signed write. That’s the version your visitors and the agents see.

Why “no restrictions” matters: by the time data reaches Pass 3, every fact is verified. There’s no risk in letting the model optimize freely — it can’t invent a phone number because Pass 2 already locked one in. The only thing left to do is connect, nest, and cite. That’s where authority comes from.

Pass 3 output (final, published)

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "CafeOrCoffeeShop",
      "@id": "https://acme.coffee/#org",
      "name": "Acme Coffee Roasters",
      "founder":         { "@id": "https://acme.coffee/#founder" },
      "parentOrganization": {
        "@id": "https://acme.coffee/#franchisor"
      },
      "knowsAbout": ["Specialty Coffee", "Direct Trade Sourcing"],
      "sameAs": [
        "https://www.wikidata.org/wiki/Q123456789",
        "https://www.facebook.com/acmecoffee",
        "https://www.instagram.com/acmecoffee",
        "https://www.linkedin.com/company/acme-coffee"
      ],
      "award": "Roast Magazine Macro Roaster of the Year, 2024"
    },
    {
      "@type": "Person",
      "@id": "https://acme.coffee/#founder",
      "name": "Jane Acme",
      "jobTitle": "Founder & Head Roaster",
      "hasCredential": "Q Arabica Grader, CQI",
      "worksFor":     { "@id": "https://acme.coffee/#org" },
      "sameAs":       ["https://www.linkedin.com/in/janeacme"]
    }
  ]
}

Nested graph, resolvable @ids, full sameAs chain to Wikidata + socials, founder credentials, award attribution.

The Result

Three passes. One promise: zero hallucinations in production.

Single-pass generators publish whatever the model guesses on the first try. Our pipeline separates creation, verification, and expert optimization into distinct stages — so the data ChatGPT, Claude, Gemini, and Perplexity quote about your business reflects your actual business, not the model’s first impression of it.

100K

Characters of your content ingested per generation

AI passes — Generate, Enforce, Perfect — before anything ships

0

Hallucinated NAP fields ever published to your schema

See your site through the pipeline.

We’ll run your homepage through Pass 1 and show you exactly what the model invented — for free, in under five minutes. Then you decide whether the next two passes are worth wiring up.