Skip to main content

Streamline the job application process for job seekers

Project description

hired

Streamline the job application process for job seekers

Overview

The hired package is a Python library designed to simplify the process of creating professional resumes tailored to specific job applications. It leverages AI-driven content generation, schema validation, and customizable rendering pipelines to produce high-quality resumes in various formats.

Features

1. Content Generation

  • AI-Driven Content: Automatically generate resume content by analyzing candidate profiles and job descriptions.
  • Flexible Sources: Supports JSON, YAML, and Python dictionaries as input sources.

2. Validation

  • JSON Resume Schema: Ensures compliance with the JSON Resume schema.
  • Strict and Permissive Modes: Validate content strictly or allow flexibility for missing fields.
  • Pruning: Automatically removes None values to ensure schema compliance.

3. Rendering

  • HTML and PDF: Render resumes as HTML or PDF.
  • Template-Based Themes: Use Jinja2 templates for customizable themes (e.g., default, minimal).
  • Optional WeasyPrint Integration: Generate professional PDFs with WeasyPrint if installed.
  • Fallback PDF Builder: Minimal PDF generation without external dependencies.
  • Empty Section Omission: Automatically skips rendering empty sections.

Installation

Install the package using pip:

pip install hired

To enable PDF generation with WeasyPrint, install the optional dependency:

pip install weasyprint

Usage

Generating Resume Content

from hired.tools import mk_content_for_resume

candidate_info = {
    "basics": {"name": "Alice", "email": "alice@example.com"},
    "work": [{"company": "Acme Corp", "position": "Engineer"}]
}
job_info = {"title": "Software Engineer", "skills": ["Python", "Django"]}

content = mk_content_for_resume(candidate_info, job_info)

Rendering a Resume

from hired.tools import mk_resume

# Render to HTML
html = mk_resume(content, {"format": "html"})

# Render to PDF
pdf = mk_resume(content, {"format": "pdf"}, output_path="resume.pdf")

Validating Resume Content

from hired.validators import validate_resume_content

is_valid = validate_resume_content(content.model_dump(), strict=True)
print("Valid Resume" if is_valid else "Invalid Resume")

Themes

Themes are stored in the hired/themes directory. You can customize or add new themes by modifying the Jinja2 templates.

Default Theme

  • A structured layout with sections for work, education, and extra content.

Minimal Theme

  • A concise layout with essential details.

Tests

Run the test suite to ensure everything is working:

pytest

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

License

This project is licensed under the MIT License.

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

hired-0.0.4.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

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

hired-0.0.4-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file hired-0.0.4.tar.gz.

File metadata

  • Download URL: hired-0.0.4.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for hired-0.0.4.tar.gz
Algorithm Hash digest
SHA256 cf03c48e1c985d98cb440aa0b02d7f2d270cd0c948e1aa2e23bdaecf4b9ed678
MD5 9d8ce477d5823818a37e19c1e4f0d784
BLAKE2b-256 4f4cd3c4e0000c2f63a5958c50486867e8d3b75fa771464e3b66e5afbd31a71b

See more details on using hashes here.

File details

Details for the file hired-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: hired-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for hired-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ee144a68df0cad9caf7d3dc23b8ed5c455cb424291cc3a5ee9c722da78555257
MD5 78b8748ca18e1ac1890a7aa6fc95b5cd
BLAKE2b-256 c1ba8224b9f0ef2ffb9c53c7a3ee0dafcc4dd91e922e1df4017c9defbb569de3

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