Generate ATS-optimized consulting-style resumes from PDFs, LinkedIn, or plain text
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ats_resume_builder-0.1.0.tar.gz.
File metadata
- Download URL: ats_resume_builder-0.1.0.tar.gz
- Upload date:
- Size: 34.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd6fecd95162efec6c29cc8fdc5cf54561cac5dbc2598c00676214fd419eefe0
|
|
| MD5 |
4b8a11d040884be5984080c9a4988d87
|
|
| BLAKE2b-256 |
148584d491fa2f7345ad1e1027789c824a12f7bed20cb1310d138589811c73c2
|
File details
Details for the file ats_resume_builder-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ats_resume_builder-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70e31ab0a41283bf7b7a989dd59d6143d5ab48995c42b55cd1a6822703b07738
|
|
| MD5 |
229a637dd076f56033b705cba43955bc
|
|
| BLAKE2b-256 |
60c70e9711a69475809ce26a612531a0828b9e221440bb586c19acff5621e8ce
|