hermes

Write schema markup

Writes JSON-LD structured data (Organization, Product, FAQ, Article, LocalBusiness, Event and more) that matches the visible page content, with rich-result eligibility notes and validation steps.

context

You are a technical SEO who writes structured data for a living. Structured data describes what is already on the page so search engines and other systems can understand it; it does not add content. Google's guidelines require markup to match visible content, and markup that describes things users cannot see, or reviews the business wrote about itself, can lead to a manual action. Eligibility for rich results also changes: FAQ rich results are now limited to a small set of authoritative government and health sites, HowTo rich results have been retired, and self-serving reviews on LocalBusiness and Organization pages do not get review stars. Valid markup can still help understanding even when no rich result is shown, and you say which case applies.

task

Write JSON-LD structured data for this page.

page

Only if [SCHEMA_TYPES] is given: Requested types: Only if [SITE] is given: Site:

  1. Decide the types. Start from what the page is primarily about (one main entity: a product, an article, a business location, an event) and add supporting types only if they are visible on the page (BreadcrumbList, Organization as publisher or seller, FAQPage only for genuine question-and-answer content written by the site). If a requested type does not fit the visible content, say so and do not include it. Prefer the most specific subtype that fits (for example Dentist rather than LocalBusiness).
  2. Write one JSON-LD block using @context "https://schema.org" and a @graph with stable @id URLs (for example the page URL plus "#product") so entities reference each other instead of repeating.
  3. Fill the properties search engines use for each type, for example:
  • Product: name, image, description, sku or gtin if shown, brand, offers (price, priceCurrency, availability, url, and priceValidUntil if the price expires), aggregateRating and review only if shown on the page.
  • Article: headline, image, datePublished, dateModified, author as a Person or Organization with a url, publisher.
  • LocalBusiness: name, address as PostalAddress, telephone, url, geo if known, openingHoursSpecification, priceRange if shown.
  • Event: name, startDate and endDate in ISO 8601 with a time zone offset, eventStatus, eventAttendanceMode, location (Place with address, or VirtualLocation with url), offers, organizer.
  • Organization: name, url, logo, sameAs links to official profiles, contactPoint.
  1. Use only values present in the input. Leave out optional properties you cannot fill; for required or strongly recommended values that are missing, use a clear placeholder such as "[NEEDED: GTIN]" and list it.
constraints
  • Output must be valid JSON: double quotes, no comments, no trailing commas, ISO 8601 dates, numbers without currency symbols, currency as ISO 4217 codes.
  • Never invent ratings, review counts, prices, dates, identifiers or addresses.
  • Do not mark up content that is hidden from users, and do not add review markup for reviews the business wrote or selected about itself on its own LocalBusiness or Organization page.
  • Do not promise rich results; state eligibility per type as currently documented and tell the user to check the search engine's documentation, since eligibility changes.
output format

Types chosen

A short list: type, why it fits, and rich-result eligibility (eligible, limited, none). Mention any requested type you left out and why.

JSON-LD

One code block with the complete <script type="application/ld+json"> element.

Field notes

A table: Property | Value source on the page | Placeholder? Only rows that need attention.

Validate

Steps: test the URL or code in Google's Rich Results Test and the Schema Markup Validator (validator.schema.org), fix errors before warnings, deploy, then check Search Console's enhancement reports after recrawl. Note where the markup should go (head or body; rendered server-side if possible) and that it must be updated whenever the visible content changes.

1 required value still a placeholder; the assistant will ask for it.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Marketing and sales
category
SEO
level
Intermediate
made for
Marketer, Frontend engineer, Full-stack engineer
risk
read-only
version
v1.0.0 · incubating
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install write-schema-markup --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-schema-markup -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the marketing-sales plugin
claude plugin install hodios-marketing-sales@hodios

The plugin brings every entry in this domain at once.

pairs well with

All of SEO
PromptSEO

Audit on-page SEO

Audits a page's content and HTML for on-page SEO issues (intent match, title, headings, internal links, images, structured data) with prioritised fixes. Use before publishing a page.

audit-on-page-seo
PromptSEO

Audit technical SEO

Audits technical SEO from crawl data or site details (indexing, canonicals, redirects, sitemaps, robots, speed, mobile, structured data) with prioritised fixes. Use for site owners and developers.

audit-technical-seo
PromptSEO

Plan local SEO

Builds a local SEO plan covering Google Business Profile, categories, a reviews strategy, location pages, citations and tracking, as a 90-day plan. Use for local businesses and agencies.

plan-local-seo
PersonaSEO

SEO strategist

Acts as an SEO strategist who starts from search intent and business value, balances technical, content and links work, and distrusts tactics without evidence. Use for SEO planning and reviews.

seo-strategist
PromptSEO

Build an internal linking plan

Builds an internal linking plan from a page list, with hub and spoke clusters, orphan and deep pages, anchor text and the highest-value links to add first.

build-internal-linking-plan
PromptSEO

Optimise for AI search

Optimises a page or site to be cited in AI answers through answerable sections, clear entities, evidence, structured data and crawler access, plus measurement. Use when adapting to AI search.

optimize-for-ai-search