Single-page A4 PDF resume skill for Claude Code / Codex — turn your context into a tier-1-tech-grade resume in editorial bilingual style.
SaferSkills independently audited editorial-resume (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A single-page A4 resume PDF generator with editorial bilingual layout. Outputs resume.pdf from the user's context with zero or minimal questions.
You are responsible for end-to-end PDF generation. Do NOT make the user fill a form. The whole point is "one shot from context".
Mine the conversation history, any attached files, and the user's repo for:
| Field | Where to look |
|---|---|
| Name (Zh + En) | first message, signature, GitHub profile, prior resume |
| Role / title | inferred from job target the user mentions, or current role |
| Tagline / one-liner | what kind of work they ship; pull from their bio |
| Contacts | GitHub, email, WeChat, phone, personal site, LinkedIn |
| 个人简介 (summary) | 2-4 sentences synthesizing what they've shipped |
| 实习经历 (internships) | dated work entries with org, role, 3-4 bullets each |
| 项目经历 (projects) | independent projects with link, role, 3 bullets |
| 教育背景 | school + major + GPA + honors |
| 奖项荣誉 (awards) | competition wins, scholarships, recognitions |
| 技能 (skills) | grouped: tools / stack / methods / domain |
| 黑客松项目 (hackathons) | one-line each, optional |
If a section is genuinely missing from context, omit it — don't fabricate. Better a 1-page resume with 5 sections than a stretched one with empty padding.
If critical fields are missing (name, at least one work/project), ask once in a single bundled message (not a sequence of small questions).
Open examples/example-resume.html to internalize:
<span class="en-lg"> for typographic harmonyCreate a new HTML file at the user's project root (e.g. resume.html) that:
examples/example-resume.html's CSS block byte-for-byte (including the :root variables and all class definitions).page with the user's data, following the same DOM structure<img class="avatar" src="..."> — accept any local path or web URL the user provides; if no avatar, omit the <img> tag and let .header-left flex naturally<span class="en-lg">…</span> wrapping for English terms in titles (improves typographic balance with mixed CJK)Run scripts/render.py with the HTML path:
python3 scripts/render.py /path/to/resume.htmlThis:
resume.pdf next to the HTML.section margin-top, .entry margin-bottom, and .page padding until it fits, or reports back so you can suggest content cutsIf rendering still spills to page 2 after auto-fit, suggest the user cut content (drop the weakest bullet, merge two short entries, etc.) — never let a resume be 1.05 pages.
Print the absolute path of the generated PDF. If the environment supports it, also show a screenshot/preview of the first page so the user can sanity-check before sharing.
LangChain, LangGraph, Agent, Marketplace, to-Reader — wrap in <span class="en-lg"> if it improves rhythm.pip3 install playwright
python3 -m playwright install chromiumThe render script checks for these and prints clear errors if missing.
examples/example-resume.html — reference resume (彭智炜's actual one). Read this to learn the style. Don't copy his content.examples/example-avatar.jpg — reference avatar (use only as visual reference for portrait crop ratio: 76×102, slight 3px radius).scripts/render.py — Playwright PDF renderer with auto-fit-to-one-page logic.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.