Skip to main content

Resume Generator

A Python package to generate professional resumes in Word format. This package takes your resume sections as input and creates a beautifully formatted Word document.

Installation

pip install resume-generator

Usage

Basic Usage

from resume_generator import ResumeGenerator

# Create a resume generator instance
generator = ResumeGenerator()

# Add your resume sections
generator.add_candidate_details(
    name="John Doe",
    email="john@example.com",
    phone="(123) 456-7890",
    location="New York, NY",
    linkedin="linkedin.com/in/johndoe"
)

generator.add_summary("""
- Experienced software engineer with 5+ years in full-stack development
- Strong background in Python, JavaScript, and cloud technologies
- Proven track record of delivering scalable solutions
""")

generator.add_education(
    degree="Master of Science in Computer Science",
    university="Stanford University",
    graduation_year="2020"
)

generator.add_skills({
    "Programming Languages": "Python, JavaScript, Java, C++",
    "Frameworks": "Django, React, Spring Boot",
    "Cloud": "AWS, Azure, Google Cloud",
    "Tools": "Git, Docker, Kubernetes"
})

generator.add_experience([
    {
        "company": "Tech Corp",
        "location": "San Francisco, CA",
        "duration": "2020 - Present",
        "position": "Senior Software Engineer",
        "description": [
            "Led development of microservices architecture",
            "Implemented CI/CD pipelines",
            "Mentored junior developers"
        ],
        "skills": "Python, AWS, Docker"
    }
])

# Generate the resume
generator.generate("my_resume.docx")

Reading from Files

You can also read resume content from files and generate the resume:

from resume_generator import ResumeGenerator

def read_file_content(filename):
    with open(filename, 'r') as file:
        return file.read().strip()

def create_resume():
    # Create a resume generator instance
    generator = ResumeGenerator(add_h1b_header=True)

    # Read candidate details
    details = read_file_content('resume_content/candidate_details.txt')
    lines = details.split('\n')
    name = lines[0].replace('Name: ', '').strip()
    email = lines[1].replace('Email: ', '').strip()
    phone = lines[2].replace('Phone: ', '').strip()
    location = lines[3].replace('Location: ', '').strip()
    linkedin = lines[4].replace('LinkedIn: ', '').strip() if len(lines) > 4 else None

    # Add candidate details
    generator.add_candidate_details(
        name=name,
        email=email,
        phone=phone,
        location=location,
        linkedin=linkedin
    )

    # Add professional summary
    summary = read_file_content('resume_content/summary.txt')
    generator.add_summary(summary)

    # Add education
    education = read_file_content('resume_content/education.txt')
    degree = ''
    university = ''
    graduation_year = ''
    for line in education.split('\n'):
        if line.startswith('Education Degree:'):
            degree = line.replace('Education Degree:', '').strip()
        elif line.startswith('University Name:'):
            university = line.replace('University Name:', '').strip()
        elif line.startswith('Graduation Year:'):
            graduation_year = line.replace('Graduation Year:', '').strip()

    generator.add_education(
        degree=degree,
        university=university,
        graduation_year=graduation_year
    )

    # Add skills
    skills = read_file_content('resume_content/skills.txt')
    skills_dict = {}
    for line in skills.split('\n'):
        if ':' in line:
            category, details = line.split(':', 1)
            skills_dict[category.strip()] = details.strip()
    generator.add_skills(skills_dict)

    # Add experience
    experience = read_file_content('resume_content/experience.txt')
    experience_entries = []
    current_entry = {}
    
    for line in experience.split('\n'):
        if line.startswith('Company:'):
            if current_entry:
                experience_entries.append(current_entry)
                current_entry = {}
            current_entry['company'] = line.replace('Company:', '').strip()
        elif line.startswith('Location:'):
            current_entry['location'] = line.replace('Location:', '').strip()
        elif line.startswith('Duration:'):
            current_entry['duration'] = line.replace('Duration:', '').strip()
        elif line.startswith('Position:'):
            current_entry['position'] = line.replace('Position:', '').strip()
        elif line.startswith('Description:'):
            current_entry['description'] = []
        elif line.startswith('-') and 'description' in current_entry:
            current_entry['description'].append(line.lstrip('-').strip())
        elif line.startswith('Skills:'):
            current_entry['skills'] = line.replace('Skills:', '').strip()

    if current_entry:
        experience_entries.append(current_entry)

    generator.add_experience(experience_entries)

    # Generate the resume
    output_file = 'resume.docx'
    generator.generate(output_file)
    print(f"Resume has been generated successfully as '{output_file}'")

if __name__ == "__main__":
    create_resume()

## Features

- Professional formatting with consistent styling
- Support for all major resume sections
- Customizable margins and spacing
- H1B header option
- Page borders
- Bullet points and indentation
- Skills table with categories

## Requirements

- Python 3.6 or higher
- python-docx 0.8.11 or higher

## License

MIT License

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Metadata

Release files for bhavya-resume-generator 0.1.3

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

Source distribution (sdist)

Source distribution for bhavya-resume-generator 0.1.3
File Size Uploaded
bhavya_resume_generator-0.1.3.tar.gz 8.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bhavya-resume-generator 0.1.3
File Interpreter ABI Platform
bhavya_resume_generator-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 17.4 kB

Release files / bhavya_resume_generator-0.1.3.tar.gz

Download URL bhavya_resume_generator-0.1.3.tar.gz
Size 8.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0d02e35e670918389b3741a735febfc3ff6f5b4ab0ecf907e9898b2100d66ac1
BLAKE2b-256 checksum
How to use checksums
b343c6d4baecf0af36ed7c0126966ce201f21efad515eaddea970e468b40096b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bhavya_resume_generator-0.1.3-py3-none-any.whl

Download URL bhavya_resume_generator-0.1.3-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
076b38dd340f327a0d372f6b5ede0cfbe0ae1ad7ba3bfd6c9bc38db4a6741d7f
BLAKE2b-256 checksum
How to use checksums
18b06d70e3149e7fda55923715397664bd5dbea7b9e3b2af854f22379e1e8b87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

1 release file

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