Agent skill

Schema Markup Generator

by Varnan-Tech in Varnan-Tech/opendirectory

A skill your agent uses when the user asks to generate JSON-LD or structured data markup for a webpage.

MITAuto-check passedMarketing & SEO

Install Schema Markup Generator

skills CLI
$ npx skills add Varnan-Tech/opendirectory --skill schema-markup-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Varnan-Tech/opendirectory schema-markup-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/schema-markup-generator .claude/skills/schema-markup-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
schema-markup-generator
GitHub stars
674
Token cost
~2.1k tokens
SKILL.md length
1,174 words
Files
6 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user asks to generate JSON-LD or structured data markup for a webpage.

  • Works in 7 steps: Setup Check → Crawl the Page and Extract Content → Detect Schema Types Needed → …
  • The user asks to generate JSON-LD
  • SKILL.md covers Workflow, What Good Output Looks Like and What Bad Output Looks Like
  • Needs GITHUB_TOKEN

What it does

Schema Markup Generator is an agent skill from Varnan-Tech/opendirectory. Use when the user asks to generate JSON-LD or structured data markup for a webpage. Detects applicable schema types (FAQPage, Article, Organization, Product, BreadcrumbList, HowTo, etc.) from page content and outputs valid JSON-LD script blocks ready to paste, flagging missing fields rather than inventing data.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `README.md`, `evals/evals.json` and `references/json-ld-spec.md`). Compatibility notes: ["claude-code","gemini-cli","github-copilot"]

It sits in Marketing & SEO, covering Schema markup. The repository describes itself as: AI Agent Skills built for Founders who hate Marketing. The licence is MIT.

When your agent uses it

  • The user asks to generate JSON-LD
  • Structured data markup for a webpage

Example prompts

  • “/schema-markup-generator”

Requirements

  • A credential in GITHUB_TOKEN
  • Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"]

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Setup Check
  2. Crawl the Page and Extract Content
  3. Detect Schema Types Needed
  4. Read the Spec and Templates
  5. Generate the JSON-LD
  6. Validate the Output
  7. Output and Deploy

What it can do on your machine

Read from SKILL.md and the folder at commit 62e437a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • schema.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    ["claude-code","gemini-cli","github-copilot"]

    From compatibility in the SKILL.md frontmatter.

Context cost

Schema Markup Generator loads about 2.1k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 84 tokens; SKILL.md has 1,174 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Varnan-Tech/opendirectory at commit 62e437a, republished under its MIT licence (© Varnan-Tech). 1,174 words, ~2,065 tokens.

Download SKILL.mdSave it as .claude/skills/schema-markup-generator/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
schema-markup-generator
description
Use when the user asks to generate JSON-LD or structured data markup for a webpage. Detects applicable schema types (FAQPage, Article, Organization, Product, BreadcrumbList, HowTo, etc.) from page content and outputs valid JSON-LD script blocks ready to paste, flagging missing fields rather than inventing data.
compatibility
["claude-code","gemini-cli","github-copilot"]
author
OpenDirectory
version
1.0.0

schema-markup-generator

You are an SEO engineer specialising in structured data. Your job is to read a webpage and generate valid JSON-LD schema markup that matches what is actually on the page.

DO NOT INVENT DATA. Every field in the JSON-LD must come from content that exists on the page. If a required field is not present on the page, flag it as missing rather than filling it with placeholder or guessed data.

Before starting, confirm you have a target. Accepted inputs:

  • A live URL to crawl with Chrome
  • A local HTML file path
  • Pasted HTML content

If no input was provided, ask: "What page do you want to generate schema markup for? Give me a URL, a file path, or paste the HTML."


Workflow

Step 1: Setup Check

Check the environment before doing anything else.

For live URLs: Confirm Chrome is running with remote debugging enabled. If the Chrome DevTools MCP is available, proceed. If not, try fetching the page with curl as a fallback.

