Install
$ agentstack add skill-thatrebeccarae-claude-marketing-schema-markup-generator ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Schema Markup Generator
Generate JSON-LD structured data for rich results, AI citations, and enhanced search visibility.
Install
git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/schema-markup-generator ~/.claude/skills/
When to Use
- Adding structured data to new or existing pages
- Generating JSON-LD for specific schema types
- Auditing existing schema for errors or missing fields
- Improving AI search visibility (pairs with aeo-geo-optimizer)
- Enabling rich results (FAQ dropdowns, star ratings, how-to steps)
Workflow
Step 1: Identify Content Type
| Content | Primary Schema | Rich Result | |---------|---------------|------------| | Blog post | Article | Enhanced listing with author, date | | FAQ section | FAQPage | Expandable Q&A in SERPs | | Tutorial | HowTo | Step-by-step with images/time | | Product page | Product | Price, availability, ratings | | Review | Review + Rating | Star ratings in SERPs | | Recipe | Recipe | Cooking time, ingredients, ratings | | Event | Event | Date, location, ticket info | | Local business | LocalBusiness | Maps, hours, contact | | Person/author | Person | Knowledge panel | | Breadcrumbs | BreadcrumbList | Breadcrumb trail in SERPs | | Video | VideoObject | Video carousel, thumbnails | | Software | SoftwareApplication | App info in SERPs | | Course | Course | Course info in SERPs | | Dataset | Dataset | Dataset search results |
Step 2: Generate JSON-LD
Generate a `` block with all required and recommended fields for the schema type. Always use JSON-LD format (not Microdata or RDFa).
Step 3: Validate
- Google Rich Results Test: https://search.google.com/test/rich-results
- Schema.org Validator: https://validator.schema.org/
- Check Google Search Console for structured data errors
Schema Templates
Article
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Article Title (max 110 chars)",
"description": "Brief description of the article",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://example.com/author/name",
"jobTitle": "Author Title",
"sameAs": ["https://linkedin.com/in/author", "https://twitter.com/author"]
},
"publisher": {
"@type": "Organization",
"name": "Publisher Name",
"logo": {"@type": "ImageObject", "url": "https://example.com/logo.png"}
},
"datePublished": "2026-03-18T00:00:00Z",
"dateModified": "2026-03-18T00:00:00Z",
"image": "https://example.com/article-image.jpg",
"mainEntityOfPage": {"@type": "WebPage", "@id": "https://example.com/article-url"}
}
FAQPage
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The complete answer text. Can include HTML links."
}
}
]
}
HowTo
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Do Something",
"description": "Brief description",
"totalTime": "PT30M",
"estimatedCost": {"@type": "MonetaryAmount", "currency": "USD", "value": "0"},
"step": [
{
"@type": "HowToStep",
"name": "Step 1 Title",
"text": "Detailed step instructions",
"image": "https://example.com/step1.jpg"
}
]
}
Product
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"description": "Product description",
"image": "https://example.com/product.jpg",
"brand": {"@type": "Brand", "name": "Brand Name"},
"sku": "SKU-12345",
"offers": {
"@type": "Offer",
"price": "29.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "127"
}
}
BreadcrumbList
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com"},
{"@type": "ListItem", "position": 2, "name": "Category", "item": "https://example.com/category"},
{"@type": "ListItem", "position": 3, "name": "Current Page"}
]
}
Required vs Recommended Fields
| Schema Type | Required Fields | Recommended Fields | |------------|----------------|-------------------| | Article | headline, author, datePublished, image | dateModified, publisher, description | | FAQPage | mainEntity (Question + Answer) | — | | HowTo | name, step | totalTime, estimatedCost, image | | Product | name, offers (price + currency + availability) | brand, sku, aggregateRating, image | | LocalBusiness | name, address | phone, hours, geo, image, priceRange | | Event | name, startDate, location | endDate, offers, image, performer | | Person | name | jobTitle, url, sameAs, image |
Common Mistakes
- Missing required fields — always check per-type requirements
- Incorrect date format — use ISO 8601 (YYYY-MM-DDTHH:MM:SSZ)
- Markup does not match visible content — schema must reflect what users see
- Using Microdata instead of JSON-LD — Google recommends JSON-LD
- Nesting errors — validate JSON syntax before deploying
- Duplicate schema — one schema block per type per page
- Self-referencing Organization — publisher should be the organization, not the page
Integration with Other Skills
- aeo-geo-optimizer — Schema is a key AEO signal; implement types recommended by the AEO audit
- technical-seo-audit — Audit identifies missing/broken schema; this skill generates the fixes
- seo-content-writer — Content structure should align with schema structure
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: thatrebeccarae
- Source: thatrebeccarae/claude-marketing
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.