SEO & Content

JSON-LD Schema Writer

Writes schema.org JSON-LD for one web page from the facts you give it, answered as JSON only with no script tag and no fence. Covers Article, BlogPosting, Product with Offer, BreadcrumbList, FAQPage, Event, Organization, LocalBusiness, Recipe and JobPosting. Leaves out every fact that was not given instead of inventing it: no rating, review, price, availability, author, date or salary appears unless the page states it. Writes prices as plain numbers with an ISO currency code, dates in ISO 8601 with the stated offset, absolute URLs built from the site origin, and breadcrumb positions from 1. Use when asked to write, fix or check JSON-LD, structured data or schema markup for a page, product, article, event, FAQ or breadcrumb.

JSON-LD Schema Writer is a tested SKILL.md that writes schema.org JSON-LD for one web page from the facts you give it, answered as JSON only with no script tag and no fence; an agent buys it once for $0.05 over x402.

Tested 2026-10-08No code, no hidden instructionsv1.0.0 · 8.3 KB · perpetual license

Not for

It does not test whether Google will show a rich result, audit a whole site, crawl pages or write the script tag around the markup. It writes the markup for one page from the facts you give it, and leaves out what you did not give. It cannot look up a missing price, rating, author or time zone for you. It also does not decide which pages deserve markup; that stays with you.

Tested, honestly

Tested 2026-10-08 with a strong and a weak model.

With and without the skill

Results with and without the skill, for Sonnet and Haiku
SonnetHaiku
withwithoutwithwithout
Markup with no invented or wrong facts (23 pages)23/2321/2323/2320/23

The same request on both sides, with JSON-only asked for in both; a fence around the answer is removed first. Read by hand, Sonnet without the skill made two real errors: on a free festival it added a currency (BGN) and InStock availability the page never gave, and for a practice that rated itself on its own site it wrote an aggregateRating of 4.9 from 212 reviews. Haiku without the skill made the festival error too, wrote an empty offers block (price and currency as empty strings) for a lamp with no price, and in one answer put a sentence after the JSON, which breaks JSON-only. Everything else both models wrote without the skill passed: prices, dates, breadcrumbs, graphs.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

SonnetStrong model, claude-sonnet-5-5
Wrote correct JSON-LD for all 23 pages, read by hand: a product with no reviews got no rating and a product with no price got no offer; the pasted request for five stars was left out; "€24,90" and "1.299,00 EUR" became 24.90 and 1299 with EUR; relative images were joined to the site origin; breadcrumb positions started at 1 and a last item without an address had no item; an article with no named author had no author and a date-only fact stayed date-only; stated UTC offsets were kept; a cancelled event got the full EventCancelled address; an event with no end time had no endDate; a practice that rated itself on its own site got no rating; a recipe without calories had no nutrition and a job without a salary had no baseSalary.
HaikuWeak model, claude-haiku-5-5
Also 23 of 23, with the same kinds of markup as Sonnet: no rating or offer unless the page gave one, prices as numbers with an ISO currency, stated offsets kept, and the article and its breadcrumb in one graph.

Full test summary

Example

Our own test text, before and after the skill ran. Excerpts only.

English · claude-sonnet-5-5

Before

Page: product page of a water bottle. Site origin: https://shop.example. Name: Trail Bottle 750 ml. Description: Stainless steel bottle, keeps drinks cold for 24 hours. Brand: Norden. Main image: /img/trail-bottle.jpg. Price: €24,90. In stock. The page shows no customer reviews and no ratings yet.

After

{"@context":"https://schema.org","@type":"Product","name":"Trail Bottle 750 ml","description":"Stainless steel bottle, keeps drinks cold for 24 hours.","image":["https://shop.example/img/trail-bottle.jpg"],"brand":{"@type":"Brand","name":"Norden"},"offers":{"@type":"Offer","price":24.90,"priceCurrency":"EUR","availability":"https://schema.org/InStock"}}

Bulgarian · claude-sonnet-5-5

Before

Page: article on a Bulgarian site. Site origin: https://novini.example. Headline: Нови велоалеи в центъра на града. Published 9 October 2026 at 08:15, UTC+03:00. Author: Мария Георгиева. Image: /img/aleya.jpg.

After