For local files or pasted HTML: No Chrome needed. Read the content directly.

Check for GITHUB_TOKEN if the user wants a PR at the end. Note its presence but do not block. Output-only mode works without it.

QA: What is the input source? Is it accessible? State what crawl method you will use.


Step 2: Crawl the Page and Extract Content

Connect to the page using the available method.

Using Chrome DevTools MCP:

  • Navigate to the URL
  • Wait for the page to fully load (including JavaScript-rendered content)
  • Extract the full page text content and visible HTML structure
  • Capture: page title, meta description, headings (h1-h6), all body text, image URLs and alt text, links, any visible prices, dates, author names, company name, address, phone numbers, FAQ sections, numbered steps, reviews and ratings

Using curl fallback:

  • Fetch with a browser User-Agent
  • Parse the HTML for the same content listed above

Using local file or pasted HTML:

  • Read the content directly
  • Parse the same fields

QA: List the key content you found. What is the page about? What structured content exists (FAQ pairs, product pricing, article byline, address, steps)?


Step 3: Detect Schema Types Needed

Analyse the extracted content. A page often needs more than one schema type.

Detection rules:

Page typeRequired content signalsSchema type(s) to generate
FAQ page or FAQ section3 or more question/answer pairsFAQPage
Blog post or articleHeadline, author, publish date, article bodyArticle or BlogPosting
Company or about pageCompany name, description, logo or social linksOrganization
Product pageProduct name, price, availabilityProduct
HomepageSite name, search functionalityWebSite
How-to guide or tutorialNumbered steps with descriptionsHowTo
Page with breadcrumb navigationBreadcrumb trail visible on pageBreadcrumbList
Software tool or appApp name, OS, pricing, download linkSoftwareApplication
Local businessPhysical address, phone, hoursLocalBusiness

Apply multiple types if the page qualifies for more than one. A blog post page, for example, often needs Article and BreadcrumbList. An about page often needs Organization and WebSite (if it is the homepage).

State the schema types you will generate and why.

QA: Does the detected type match the page content? Is there enough data to populate the required fields for each type?


Step 4: Read the Spec and Templates

Read references/json-ld-spec.md for the required and recommended fields for each detected schema type.

Read references/output-template.md for the exact JSON structure to use for each type.

For each schema type you will generate, note:

  • Which required fields are present in the page content
  • Which required fields are missing (you will flag these, not invent them)
  • Which recommended fields are present and worth including

Step 5: Generate the JSON-LD

Generate one <script type="application/ld+json"> block per schema type.

Rules:

  • Every value must come from the page content extracted in Step 2
  • Use the templates in references/output-template.md as the structure
  • For missing required fields: add a comment inside the JSON as "MISSING_fieldName": "not found on page" so the user knows what to add
  • For missing recommended fields: omit them silently
  • Use ISO 8601 for all dates and durations
  • Use full absolute URLs for all image, page, and site references
  • Nest objects correctly (author as Person object, publisher as Organization object, etc.)
  • If multiple schema types apply, output each as a separate script block

Do not output generic placeholder values like "Company Name Here" or "Enter description". Either use the real value or flag it as MISSING.

QA: For each generated block, verify: Is every value traceable to the page content? Are all required fields either populated or explicitly flagged as MISSING?


Show full SKILL.md (418 more words)Show less
Step 6: Validate the Output

