Resume Generator
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:
- Length: Must fit within ~45 lines
- Tone: No AI/weak phrases
- ATS: 5+ keyword matches
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| ats_resume_builder-0.1.0.tar.gz | 34.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|