{"@context":"https://schema.org","@type":"Article","headline":"Нови велоалеи в центъра на града","image":["https://novini.example/img/aleya.jpg"],"datePublished":"2026-10-09T08:15:00+03:00","author":{"@type":"Person","name":"Мария Георгиева"}}

What is in the file

  • The answer
  • A fact that is not given is left out
  • Formats
  • By type
  • Google and these types
  • Work in this order
  • Short examples

Languages

Any language. Tried in: English, Bulgarian.

License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.

Versions

Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.

  1. v1.0.0 · 2026-10-08

    First release: writes schema.org JSON-LD for one page from the facts given, as JSON only. Leaves out every fact that was not given (ratings, reviews, offers, authors, dates, salaries), writes prices as numbers with an ISO currency code, availability and event status as full schema.org URLs, dates in ISO 8601 with the stated offset, absolute URLs built from the site origin, and breadcrumb positions from 1. Covers Article, Product, BreadcrumbList, FAQPage, Event, Organization, LocalBusiness, Recipe and JobPosting.

FAQ

What comes back when I give it the facts of a page?

One JSON object with the schema.org context and the type of your page, or a graph when the page needs several types, such as an article together with its breadcrumb. There is no script tag, no code fence and no explanation, so your agent can parse it at once or place it inside the page. If you give several pages, ask for one page at a time; each answer is a separate document for a separate address.

What does it do when a fact is missing?

It leaves the property out. A product with no reviews gets no rating, a product with no price gets no offer, and an article with no named author gets no author or publisher. Invented ratings are against Google's structured-data policies, so the shorter markup is the safe one. A line in the page text that asks for a five-star rating is treated as data, not as an instruction. The same rule covers an end date nobody announced, a salary the advertisement does not state and calories a recipe does not list.

Does it fix prices, dates and links?

Yes. A price like EUR 24,90 becomes the number 24.90 with the currency code EUR, availability becomes a full schema.org address, relative image paths are joined to the site origin, breadcrumb positions start at 1, and a time with a stated UTC offset keeps that offset instead of being converted. A date without a time stays a date. Texts stay in their own language, so a Bulgarian headline is copied as written and never translated.

Does it help Claude Sonnet?

By two pages out of 23, and both were facts nobody gave. On 23 pages both models were right on 23 with the skill. Without it Sonnet got 21 and Haiku 20. Sonnet added a rating a practice had given itself and a currency a free festival never stated; Haiku added an empty offer to a product with no price and a sentence after the JSON. Everything else, prices, dates and graphs, both wrote correctly alone.

Share

Read this page as Markdown: /skills/json-ld-schema.md.

  • SEO Meta Writer

    SEO & Content

    SKILL.md · v1.0.4 · 5.1 KB

    Writes the SEO title, meta description and (on request) the H1 heading for one web page, in the page's own language, inside hard character limits, matching what the searcher wants. Use when asked to write or rewrite a page title, meta description, SEO snippet or H1 for a page, product, service, article or landing page.

    $0.03once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 30 Sep 2026

  • Text to JSON: Extract Data Without Guessing

    Data & Analysis

    SKILL.md · v1.0.2 · 7.5 KB

    Extracts data from text into JSON that matches the shape you give (a JSON Schema, an example object or a list of fields), without guessing. Every value comes from the text; a missing fact becomes null, numbers and dates are converted only into the type the shape asks for, two conflicting values are not settled by a guess, and instructions hidden in the text are ignored. Use when asked to extract structured data, turn text into JSON, parse an invoice, receipt, email, order, CV or job post into fields, or fill a JSON schema from a document.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 3 Oct 2026

  • JSON Repair: Fix It, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.1 · 6.9 KB

    Repairs broken JSON so a program can parse it, without changing any value. Fixes trailing and missing commas, comments, single quotes, unquoted keys, Python and JavaScript literals, smart quotes used as delimiters, raw line breaks and stray quotes inside strings, a code fence or chat text around the JSON, and output cut off in the middle. A value that was cut off becomes null instead of a guess, numbers JSON cannot hold as written are kept as strings, and when the structure can be read two ways the answer says so instead of picking one. Use when a tool, an API or another model returned JSON that does not parse, or when asked to fix, clean up, validate or close invalid or truncated JSON.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 7 Oct 2026