Before presenting the output, run through this checklist for each JSON-LD block:

  • Valid JSON syntax (no trailing commas, balanced braces)
  • @context is "https://schema.org"
  • @type matches the intended schema type
  • All required fields for the type are either populated or flagged as MISSING
  • All URLs are absolute (start with https://)
  • All dates use ISO 8601 format
  • No invented data: every value traces to page content
  • No placeholder strings left in the output

Fix any syntax errors before presenting. State which required fields were found and which were flagged as MISSING.


Step 7: Output and Deploy

Present the output clearly.

For each schema block:

  1. State the schema type and which page it belongs to
  2. Show the full <script type="application/ld+json"> block in a code block
  3. State where in the HTML to place it (inside <head> before </head>)
  4. List any MISSING fields the user needs to fill in manually

Then ask: "Should I open a GitHub PR to inject this into your codebase, or do you want to add it manually?"

If the user confirms a PR:

  • Check for GITHUB_TOKEN and GITHUB_REPO in the environment
  • Detect the framework (Next.js, Astro, plain HTML, etc.) to know the right injection point
  • Insert the script block in the correct location for the framework
  • Open a PR via the GitHub CLI or API

Framework-specific injection points:

FrameworkWhere to inject
Next.js (App Router)Add <Script type="application/ld+json"> inside the page component, or use next/head for pages router
AstroAdd inside <head> in the page's layout or front matter
HTMLAdd inside <head> before </head>
JekyllAdd to _includes/head.html or the page's front matter with a custom head include
NuxtAdd via useHead() composable or <Head> component

QA: Was the output placed correctly? Are all MISSING fields clearly communicated to the user?


What Good Output Looks Like

  • Every JSON-LD value traces directly to visible page content
  • Required fields are populated or explicitly flagged as MISSING with a clear label
  • JSON syntax is valid (parseable by any JSON validator)
  • URLs are absolute and correct
  • Dates are in ISO 8601 format
  • The placement instruction matches the user's actual framework
  • The user knows exactly what to do next

What Bad Output Looks Like

  • Invented values not present on the page ("Best Company Inc.", generic descriptions)
  • Placeholder strings left in the output
  • Relative URLs instead of absolute URLs
  • Missing @context or @type
  • Invalid JSON (trailing comma, unbalanced brackets)
  • Wrong schema type for the page content
  • Silent omission of required fields without flagging them

© Varnan-Tech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/schema-markup-generator of Varnan-Tech/opendirectory.

  • SKILL.md
  • .env.example
  • README.md
  • evals/evals.json
  • references/json-ld-spec.md
  • references/output-template.md

Open the folder on GitHubat commit 62e437a

Compare with similar skills

Schema Markup Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Schema Markup Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Schema Markup Generator this skillVarnan-Tech/opendirectory674—~2.1kAutomated safety check: PassMIT
SEO GeoReScienceLab/opc-skills1.8k4 repos~2.1kAutomated safety check: PassApache-2.0
GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude11k—~2.8kAutomated safety check: NotesMIT
Portaljs Add Dcatdatopian/portaljs2.4k1 repos~1.8kAutomated safety check: PassMIT
Schema Markupfreekmurze/dotfiles1k15 repos~1.2kAutomated safety check: PassNone
SEO Optimizerailabs-393/ai-labs-claude-skills4541 repos~3.2kAutomated safety check: PassMIT

Similar skills

  • SEO Geo

    ReScienceLab/opc-skills

    SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.

    1.8k GitHub starsUsed in 4 repos~2.1k tokens
    Marketing & SEOAuto-check passed
  • GEO-First SEO Audit Tool

    zubair-trabzada/geo-seo-claude

    Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.

    11k GitHub stars~2.8k tokensUpdated yesterday
    Marketing & SEOAuto-check: notes
  • Portaljs Add Dcat

    datopian/portaljs

    Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML…

    2.4k GitHub starsUsed in 1 repo~1.8k tokens
    Marketing & SEOAuto-check passed
  • Schema Markup

    freekmurze/dotfiles

    When the user wants to add, fix, or optimize schema markup and structured data on their site.

    1k GitHub starsUsed in 15 repos~1.2k tokens
    Marketing & SEOAuto-check passed
  • SEO Optimizer

    ailabs-393/ai-labs-claude-skills

    This skill should be used when analyzing HTML/CSS websites for SEO optimization, fixing SEO issues, generating SEO reports, or implementing SEO best practices.

    454 GitHub starsUsed in 1 repo~3.2k tokens
    Marketing & SEOAuto-check passed
  • Geo

    liangdabiao/GEO-Content-Optimizer-Skill

    完整的 GEO(生成式引擎优化)服务流水线:给一个产品官网 URL 和介绍材料, 做站点诊断与 AI 答案采样、生成带验收标准的执行工单、产出可直接部署的资产 (llms.txt / JSON-LD / 定义块 / FAQ / 内容大纲与初稿)、自动验收工单是否闭环、 并打包成可直接发给客户的交付物。可按周期复跑,做长期 GEO 运营与月报。

    203 GitHub starsUsed in 1 repo~2.3k tokens
    Marketing & SEOAuto-check: notes

More from Varnan-Tech/opendirectory

All 61 skills in this repo
  • Podcast Transcript Fetcher

    Varnan-Tech/opendirectory

    A skill your agent uses when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.

    674 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check: notes
  • Graphic Ebook

    Varnan-Tech/opendirectory

    Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.

    674 GitHub stars~5k tokensUpdated 1 mo ago
    Auto-check passed
  • Where Your Customer Lives

    Varnan-Tech/opendirectory

    Given a product utility and ICP, researches the internet to find the specific channels.

    674 GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Docs From Code

    Varnan-Tech/opendirectory

    Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.

    674 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Graphic Chart

    Varnan-Tech/opendirectory

    Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.

    674 GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Graphic Gif

    Varnan-Tech/opendirectory

    Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

    674 GitHub stars~3k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Schema Markup Generator

What does Schema Markup Generator do?

A skill your agent uses when the user asks to generate JSON-LD or structured data markup for a webpage. Schema Markup Generator is an agent skill from Varnan-Tech/opendirectory. Use when the user asks to generate JSON-LD or structured data markup for a webpage.

When should I use Schema Markup Generator?

Schema Markup Generator fits situations like: the user asks to generate JSON-LD; structured data markup for a webpage.

How do I install Schema Markup Generator in Claude Code?

Run `npx skills add Varnan-Tech/opendirectory --skill schema-markup-generator -a claude-code`. Or copy the skill folder (skills/schema-markup-generator in Varnan-Tech/opendirectory) into .claude/skills/schema-markup-generator in your project. Claude Code loads it when a task matches its description.

How do I install Schema Markup Generator in Codex?

Run `npx skills add Varnan-Tech/opendirectory --skill schema-markup-generator -a codex`. Or copy the skill folder (skills/schema-markup-generator in Varnan-Tech/opendirectory) into .agents/skills/schema-markup-generator in your project. Codex loads it when a task matches its description.

Can I use Schema Markup Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Varnan-Tech/opendirectory --skill schema-markup-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/schema-markup-generator, .gemini/skills/schema-markup-generator, .github/skills/schema-markup-generator and .opencode/skills/schema-markup-generator in your project.

What does Schema Markup Generator need to run?

Going by SKILL.md and its folder, Schema Markup Generator needs credentials named GITHUB_TOKEN. Our summary lists: A credential in GITHUB_TOKEN. Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"].

Does Schema Markup Generator access the network?

SKILL.md names 1 domain. As links in the text: schema.org. This is read from the text; nothing was executed.

Is Schema Markup Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Schema Markup Generator use?

Schema Markup Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Schema Markup Generator use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.8k tokens, read only when the agent opens those files.

What are the alternatives to Schema Markup Generator?

Skills that share tags, products or a category with Schema Markup Generator: SEO Geo (ReScienceLab/opc-skills, 1.8k stars), GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars), Portaljs Add Dcat (datopian/portaljs, 2.4k stars) and Schema Markup (freekmurze/dotfiles, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Schema Markup Generator?

Varnan-Tech (a GitHub organization) maintains it in Varnan-Tech/opendirectory, which has 674 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on August 16, 2026.

Source: Varnan-Tech/opendirectory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.