How it works

This site is hosted on GitHub Pages, so there is no backend to receive a real POST. Instead, the payload is delivered to the page in one of two equivalent ways — both stay entirely on your machine:

  1. Form mode. Paste YAML or JSON below and click Generate PDF.
  2. URL mode (the “POST”). Append the payload to the URL as a base64-encoded fragment: #data=<BASE64_OF_YAML_OR_JSON>. Opening that URL auto-renders and downloads the PDF. URL fragments are never sent to the server, so your data stays private.

The schema is JSON Resume-compatible, so an existing resume.json works as-is — and YAML resumes are accepted because YAML 1.2 is a strict superset of JSON.

Driving this with Claude Code

Both flows are copy-paste prompts — nothing to install. Pick the one that matches what you've got:

Option 1: Install as a Claude Code skill (recommended)

Drop the file into your Claude Code skills directory and Claude treats it as your trusted config — the prompt-injection alarm doesn't fire because you placed it there:

mkdir -p ~/.claude/skills/yamlresume-walkthrough
curl -fsSL https://yamlresume.org/easy-skill.md \
  -o ~/.claude/skills/yamlresume-walkthrough/SKILL.md

Then in any Claude Code session, run /yamlresume-walkthrough or just say “help me make a resume” — Claude auto-matches the skill description. No restart needed.

Option 2: Paste the prompt directly

How to use this: click Copy below and paste the text into Claude Code as a regular message. Don't tell Claude to fetch this URL or follow the skill at yamlresume.org — pointing Claude at a URL of instructions looks like prompt injection and gets refused. Pasting the text yourself is the trusted path.

I'd like help making a PDF resume. Could you walk me through it
section by section — name, contact, a short summary, work history,
education, skills, and any extras — asking one quick question at a
time and showing a small example with each? Echo back what I tell
you in one short line so I can correct fast, and don't fabricate
dates, employers, or metrics for jobs I name (leave anything I
didn't say blank).

If at any point I say "fill in the rest," stop asking and assemble
the rest of the resume with clearly-bracketed placeholder text I can
edit later ([Company name — replace], [Replace — what did you
ship?], etc.) — keep my real answers untouched, but use square
brackets so the placeholders are obvious in the rendered PDF and
can't be shipped by accident. Don't sample-fill my actual name; ask
me for that if I haven't given it.

When we're done, save a self-contained resume.html in my current
working directory with print-friendly CSS (clean serif, A4-ish
margins, sane page breaks). If chromium --headless, wkhtmltopdf,
weasyprint, or pandoc is installed, also produce resume.pdf from
it; otherwise just tell me to open the HTML and Print → Save as PDF.

Standalone copy: easy-skill.md.

One-shot prompt (for when you already have your details)

Paste this into Claude Code along with your resume info. Full skill: SKILL.md.

You are helping me generate a PDF resume using yamlresume.org. The site is
fully static, so do NOT attempt a real HTTP POST. Instead:

1. Read the JSON Schema at https://yamlresume.org/schema.json (or the inline
   schema in index.html, id="resume-schema") to learn the exact payload
   shape. The schema is JSON Resume-compatible.
2. Build a YAML payload conforming to the schema using my details below.
   Required: basics.name. Recommended: basics.{label,email,summary,location,
   profiles}, work[], education[], skills[], projects[]. Use ISO-ish dates
   ("2022-01" or "Jan 2022"); use "Present" for current roles. Quote dates
   that are bare years ("2018") so YAML doesn't read them as integers.
3. UTF-8 encode the YAML, then base64-encode it. URL-safe base64 (+→-, /→_,
   drop = padding) is fine — the page accepts both.
4. Print exactly one line: https://yamlresume.org/#data=<BASE64> — nothing
   else.
5. Tell me to click that URL; my browser will render and download the PDF.

If the resulting URL is longer than ~6000 characters, instead print the YAML
in a fenced ```yaml``` code block and tell me to paste it into the textarea
on https://yamlresume.org/.

JSON works too if I give you JSON — the page accepts either.

My details:
<PASTE YOUR RESUME INFO HERE>

Payload schema (JSON Resume subset)

Top-level keys:

Full schema: schema.json. Samples: sample.yaml · sample.json.

Generate now

Paste YAML or JSON below and click Generate PDF.

FAQ

Where does my data go?

Nowhere. Everything runs in your browser tab — the textarea, URL fragment, and PDF rendering. No network requests carry your resume content.

Why YAML?

Multi-line summaries and bullet lists read better in YAML than JSON, and you don't have to escape quotes. JSON still works — paste a JSON Resume file directly.

What does the PDF look like?

A clean single-column serif resume — name, contact line, then Summary, Experience, Projects, Education, Skills (and Awards / Languages if you provide them). One template only; fork the repo to add others.

Why not a real POST?

GitHub Pages serves static files only. The URL-fragment trick gives the same single-step ergonomics without needing a server.