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.8.tar.gz (23.5 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.8-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hired-0.0.8.tar.gz
  • Upload date:
  • Size: 23.5 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.8.tar.gz
Algorithm Hash digest
SHA256 3aa9afc2b2cf25bf74b6227e57a7616ada051b006f37e78413ccec465329414d
MD5 30ab396549c3e571496a852bc4ffc75b
BLAKE2b-256 71d1407773f5461f459ded82e9c7f2d75149b15cb8a44829454ff2ddba91a77b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hired-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 26.3 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 907b9e2f37313d39d86d677f4e719fda1036caf1322ec438fb5fc46d1ca675ee
MD5 b50cbc6583889d722351b877c7ed5ea7
BLAKE2b-256 6d68db04cc0a255be2ba58742042635cff16134a3a84e912df07a1da4a2df5ab

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