resume-builder
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user wants to turn structured career data (YAML/JSON work history, education, skills, projects, certifications) into a polished resume — a styled HTML page, a PDF export, or a re-themed (minimal/modern/classic) version of an existing resume — for job applications or an ATS-friendly document.
- Installs packages
25 other projects use a version of this.
Adopted by
Most recently taken up by
- siddqamar/resume-builder-skilltheir own version, first seen Nov 8, 2026
- HeisenbergUwU/resume-builder-skilltheir own version, first seen Nov 8, 2026
- delmarstudios/job-search-skillstheir own version, first seen Nov 1, 2026
- HaroonArshad-53/skills-for-everyonetheir own version, first seen Oct 17, 2026
- barryallen16/ats-resume-creation-skilltheir own version, first seen Oct 15, 2026
- aadilmallick/claude-skillstheir own version, first seen Oct 15, 2026
Other versions25 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 25
- Jichengyuuuuu/resume-builder-skill★ 160same name
- StoneLL1/resume-builder★ 127same name
- Exploration-labs/Nates-Substack-Skills★ 55same name
- cosen1024/resume-builder-skill★ 43same name
- Chasen-Liao/resume-skills★ 36same name
- aiunlocked1412/claude-skill-unlock★ 18same name
- jackjin1997/ClawForge★ 12same name
- toddward/claude-skills-playground★ 12same name
- phanghonghao/THU-Awesome-Skills★ 8same name
- HeisenbergUwU/resume-builder-skill★ 6same name
15 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- changelog-generatorSkill
- color-palette-generatorSkill
- cron-taskSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- file-organizerSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- uptime-kuma-self-hostSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Do not use this skill for:
- Very specific: line 127
Always generate the PDF from the final HTML with printBackground: true (puppeteer) or print-color-adjust: exact (weasyprint) so the …
- Very specific: line 168
Missing
enddate rendered as blank: Always render Present for an open-ended role — never leave the date range blank. - Very specific: line 175
Over-styling to force one page: Don't shrink below 9pt to fit — trim summary and cap highlights to 3-4 per role instead.
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
resume-builder
Overview
Turn structured career data into a clean, professional resume rendered as HTML and exported to PDF. The skill owns the data model, three visual templates, and two PDF backends so the agent produces a consistent artifact regardless of the user's environment.
When to Use
- The user supplies (or asks the agent to draft) a resume from facts: jobs, education, skills, projects, certifications, contact info.
- The user has a YAML/JSON resume and wants a styled HTML page or a PDF.
- The user wants to re-theme an existing resume (minimal / modern / classic) without re-typing content.
- The user needs a portable, ATS-friendly document for job applications.
Do not use this skill for:
- Cover letters (single narrative prose) — that is a different artifact.
- Full CVs with publications/grants requiring a two-column academic layout (the classic template can approximate it, but flag the limitation).
- Free-form un-structured prompts with no data — first collect data (see Input Format), then render.
Input Format
The skill consumes one structured document. Prefer YAML for hand-authoring; accept JSON interchangeably. The canonical schema:
basics:
name: "Alex"
label: "Senior Software Engineer"
email: "monica@example.com"
phone: "+1 555 0100"
url: "https://monica.example.com"
location: "Berlin, Germany"
summary: "Engineer focused on distributed systems and developer tooling."
sections:
work:
- company: "Acme Corp"
position: "Staff Engineer"
start: "2021-03"
end: "2024-06"
location: "Remote"
highlights:
- "Led migration of the billing service to event-driven architecture."
- "Cut p99 latency 40% by introducing a read-through cache."
education:
- institution: "TU Berlin"
area: "Computer Science"
degree: "M.Sc."
start: "2016"
end: "2018"
skills:
- "Go"
- "Kubernetes"
- "Distributed Systems"
projects:
- name: "openmetrics-cli"
description: "A tiny Prometheus exporter toolkit."
url: "https://github.com/monica/openmetrics-cli"
certifications:
- name: "CKA"
issuer: "CNCF"
date: "2022"Rules the agent must enforce:
basics.nameand at least onesections.workorsections.educationentry are required; everything else is optional and omitted if absent.- Dates use ISO
YYYYorYYYY-MM. Render ranges as2021-03 – 2024-06; an open-ended role usesPresentfor a missingend. highlightsare bullet points; keep each to one line, action-verb led.- Unknown top-level keys are ignored, not erroring.
Template Options
Three bundled, dependency-light CSS templates. The agent picks based on the
user's stated preference or defaults to modern.
- minimal — single column, generous whitespace, hairline rules, neutral sans-serif. Best for engineering and design roles; fastest to scan.
- modern — accent color header band, two-tone palette, subtle typographic scale. Good general-purpose default.
- classic — serif body, ruled section headers, traditional chronology. Best for finance, law, academia-adjacent roles.
Each template is a self-contained <style> block plus semantic HTML, so the
rendered page works offline and prints predictably. The agent sets the accent
color and font stack via CSS custom properties (see Customization).
PDF Generation
Two backends; pick whichever the user's machine can run.
weasyprint (recommended, headless-friendly)
pip install weasyprint
weasyprint resume.html resume.pdfWeasyPrint renders HTML/CSS directly — no browser needed. It honors @page
size, margins, and print-color-adjust: exact, so colors survive to PDF.
Best when Chromium is unavailable.
puppeteer (best fidelity to screen CSS)
npm install puppeteer
node -e "const p=require('puppeteer');(async()=>{const b=await p.launch();const pg=await b.newPage();await pg.goto('file://'+process.cwd()+'/resume.html',{waitUntil:'networkidle0'});await pg.pdf({path:'resume.pdf',format:'A4',printBackground:true});await b.close();})()"Puppeteer gives pixel-accurate output and supports web fonts. Slower to install and needs a Chromium download. Use when the user already has Node tooling.
Always generate the PDF from the final HTML with printBackground: true
(puppeteer) or print-color-adjust: exact (weasyprint) so the template's
background colors and rules appear.
HTML Output
The agent writes a single resume.html:
- One root
<article class="resume template-<name>">. langattribute set frombasicslocale or defaulten.- Inline
<style>in<head>; no external requests (fonts fall back to system stacks) so the file is portable. - Contact links use
mailto:/tel:andrel="noopener"on externalurl. - Section order: summary → work → education → projects → skills → certifications. Sections with no data are dropped; the order is fixed for ATS consistency.
Customization
Drive appearance through CSS custom properties at :root so users restyle
without touching markup:
:root{
--accent:#2563eb;
--ink:#111827;
--paper:#ffffff;
--font-sans: "Inter", system-ui, sans-serif;
--font-serif: "Georgia", serif;
--space: 0.75rem;
}- Recolor: set
--accent. For classic, also set--font-body: var(--font-serif). - Page size: override
@page { size: A4; margin: 14mm; }(Letter for US users). - Multi-page: templates are fluid; long resumes paginate automatically. Add
break-inside: avoidon.entryto keep a role's block together. - One-page coercion: if the user demands one page, shrink
--spaceand font sizes, trimsummary, and caphighlightsto 3–4 per role rather than dropping sections.
Common Pitfalls
- Missing
enddate rendered as blank. Always renderPresentfor an open-ended role — never leave the date range blank. - WeasyPrint missing system libs. On minimal Linux images, Pango/cairo aren't present — install
libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0first, or fall back to puppeteer. - Fonts not embedded in PDF. Web fonts loaded via
<link>may not print — use system font stacks, or inline@font-faceonly if the user supplies font files. - Print background stripped. Without
printBackground:true(puppeteer) orprint-color-adjust:exact(weasyprint), accent bands disappear — the #1 "my PDF looks blank" bug. - ATS parsing broken by layout. Text-in-images or heavy two-column sidebars can confuse ATS parsers — the minimal/modern templates are ATS-safe; flag the risk if the user demands a dense two-column layout.
- Non-ISO dates left unnormalized. Convert
Mar 2021→2021-03before rendering, or date ranges sort/display incorrectly. - Long URLs in
highlightsbreaking layout. Wrap or shorten raw URLs in bullet points rather than letting them overflow the line. - Over-styling to force one page. Don't shrink below 9pt to fit — trim
summaryand cap highlights to 3-4 per role instead.
Verification Checklist
- Required fields present:
basics.nameand at least oneworkoreducationentry - All dates rendered as
YYYY-MMranges (orPresentfor open-ended roles), no raw blanks - Rendered HTML opens correctly with no external network requests (fonts/styles are self-contained)
- PDF export includes background colors/accent bands (
printBackground/print-color-adjustwas set) - PDF page size matches the user's expected paper size (A4 vs Letter)
- Resume fits the requested page count without text below 9pt
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

