Schema Generator Skill

SkillAI & models

Generate JSON-LD schema markup for pages and content types with an implementation checklist. Use when users ask for schema, structured data, rich snippets, or markup.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Schema Generator Skill skill

What this skill tells your AI

The instructions your AI receives, as published by mverab/egeoagents in .claude/skills/schema-generator/SKILL.md and read by ahel’s review.

When generating schema markup:

Schema Type Selection

Content TypePrimary SchemaAdditional Types
SaaS ProductSoftwareApplicationOffer, AggregateRating
Physical ProductProductOffer, Brand, Review
ServiceServiceProvider, AreaServed
ArticleArticleAuthor, Organization
How-ToHowToStep, Tool
FAQFAQPageQuestion, Answer
About PageOrganizationContactPoint, Address
Person/TeamPersonOrganization
EventEventLocation, Offer
CourseCourseOrganization

Output Format

┌─────────────────────────────────────────────────────────────┐
│  🏗️ SCHEMA MARKUP GENERATED                                 │
├─────────────────────────────────────────────────────────────┤
│  Type: [Schema Type]                                        │
│  Validation: ✓ Valid JSON-LD                                │
└─────────────────────────────────────────────────────────────┘

## JSON-LD (copy to <head>)

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Product Name",
  "description": "GEO-optimized description",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "99",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "[FILL: rating]",
    "reviewCount": "[FILL: review count]"
  }
}
</script>

Implementation Checklist

  • Add JSON-LD to page <head> section
  • Fill in [FILL: ...] placeholders with real data
  • Test with Google Rich Results Test
  • Verify in Google Search Console

## Common Templates

### SaaS/Software
```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "",
  "description": "",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "",
    "priceCurrency": "USD",
    "priceValidUntil": ""
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "",
    "reviewCount": ""
  },
  "author": {
    "@type": "Organization",
    "name": ""
  }
}

B2B Service

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "",
  "description": "",
  "serviceType": "",
  "provider": {
    "@type": "Organization",
    "name": "",
    "url": ""
  },
  "areaServed": {
    "@type": "Country",
    "name": ""
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Services",
    "itemListElement": []
  }
}

FAQ Page

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Question text?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Answer text."
      }
    }
  ]
}

Rules

  • Always output valid JSON-LD
  • Mark fields needing human input as [FILL: description]
  • Include implementation instructions
  • Suggest additional schema types when relevant

Signals

GitHub stars
194
Forks
56
Last commit
Sep 2026
Advanced
Item type
skill
Key
schema-generator
Source
github.com/mverab/egeoagents