
resume-builder
Generate professional PDF resumes from structured data or JSON. Multiple templates, ATS-friendly output, and customizable sections.
- Installs
- 85
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill resume-builder- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads resume-builder automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Resume Builder
Create professional PDF resumes from structured data with multiple template styles. Supports JSON input, customizable sections, and ATS-friendly formatting.
Quick Start
from scripts.resume_builder import ResumeBuilder
# Build resume programmatically
resume = ResumeBuilder()
resume.set_contact("John Smith", "john@email.com", "555-123-4567", "San Francisco, CA")
resume.set_summary("Experienced software engineer with 5+ years...")
resume.add_experience("Software Engineer", "Tech Corp", "2020-Present", [
"Led development of microservices architecture",
"Improved system performance by 40%"
])
resume.add_education("B.S. Computer Science", "State University", "2019")
resume.add_skills(["Python", "JavaScript", "AWS", "Docker"])
resume.generate().save("resume.pdf")
# From JSON
resume = ResumeBuilder.from_json("resume_data.json")
resume.generate().save("resume.pdf")
Features
- Multiple Templates: Modern, classic, minimal, executive styles
- ATS-Friendly: Clean formatting that passes applicant tracking systems
- Customizable Sections: Experience, education, skills, projects, certifications
- Flexible Input: Python API or JSON data
- Professional Output: Clean PDF with proper typography
- Links: Clickable URLs for portfolio, LinkedIn, GitHub
API Reference
Initialization
resume = ResumeBuilder()
resume = ResumeBuilder(template="modern")
resume = ResumeBuilder.from_json("data.json")
resume = ResumeBuilder.from_dict(data)
Contact Information
# Basic contact
resume.set_contact(
name="John Smith",
email="john@email.com",
phone="555-123-4567",
location="San Francisco, CA"
)
# With links
resume.set_contact(
name="John Smith",
email="john@email.com",
phone="555-123-4567",
location="San Francisco, CA",
linkedin="linkedin.com/in/johnsmith",
github="github.com/johnsmith",
website="johnsmith.dev"
)
Summary/Objective
# Professional summary
resume.set_summary(
"Experienced software engineer with 5+ years building scalable "
"web applications. Passionate about clean code and mentoring."
)
# Or objective statement
resume.set_objective(
"Seeking a senior engineering role where I can leverage my "
"expertise in distributed systems and cloud architecture."
)
Work Experience
# Add experience entry
resume.add_experience(
title="Senior Software Engineer",
company="Tech Corporation",
dates="Jan 2020 - Present",
bullets=[
"Led team of 5 engineers in developing microservices architecture",
"Reduced API response time by 60% through optimization",
"Implemented CI/CD pipeline reducing deployment time by 80%"
],
location="San Francisco, CA" # Optional
)
# Multiple entries
resume.add_experience("Software Engineer", "Startup Inc", "2018-2020", [
"Built real-time notification system serving 1M+ users",
"Developed RESTful APIs using Python and FastAPI"
])
Education
# Add education
resume.add_education(
degree="Bachelor of Science in Computer Science",
school="State University",
year="2018",
gpa="3.8", # Optional
honors="Magna Cum Laude" # Optional
)
# With coursework
resume.add_education(
degree="M.S. Data Science",
school="Tech University",
year="2020",
coursework=["Machine Learning", "Statistical Analysis", "Big Data"]
)
Skills
# Simple skills list
resume.add_skills(["Python", "JavaScript", "React", "AWS", "Docker"])
# Categorized skills
resume.add_skills({
"Languages": ["Python", "JavaScript", "Go", "SQL"],
"Frameworks": ["React", "Django", "FastAPI"],
"Tools": ["Docker", "Kubernetes", "AWS", "Git"]
})
Projects
# Add project
resume.add_project(
name="Open Source Library",
description="Data validation library with 1000+ GitHub stars",
technologies=["Python", "PyPI"],
url="github.com/user/project" # Optional
)
Certifications
resume.add_certification("AWS Solutions Architect", "Amazon", "2023")
resume.add_certification("Professional Scrum Master", "Scrum.org", "2022")
Additional Sections
# Languages
resume.add_languages(["English (Native)", "Spanish (Fluent)", "French (Basic)"])
# Volunteer experience
resume.add_volunteer(
role="Tech Mentor",
organization="Code for Good",
dates="2021 - Present",
description="Mentor underrepresented students in programming"
)
# Publications
resume.add_publication(
title="Scaling Microservices",
venue="Tech Blog",
year="2023",
url="blog.com/article"
)
# Custom section
resume.add_custom_section("Awards", [
"Employee of the Year 2022",
"Hackathon Winner - Best Innovation"
])
Templates and Styling
# Set template
resume.set_template("modern") # Clean, contemporary
resume.set_template("classic") # Traditional, formal
resume.set_template("minimal") # Simple, ATS-optimized
resume.set_template("executive") # Premium, senior roles
# Custom colors
resume.set_colors(
primary="#2563eb", # Headers
text="#333333" # Body text
)
# Margins
resume.set_margins(top=0.5, bottom=0.5, left=0.6, right=0.6)
Generation
# Generate and save
resume.generate().save("resume.pdf")
# Get PDF bytes
pdf_bytes = resume.to_bytes()
Data Formats
JSON Format
{
"contact": {
"name": "John Smith",
"email": "john@email.com",
"phone": "555-123-4567",
"location": "San Francisco, CA",
"linkedin": "linkedin.com/in/johnsmith",
"github": "github.com/johnsmith"
},
"summary": "Experienced software engineer...",
"experience": [
{
"title": "Senior Software Engineer",
"company": "Tech Corp",
"dates": "2020 - Present",
"location": "San Francisco, CA",
"bullets": [
"Led development of microservices",
"Improved performance by 40%"
]
}
],
"education": [
{
"degree": "B.S. Computer Science",
"school": "State University",
"year": "2018",
"gpa": "3.8"
}
],
"skills": {
"Languages": ["Python", "JavaScript"],
"Frameworks": ["React", "Django"]
},
"projects": [
{
"name": "Open Source Tool",
"description": "Description here",
"technologies": ["Python"],
"url": "github.com/project"
}
],
"certifications": [
{
"name": "AWS Certified",
"issuer": "Amazon",
"year": "2023"
}
]
}
CLI Usage
# From JSON file
python resume_builder.py --input resume.json --output resume.pdf
# With template
python resume_builder.py --input data.json --template modern --output resume.pdf
# Quick resume (interactive prompts)
python resume_builder.py --quick --output resume.pdf
CLI Arguments
| Argument | Description | Default |
|---|---|---|
--input | Input JSON file | Required |
--output | Output PDF path | resume.pdf |
--template | Template style | modern |
Templates
Modern
- Clean sans-serif typography
- Blue accent color
- Clear section headers
- Good for tech roles
Classic
- Traditional serif fonts
- Black and gray colors
- Formal layout
- Good for traditional industries
Minimal
- Maximum ATS compatibility
- Simple formatting
- No colors or graphics
- Best for online applications
Executive
- Premium appearance
- Elegant typography
- Subtle accents
- Good for senior roles
Best Practices
- Keep it concise: 1 page for <10 years experience, 2 pages max
- Use action verbs: "Led", "Developed", "Improved", "Achieved"
- Quantify achievements: "Increased sales by 25%", "Managed team of 8"
- Tailor to job: Customize skills and summary for each application
- ATS-friendly: Use standard section headers, avoid tables/graphics
Dependencies
reportlab>=4.0.0
Pillow>=10.0.0
Limitations
- PDF output only
- English language optimized
- Maximum 2 pages
- No photo support (ATS best practice)
FAQ
What does the resume-builder skill do?
Generate professional PDF resumes from structured data or JSON. Multiple templates, ATS-friendly output, and customizable sections.
How do I install resume-builder?
Run npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill resume-builder in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/resume-builder/ (personal) or .claude/skills/resume-builder/ (project).
Which AI agents can use resume-builder?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is resume-builder safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains resume-builder?
It is published by dkyazzentwatwa in dkyazzentwatwa/chatgpt-skills. It has 85 recorded installs.
More from dkyazzentwatwa/chatgpt-skills
ocr-document-processor
dkyazzentwatwa/chatgpt-skills
Extract text and structure from scans, images, and scanned PDFs. Use for OCR, searchable PDFs, table extraction, receipt parsing, and business card parsing.
crypto-ta-analyzer
dkyazzentwatwa/chatgpt-skills
Run multi-indicator technical analysis on crypto or market OHLCV data. Use for deterministic trend, momentum, volume, and divergence analysis.
text-summarizer
dkyazzentwatwa/chatgpt-skills
Generate extractive summaries from long text documents. Control summary length, extract key sentences, and process multiple documents.
financial-calculator
dkyazzentwatwa/chatgpt-skills
Run loan, investment, NPV, retirement, savings, and risk calculations with schedules and charts. Use for deterministic financial modeling tasks.
document-converter-suite
dkyazzentwatwa/chatgpt-skills
Convert PDFs, Office docs, markdown, HTML, and tables between editable formats. Use for best-effort document conversion, PDF utilities, form filling, and table extraction.
image-enhancement-suite
dkyazzentwatwa/chatgpt-skills
Open the skill to read its SKILL.md instructions.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.