Skip to main content

A Python package to generate professional resumes in Word format

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bhavya_resume_generator-0.1.3.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bhavya_resume_generator-0.1.3-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file bhavya_resume_generator-0.1.3.tar.gz.

File metadata

  • Download URL: bhavya_resume_generator-0.1.3.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for bhavya_resume_generator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0d02e35e670918389b3741a735febfc3ff6f5b4ab0ecf907e9898b2100d66ac1
MD5 11f291dcbaf1defa0858ea682053fac0
BLAKE2b-256 b343c6d4baecf0af36ed7c0126966ce201f21efad515eaddea970e468b40096b

See more details on using hashes here.

File details

Details for the file bhavya_resume_generator-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for bhavya_resume_generator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 076b38dd340f327a0d372f6b5ede0cfbe0ae1ad7ba3bfd6c9bc38db4a6741d7f
MD5 3a709249235f1c79e250124773de3fd2
BLAKE2b-256 18b06d70e3149e7fda55923715397664bd5dbea7b9e3b2af854f22379e1e8b87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page