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.6.tar.gz (21.1 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.6-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hired-0.0.6.tar.gz
  • Upload date:
  • Size: 21.1 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.6.tar.gz
Algorithm Hash digest
SHA256 80a00a7254978f3ca0d6edbf2fffb0805bb78a95f3e65048a45cafc5d42f36f8
MD5 aec40e2ed21b1dca8382fe74bcaa70a5
BLAKE2b-256 af14f03cece73f5628ac4e0354c8789bb1f97bf1b7a65b74f38d91bf4f67de58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hired-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 24.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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 71f36a342c7322681badaf6a7b4b22c45cea9ab21698a9f37106a16ebede8bba
MD5 b15628ac98cc4974905f3b36c251b8b5
BLAKE2b-256 0a1cf0d0c32313eb290d36d2332f3df1d7e9e94e39457abbbd0d20a06c826897

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