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.2.tar.gz (7.5 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.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bhavya_resume_generator-0.1.2.tar.gz
  • Upload date:
  • Size: 7.5 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.2.tar.gz
Algorithm Hash digest
SHA256 57ae365dfb5eb3c848bcb463f4973d955b5f519429d76b007fdffb7ba79bcce7
MD5 28dd7462c2f342a26c79639bab2df772
BLAKE2b-256 6f23e16ab664484f1971af1f77c20a9087cfe7eb68a7748140080f029d3b86e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bhavya_resume_generator-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 36326275c9f0677b215562cdbcc2da99b8b97cc3222cfd480a1c85957fd8f9ea
MD5 40defe2c1d915241204ee47f273bd77b
BLAKE2b-256 50755f7cde5f0c65d30a6fc8d23c8d04a8fed7f004f3f23240bd681d72951656

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