
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
yaml-resume-builder
Advanced tools
A Python package that generates professional PDF resumes from YAML files using Jake's LaTeX template. Define your resume content in simple YAML format and convert it to a polished, ATS-friendly PDF with a single command.
latexmk command available in your PATH:sudo apt update && sudo apt install texlive-full latexmk
Install MacTeX (includes latexmk):
brew install --cask mactex
Install MiKTeX (includes latexmk):
# Install from PyPI
pip install yaml-resume-builder
# Or install directly from GitHub
pip install git+https://github.com/husayni/resume_builder.git
# Clone the repository
git clone https://github.com/husayni/resume_builder.git
cd resume_builder
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install the package in development mode with dev dependencies
pip install -e ".[dev]"
# Create a sample YAML resume file
yaml-resume-builder init --output my_resume.yml
# Build a resume from a YAML file
yaml-resume-builder build --input my_resume.yml --output resume.pdf
# Build a resume optimized to fit on one page
yaml-resume-builder build --input my_resume.yml --output resume.pdf --one-page
# Build with debug mode to save the intermediate LaTeX file
yaml-resume-builder build --input my_resume.yml --output resume.pdf --debug
from yaml_resume_builder import build_resume
# Build a resume from a YAML file
build_resume(
input_path="my_resume.yml",
output_path="resume.pdf"
)
# Build a resume optimized to fit on one page
build_resume(
input_path="my_resume.yml",
output_path="resume.pdf",
one_page=True
)
# Build with debug mode enabled
build_resume(
input_path="my_resume.yml",
output_path="resume.pdf",
debug=True
)
# Build with both one-page optimization and debug mode
build_resume(
input_path="my_resume.yml",
output_path="resume.pdf",
debug=True,
one_page=True
)
The --one-page flag (or one_page=True in the Python API) automatically optimizes your resume to fit on a single page. This feature uses progressive optimization techniques:
# CLI usage
yaml-resume-builder build -i resume.yml -o resume.pdf --one-page
# Python API usage
from yaml_resume_builder import build_resume
build_resume("resume.yml", "resume.pdf", one_page=True)
The optimization maintains professional standards by:
Certifications now support optional clickable links! You can use either the traditional string format or the new dictionary format with optional links.
New Dictionary Format (with optional links):
certifications:
- name: AWS Certified Developer - Associate (2023)
link: https://www.credly.com/badges/your-badge-id
- name: Google Cloud Certified - Associate Cloud Engineer (2022) # No link
Traditional String Format (still supported):
certifications:
- "Microsoft Certified: Azure AI Engineer Associate"
- "AWS Certified Developer - Associate (2023)"
Mixed Format (both in same file):
certifications:
- name: AWS Certified Developer - Associate (2023)
link: https://www.credly.com/badges/your-badge-id
- "Microsoft Certified: Azure AI Engineer Associate"
- name: Kubernetes Certified Application Developer
link: https://www.cncf.io/certification/ckad/
The YAML file should have the following structure. Any unknown fields will be ignored with a warning message:
The template includes sections for Education, Experience, Projects, Skills, Achievements, Publications, and Certifications. All sections are optional - if you don't provide data for a section, it will be empty in the generated resume.
name: Your Full Name
contact:
phone: "+1 (123) 456-7890"
email: your.email@example.com
linkedin: your-linkedin-username
github: your-github-username
education:
- school: University Name
location: City, State
degree: Degree Name (e.g., Bachelor of Science in Computer Science)
dates: "2020 - 2024"
- school: Another University (if applicable)
location: City, State
degree: Another Degree
dates: "2016 - 2020"
experience:
- company: Company Name
role: Your Job Title
location: City, State
dates: "Jan 2023 - Present"
description:
- "Accomplished [specific achievement] resulting in [specific measurable outcome]"
- "Led a team of X people to deliver [project/product] that [specific result]"
- "Implemented [specific technology/process] that improved [specific metric] by X%"
- company: Previous Company
role: Previous Job Title
location: Remote
dates: "Jun 2021 - Dec 2022"
description:
- "Developed [feature/product] using [technologies] that [specific outcome]"
- "Collaborated with cross-functional teams to [specific achievement]"
- "Optimized [process/system] resulting in [specific improvement]"
projects:
- name: Gitlytics
technologies: [Python, Flask, React, PostgreSQL, Docker]
date: June 2020 - Present
link: https://github.com/yourusername/gitlytics
description:
- "Developed a full-stack web application using Flask serving a REST API with React as the frontend"
- "Implemented GitHub OAuth to get data from user's repositories"
- "Visualized GitHub data to show collaboration"
- "Used Celery and Redis for asynchronous tasks"
- name: Simple Paintball
technologies: [Spigot API, Java, Maven, TravisCI, Git]
date: May 2018 - May 2020
link: https://github.com/yourusername/simple-paintball
description:
- "Developed a Minecraft server plugin to entertain kids during free time for a previous job"
- "Published plugin to websites gaining 2K+ downloads and an average 4.5/5-star review"
- "Implemented continuous delivery using TravisCI to build the plugin upon new a release"
- "Collaborated with Minecraft server administrators to suggest features and get feedback"
skills:
- category: Languages
list: [Python, JavaScript, Java, SQL]
- category: Frameworks
list: [React, Django, Spring Boot, Express.js]
- category: Tools
list: [Git, Docker, AWS, CI/CD]
achievements:
- Won "Best Paper Award" at Conference on Software Engineering (2023)
- Won "Hackathon Winner" at Tech Innovation Summit (2022)
- Won "First Prize in Regional Coding Competition" at Tech Association (2020)
publications:
- Innovative Approaches to Software Testing in Cloud Environments, Journal of Software Engineering, January 2023
- Machine Learning Applications in DevOps Pipelines, International Conference on DevOps, June 2022
certifications:
# New format with optional links (v1.1.1+)
- name: AWS Certified Developer - Associate (2023)
link: https://www.credly.com/badges/your-badge-id
- name: Google Cloud Certified - Associate Cloud Engineer (2022)
# Traditional string format (still supported)
- "Microsoft Certified: Azure AI Engineer Associate"
- name: Kubernetes Certified Application Developer
link: https://www.cncf.io/certification/ckad/
# Run all tests
pytest
# Run tests with coverage
pytest --cov=yaml_resume_builder
# Run linting checks
ruff check .
isort --check --diff .
This project uses pre-commit hooks to ensure code quality. To set up pre-commit hooks:
# Install pre-commit
pip install pre-commit
# Install the git hooks
pre-commit install
# Run pre-commit on all files
pre-commit run --all-files
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
A package to generate PDF resumes from YAML files using LaTeX templates
We found that yaml-resume-builder demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.