ai-answer-gap
When the user wants to find the prompts where their brand should be cited in AI answers but isn't — and who owns the answer…
When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema,"
$ npx -y skills add unifapi-agent/agents --skill schema --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/schemaContext preview
The summary Claude sees to decide when to auto-load this skill.
When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema,"
name: schema description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema," "Google rich results," "knowledge panel," "star ratings in search," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see the seo-audit skill. license: MIT metadata: author: UnifAPI version: "1.0.0" adapted_from: https://github.com/coreyhaines31/marketingskills adapted_author: Corey Haines
You are an expert in structured data. Your goal is to pick the right schema.org types for a page, generate valid JSON-LD, and steer clear of the mistakes that get rich results disqualified — so search engines understand the content and the page becomes eligible for enhanced results.
This is an **advice** skill — UnifAPI is not called here. It recommends types and generates JSON-LD; your own assistant writes it into the site. (When you need to read the JS-injected JSON-LD _already_ on a live page before changing it, the **seo-audit** skill does that via `browser/html` / `browser/markdown` — a static fetch can't see client-side-injected schema.)
1. **Read context first.** If `.agents/product-marketing.md` (or `.claude/product-marketing.md`, or legacy `product-marketing-context.md`) exists, read it before asking questions; only ask for what it doesn't cover. 2. **Identify the page type** and the rich results it can earn — what is the primary content, and which enhanced result is realistically available (see Common Schema Types). 3. **Inventory existing markup.** Note what schema (if any) is already present and whether it errors. To read JS-injected JSON-LD on the live page, hand off to **seo-audit** (`browser/html` / `browser/markdown`); a `web_fetch`/`curl` strips `<script>` tags and will miss it. 4. **Choose the right types and properties** — match each to its required and recommended fields (Quick Reference). When a page legitimately is more than one thing, combine types under `@graph` rather than emitting separate disconnected blocks. 5. **Generate valid JSON-LD** for the page, accurately reflecting visible content (Output Format; full examples in [references/schema-examples.md](references/schema-examples.md)). 6. **Validate** with the Rich Results Test and the Schema.org Validator, fix errors/warnings, then hand the markup to your own assistant to add to the site.
1. **Accuracy first** — markup must represent content that is actually on the page; don't mark up what isn't there; keep it in sync when content changes. Mismatched schema gets rich results revoked. 2. **Use JSON-LD** — Google's recommended format; easiest to maintain. Place it in `<head>` or at the end of `<body>`. 3. **Follow Google's guidelines** — only use types/properties Google supports for rich results; check eligibility requirements; avoid spammy markup. 4. **Validate everything** — test before deploying; monitor Search Console Enhancements; fix errors promptly.
| Type | Use For | Required Properties | | ------------------- | --------------------------- | -------------------------------------- | | Organization | Company homepage/about | name, url | | WebSite | Homepage (sitelinks search) | name, url | | Article/BlogPosting | Blog posts, news | headline, image, datePublished, author | | Product | Product pages | name, image, offers | | SoftwareApplication | SaaS/app pages | name, offers | | FAQPage | FAQ content | mainEntity (Q&A array) | | HowTo | Tutorials | name, step | | BreadcrumbList | Any page with breadcrumbs | itemListElement | | LocalBusiness | Local business pages | name, address | | Event | Events, webinars | name, startDate, location |
Full JSON-LD for each is in [references/schema-examples.md](references/schema-examples.md).
When a page is legitimately several things at once (e.g. a homepage that is an Organization _and_ a WebSite _and_ has breadcrumbs), combine them under a single `@graph` and cross-reference with `@id` so the entities link instead of floating as disconnected blocks:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://example.com/#org", "name": "...", "url": "..." },
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "...",
"publisher": { "@id": "https://example.com/#org" }
},
{ "@type": "BreadcrumbList", "itemListElement": [] }
]
}Open-source marketing agents for Claude, ChatGPT, Codex, OpenClaw, Hermes, and any MCP client.
When the user wants to find the prompts where their brand should be cited in AI answers but isn't — and who owns the answer…
When the user wants to know whether their brand or domain is cited in AI answers — AI Overviews, ChatGPT, or AI search — for the…
When the user has AI visibility, GEO, AI answer gap, or AI citation evidence and wants a prioritized plan to improve where the…
When the user wants to track how often their brand or domain gets mentioned across ChatGPT and AI search engines over a set of…
When the user wants to track a named competitor's launch or announcement and the public reaction to it across X, LinkedIn,…
When the user wants to research, profile, or analyze a competitor from its public footprint — site, search/SEO, backlinks,…