Skip to main content

Resume Generator

PyPI version Python versions License: MIT

Generate ATS-optimized, consulting-style resumes from PDFs, LinkedIn profiles, or plain text with professional Wharton/Harvard template formatting.

Features

  • Multi-source parsing: PDF, LinkedIn, plain text
  • ATS optimization: Extract keywords from job descriptions
  • Professional formatting: Wharton/Harvard consulting template
  • Self-audit system: Validates length, tone, keywords, and metrics
  • python-docx output: Properly formatted .docx files

Installation

pip install resume-generator

Quick Start

Generate a Resume in One Line

from resume_generator import generate_resume

generate_resume(
    resume_text="John Doe\nSoftware Engineer at Tech Corp...",
    job_description="Looking for Python developer with AWS experience...",
    output_path="my_resume.docx"
)

Full API Usage

from resume_generator import ResumeBuilder

# Create builder and load resume
builder = ResumeBuilder()
builder.add_resume_from_text("""
John Doe
San Francisco, CA | john@email.com | (555) 123-4567

EDUCATION
Stanford University, Stanford, CA
Bachelor of Science in Computer Science, GPA: 3.8
2018 - 2022

EXPERIENCE
Tech Corp, San Francisco, CA
Software Engineer, June 2022 - Present
- Developed new features for the main product
- Maintained backend services
- Improved system performance
""")

# Add job description for ATS optimization
builder.add_job_description("""
Senior Software Engineer
Required: Python, AWS, distributed systems, 5+ years experience
""")

# Check keyword match
print(builder.check_keyword_match())

# Audit before generating
audit = builder.audit()
print(audit["summary"])

# Generate the resume
output_path = builder.generate("output_resume.docx")
print(f"Generated: {output_path}")

Parse from PDF

from resume_generator import ResumeBuilder

builder = ResumeBuilder()
builder.add_resume_from_pdf("path/to/your/resume.pdf")
builder.add_job_description("Job description text...")
builder.generate("optimized_resume.docx")

Command-Line Interface

# Install with CLI support
pip install resume-generator

# Generate from text
resume-gen --resume "Your experience text..." --output resume.docx

# Generate from PDF with job description
resume-gen --resume resume.pdf --job job.txt --output resume.docx

# Audit only
resume-gen --resume resume.pdf --audit-only

API Reference

ResumeBuilder

Method Description
add_resume_from_text(text) Parse resume from plain text
add_resume_from_pdf(path) Parse resume from PDF file
add_job_description(text) Add job description for ATS
enhance_bullets(role_type) Enhance bullets with metrics
audit() Perform quality audit
generate(path) Generate .docx file
get_keywords() Get ATS keywords
check_keyword_match() Check keyword coverage

generate_resume (convenience function)

generate_resume(
    resume_text: str,
    job_description: Optional[str] = None,
    output_path: str = "resume.docx",
    enhance: bool = True
) -> str

Formatting Specifications

Generated resumes follow strict consulting template:

Setting Value
Paper 8.5" x 11"
Margins 0.5" all sides
Font Times New Roman, 11pt
Spacing Single (1.0)
Max Lines ~45 (1 page)

Self-Audit Criteria

Every resume passes through a 4-point audit:

  1. Length: Must fit within ~45 lines
  2. Tone: No AI/weak phrases
  3. ATS: 5+ keyword matches
  4. Impact: Metrics in every bullet

Example: Bullet Enhancement

Before After
"Responsible for backend" "Architected microservices handling 10M+ requests, reducing latency 40%"
"Helped improve performance" "Optimized queries reducing response time 25% during peak"

Development

# Clone repository
git clone https://github.com/yourusername/resume-generator
cd resume-generator

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Build package
python -m build

# Upload to PyPI
twine upload dist/*

License

MIT License - see LICENSE file for details.

Contributing

Contributions welcome! Please open an issue or submit a PR.

Support

For issues and feature requests, please visit: https://github.com/yourusername/resume-generator/issues

Metadata

Release files for ats-resume-builder 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ats-resume-builder 0.1.0
File Size Uploaded
ats_resume_builder-0.1.0.tar.gz 34.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ats-resume-builder 0.1.0
File Interpreter ABI Platform
ats_resume_builder-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.7 kB

Release files / ats_resume_builder-0.1.0.tar.gz

Download URL ats_resume_builder-0.1.0.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bd6fecd95162efec6c29cc8fdc5cf54561cac5dbc2598c00676214fd419eefe0
BLAKE2b-256 checksum
How to use checksums
148584d491fa2f7345ad1e1027789c824a12f7bed20cb1310d138589811c73c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / ats_resume_builder-0.1.0-py3-none-any.whl

Download URL ats_resume_builder-0.1.0-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
70e31ab0a41283bf7b7a989dd59d6143d5ab48995c42b55cd1a6822703b07738
BLAKE2b-256 checksum
How to use checksums
60c70e9711a69475809ce26a612531a0828b9e221440bb586c19acff5621e8ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page