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.1.tar.gz (4.0 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.1-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bhavya_resume_generator-0.1.1.tar.gz
  • Upload date:
  • Size: 4.0 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.1.tar.gz
Algorithm Hash digest
SHA256 d9f4867fcf867a2f83f111268d8052748ef009122b82f1282b85cf9998ced35e
MD5 641fdf335875d381dce5c57dc194e899
BLAKE2b-256 ae1977c3dbf63d75d73a74b0cf6a43af22a54a1e1fc1d6fe3dc0603e2e88e5ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bhavya_resume_generator-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8f4f0db0402fc22cdd17a1c04ee769630b17f1ede52a97cd0c546a3e1199909
MD5 39f872812c231349b7c8fa6181f41ce4
BLAKE2b-256 e050ded7a3f1ef49fc0f8e2eddb2018fcd3c848a3ddc86806d6bc2b5e2018089

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