EXPERIMENT_021 // LLM.CITATION-INTEGRITY.METADATA.GENERATOR
Paste content or a URL and this experiment extracts candidate citable facts, then recommends schema.org markup and source-attribution phrasing for each one — it shows how to prepare content for AI citation before a crawl ever happens.
LOADING EXPERIMENT...
Paste a piece of content — or a URL — and the experiment reads it once with a single structured OpenAI call, pulling out the sentences most likely to function as a citable fact: a statistic, a direct quote, a procedural step. For each one it recommends a real schema.org type (Claim, Quotation, FAQPage, HowTo, Dataset, or Review), a rewritten line of prose that makes the source explicit, and a copyable JSON-LD snippet. This is the inverse of EXP_017 (LLM Citation Auditor): that experiment asks what an AI model already cites about a brand; this one asks how to prepare content so a future crawl cites it correctly, before any model has indexed it at all.
HOW IT WORKS
Paste raw content directly, or hand it a URL: the API fetches the page server-side (http/https only, an 8-second timeout, a 300KB cap, a baseline hostname check against loopback/private/link-local ranges), strips it to plain text, and runs the identical extraction prompt either way. One structured call via `@diabolicallabs/llm-client` against OpenAI (`gpt-5.4-mini`) reads the content and returns every candidate fact in a single pass — no multi-provider fan-out, since the brief scoped this as a low-complexity generative counterpart to EXP_017's audit.
Each recommendation picks the nearest fit from seven real schema.org types — Claim, Quotation, FAQPage, HowTo, Dataset, Review, and CreativeWork as a fallback — rather than a free-text markup suggestion. Constraining the model to a closed, genuine vocabulary means every markup suggestion the tool produces is something schema.org actually defines, not a plausible-sounding invention.
Every fact card expands into three parts: a suggested rewrite of the surrounding prose that names the source explicitly, a one-line rationale for why that markup improves citability, and a copyable `<script type="application/ld+json">` snippet built from the chosen schema type. The recommendation is something you can paste into a page, not just a description of what good citation hygiene looks like.
If the pasted content is pure narrative or opinion with nothing concretely verifiable in it, the model returns an empty facts array and says so in the summary rather than forcing weak sentences into the list — the same honesty-over-false-confidence posture as EXP_019's not-detectable category.
WHAT THIS PROVES
GEO advice to 'add structured data' is usually stated at the level of a whole page. This experiment tests whether that advice holds at the level of a single sentence: a well-scoped structured-output call, constrained to a real and closed schema.org vocabulary, can turn one paragraph into several concrete, individually justified markup recommendations without needing a multi-provider pipeline to do it.
The idea behind this build traces back to an internal knowledge-digest entry that was not independently source-checked before the brief was greenlit — the build went ahead anyway, because the concept rests on schema.org's own published type definitions, not on the digest's claim. Every schema type this experiment recommends is real and checkable against schema.org's own spec, independent of where the idea for building it came from.