📄 Resumate - Because Your Resume Deserves Better Than MS Word
"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:
- File exists? → Uses it
- In Font Awesome? → Uses it
- In Simple Icons? → Uses it
- 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?
- Fork it
- Branch it (
git checkout -b feature/more-cowbell) - Commit it (
git commit -am 'Add more cowbell') - Push it (
git push origin feature/more-cowbell) - 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
Metadata
Release files for resumate 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| resumate-0.1.3.tar.gz | 2.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| resumate-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.9 MB
Release files / resumate-0.1.3.tar.gz
| Download URL | resumate-0.1.3.tar.gz |
|---|---|
| Size | 2.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e0e96d347c841a8560a1eeea5ec03238bd6d0916c827032eb76ae562410a266
|
|
BLAKE2b-256 checksum How to use checksums |
e8a5073ec0fe46f9e69ccd544b66f421602dd61cbaad8539dcf178c1380f5515
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / resumate-0.1.3-py3-none-any.whl
| Download URL | resumate-0.1.3-py3-none-any.whl |
|---|---|
| Size | 5.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86cfc5127d8e68cf9127a0ce6b3dd0e3bcb124db80e946896dc4f8f0ee6c3793
|
|
BLAKE2b-256 checksum How to use checksums |
dc74a39cf33d02492c85d5f2adf26074adb2e786b6a3b849047a90a6cd9610ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|