Skip to main content

Beautiful PDF resumes from YAML - for humans, not ATS

Project description

📄 Resumate - Because Your Resume Deserves Better Than MS Word

Python License: MIT Resume Power Level

"I spent 25 years mastering technology, then realized my resume still looked like it was made in 1995. So I fixed that." - Chris, probably

🚀 What The Hell Is This?

Resumate is a Python-powered resume generator that treats your career like the engineering project it deserves to be. No more fighting with Word margins at 2 AM. No more "why did my bullet points just explode?" Just clean YAML in, gorgeous PDF out.

Built by someone who:

  • ✅ Automated 20,000+ VMs
  • ✅ Managed enterprise infrastructure
  • Physically mails resumes to executives (yes, in 2025)
  • ❌ Refused to manually format another resume ever again

✨ Features That Actually Matter

  • YAML-Powered: Your resume data in clean, version-controllable YAML
  • Template Engine: Multiple templates from classic to "wow, how'd you do that?"
  • Skill Ratings: Visual skill bars because lists are boring
  • Icon Support: 2000+ tech icons built-in, plus use ANY custom SVG
  • QR Codes: For when you want to be that person (in a good way)
  • Two-Page Support: Different layouts for page 1 and continuation pages
  • CI/CD Ready: Generate resumes in your pipeline because why not?

🎯 Who Is This For?

  • Engineers who version control everything (including their breakfast)
  • People who think "just update your LinkedIn" is not a real answer
  • Anyone who's ever lost formatting after saving a Word doc as PDF
  • Folks who believe their resume should be as well-engineered as their code

🛠️ Installation

# From PyPI
pip install resumate

# From source (for the brave)
git clone https://github.com/chris17453/resumate.git
cd resumate
pip install -e .

🏃 Quick Start

# List available templates
resumate list_templates

# Generate your first resume
resumate generate_pdf my_resume.yaml --template Classic

# Or go wild with a custom template
resumate generate_pdf my_resume.yaml --template ./templates/cyberpunk-2077.yaml

📝 Resume YAML Structure

header:
  name: Your Name
  position: Senior Code Wizard | Dragon Slayer | Coffee Drinker
  email: you@example.com
  phone: 555-0100
  location: The Cloud ☁️

summary:
  text: |
    I solve problems. Sometimes with code, sometimes with duct tape.
    Results may vary. No refunds.

experiences:
- role: Principal Chaos Engineer
  company: StartupThatWillTotallyMakeIt Inc.
  start: '2020-01-01'
  end: '2025-12-31'
  achievements:
  - Turned "it works on my machine" into "it works on every machine"
  - Reduced coffee consumption by 5% while increasing code output by 200%

skills:
- category: Languages I Speak
  skills:
  - name: Python
    svg: python      # Just use the name - we'll find the icon
    rating: 5
  - name: JavaScript
    svg: javascript  # 2000+ icons built-in
    rating: 4
  - name: Internal Tool
    svg: ./icons/internal.svg  # Or use your own SVG!
    rating: 3

🎨 Icons - Built-in and Bring Your Own

2000+ Icons Included (Under 60MB!)

We bundle Font Awesome and Simple Icons so you get instant access to virtually every tech logo and icon you need. Just use the name:

skills:
- name: Docker
  svg: docker       # Finds Docker logo automatically
- name: Kubernetes
  svg: kubernetes   # Finds K8s logo
- name: Team Lead
  svg: users        # Font Awesome icons work too

Custom Icons? Just Drop The Path!

Got a special icon? Company logo? That perfect SVG you found? Just use the file path:

- name: Secret Project
  svg: ./my-icons/classified.svg           # Relative path
- name: Corporate Tool
  svg: /home/user/company/tool-icon.svg   # Absolute path
- name: FluentUI Icon
  svg: /opt/fluentui/assets/Trophy/SVG/ic_fluent_trophy_32_filled.svg

Why Not FluentUI By Default?

