agskills.dev
MARKETPLACE

resume-builder

Generate professional PDF resumes from structured data or JSON. Multiple templates, ATS-friendly output, and customizable sections.

dkyazzentwatwa141

Prévia

SKILL.md
Metadata
name
resume-builder
description
Generate professional PDF resumes from structured data or JSON. Multiple templates, ATS-friendly output, and customizable sections.

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", "[email protected]", "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="[email protected]", phone="555-123-4567", location="San Francisco, CA" ) # With links resume.set_contact( name="John Smith", email="[email protected]", 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": "[email protected]", "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

ArgumentDescriptionDefault
--inputInput JSON fileRequired
--outputOutput PDF pathresume.pdf
--templateTemplate stylemodern

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

  1. Keep it concise: 1 page for <10 years experience, 2 pages max
  2. Use action verbs: "Led", "Developed", "Improved", "Achieved"
  3. Quantify achievements: "Increased sales by 25%", "Managed team of 8"
  4. Tailor to job: Customize skills and summary for each application
  5. 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)