Editorial resume
Single-page A4 PDF resume skill for Claude Code / Codex — turn your context into a tier-1-tech-grade resume in editorial bilingual style.
npx -y skills add wilson534/editorial-resumeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate a single-page A4 PDF resume in editorial bilingual (中/英) style — the kind that lands top-tier tech jobs. Trigger when the user asks to build, write, update, polish, or export their resume; or wants a "looks-like-Peng-Zhiwei's-resume" PDF. Reads the user's context (chat history, attached docs, GitHub repos, LinkedIn dump, prior drafts) and produces a printable PDF without asking 20 questions.
SKILL.md
5.5 KB, as published. Nobody here has run it
Editorial Resume
A single-page A4 resume PDF generator with editorial bilingual layout. Outputs resume.pdf from the user's context with zero or minimal questions.
When to use
- User asks "帮我做简历 / write my resume / update my CV / export my resume to PDF"
- User wants a printable PDF version of their portfolio/profile
- User uploads an old resume / LinkedIn export / GitHub README and wants it polished into a standard tier-1-tech resume
What you do
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".
Step 1 — Gather information 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).
Step 2 — Read the reference
Open examples/example-resume.html to internalize:
- The CSS variables, fonts, font sizes, line heights — copy these verbatim, do not redesign
- The bilingual mixing: Chinese for sections/labels, English for tech terms wrapped in
<span class="en-lg">for typographic harmony - The bullet density: each bullet is 1-2 lines, leads with a verb or quantified outcome
- The 1-page A4 constraint — total content height must fit ~1090px
Step 3 — Write the resume HTML
Create a new HTML file at the user's project root (e.g. resume.html) that:
- Reuses
examples/example-resume.html's CSS block byte-for-byte (including the:rootvariables and all class definitions) - Replaces the content within
.pagewith the user's data, following the same DOM structure - Embeds the avatar as
<img class="avatar" src="...">— accept any local path or web URL the user provides; if no avatar, omit the<img>tag and let.header-leftflex naturally - Keeps all
<span class="en-lg">…</span>wrapping for English terms in titles (improves typographic balance with mixed CJK)
Step 4 — Render PDF + auto-fit to one page
Run scripts/render.py with the HTML path:
python3 scripts/render.py /path/to/resume.html
This:
- Renders via Playwright's bundled Chromium (the only reliable headless renderer for CJK on macOS — system Chrome's headless mode renders CJK as blank)
- Outputs
resume.pdfnext to the HTML - Reports the page count
- If >1 page: progressively tightens
.sectionmargin-top,.entrymargin-bottom, and.pagepadding until it fits, or reports back so you can suggest content cuts
If 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.
Step 5 — Show result
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.
Style rules (non-negotiable)
- Single page A4 — never 2 pages. Density beats whitespace for fresh-grad/IC resumes.
- No emojis in the resume body.
- No filler adjectives ("热爱", "擅长沟通", "团队合作精神") — replace with quantified outcomes.
- Bullets lead with verb + outcome: "主导 X 0-1 定义与交付,达成 Y 指标" beats "参与了 X 的工作".
- English tech terms keep their casing:
LangChain,LangGraph,Agent,Marketplace,to-Reader— wrap in<span class="en-lg">if it improves rhythm. - Numbers > prose: "599 名学生扫描,识别 76 篇有论文记录" beats "扫描了大量论文".
First-time setup (only if Playwright is missing)
pip3 install playwright
python3 -m playwright install chromium
The render script checks for these and prints clear errors if missing.
Files
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.