We love FluentUI's colorful icons, but they're several hundred MB. We chose Font Awesome + Simple Icons to keep the package lean. But if you want those pretty FluentUI icons, just clone them and reference the paths!

How Icon Resolution Works

When you write svg: something, Resumate searches in order:

  1. File exists? → Uses it
  2. In Font Awesome? → Uses it
  3. In Simple Icons? → Uses it
  4. Can't find it? → Logs warning, continues

🎨 Templates

Built-in Templates

  • Classic: Professional two-column with header image
  • Minimal: For when less is more
  • Tech: Icon-heavy for the tech crowd
  • Executive: When you need to look expensive

Custom Templates

Templates are just YAML files. Make your own! Add comic sans if you dare! We won't judge (much).

🔥 Advanced Features

Skill Ratings with Icons

skills:
- category: Cloud Juggling
  skills:
  - name: AWS
    svg: amazonwebservices  # or just 'aws'
    rating: 5  # I dream in CloudFormation
  - name: Azure
    svg: azure  
    rating: 3  # When the client insists
  - name: Our Platform
    svg: ./company/platform-logo.svg  # Custom icon
    rating: 5

Dynamic QR Codes

# Embed your LinkedIn, GitHub, or Rick Astley
qr_codes:
  linkedin: https://linkedin.com/in/yourprofile
  github: https://github.com/yourusername
  secret: https://www.youtube.com/watch?v=dQw4w9WgXcQ

🤝 Contributing

Found a bug? Want to add a feature? Think the README needs more emojis?

  1. Fork it
  2. Branch it (git checkout -b feature/more-cowbell)
  3. Commit it (git commit -am 'Add more cowbell')
  4. Push it (git push origin feature/more-cowbell)
  5. PR it

🐛 Known Issues

  • Doesn't fix your actual job search
  • May cause excessive confidence in interviews
  • Side effects include wanting to automate everything
  • Not responsible for recruiters who can't handle the awesomeness

📖 Documentation

Full docs at [coming soon] - currently just this README and good vibes.

🙏 Credits

Built with:

  • ReportLab - The PDF wizardry
  • PyYAML - Because JSON is for machines
  • SVGLib - Making icons work since forever
  • Coffee - The real MVP

Icons from:

  • Font Awesome - Everything else (2000+ icons)
  • Simple Icons - The ones DevIcons missed
  • Your imagination - Custom SVGs welcome!

📜 License

MIT - Use it, abuse it, just don't blame me when your resume is too good.

🚨 Disclaimer

This tool will not:

  • Get you a job (that's on you)
  • Fix your typos (use spell check)
  • Make you taller (sorry)

This tool will:

  • Make your resume look professional AF
  • Save you hours of formatting hell
  • Give you something to talk about in interviews ("Oh this? I built a custom resume generation pipeline...")

Built with 🤬 and ☕ by Chris Watkins

Because sometimes you need to engineer the hell out of a simple problem

⭐ Star this repo | 🐛 Report Bug | 🎉 Request Feature

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resumate-0.1.3.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

resumate-0.1.3-py3-none-any.whl (5.0 MB view details)

Uploaded Python 3

File details

Details for the file resumate-0.1.3.tar.gz.

File metadata

  • Download URL: resumate-0.1.3.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for resumate-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7e0e96d347c841a8560a1eeea5ec03238bd6d0916c827032eb76ae562410a266
MD5 bbe2425d4adaa843f65532a4fcd731b8
BLAKE2b-256 e8a5073ec0fe46f9e69ccd544b66f421602dd61cbaad8539dcf178c1380f5515

See more details on using hashes here.

File details

Details for the file resumate-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: resumate-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for resumate-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 86cfc5127d8e68cf9127a0ce6b3dd0e3bcb124db80e946896dc4f8f0ee6c3793
MD5 36f46a587f0ebbde6b084c0b9a5039e1
BLAKE2b-256 dc74a39cf33d02492c85d5f2adf26074adb2e786b6a3b849047a90a6cd9610ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page