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
Nonevalues 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hired-0.0.5.tar.gz.
File metadata
- Download URL: hired-0.0.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52546fb42d3318efcb572ca3a53b432485ed8f997395556af4a53b2f27385dba
|
|
| MD5 |
8fd69cb1878bb0740d005798dcaee98b
|
|
| BLAKE2b-256 |
19419d0dd7b7ba62363c7c779994db4af8e57a5f339f3ac4e43dcdebcb5cec09
|
File details
Details for the file hired-0.0.5-py3-none-any.whl.
File metadata
- Download URL: hired-0.0.5-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed21f25583139a0e50c94c65fde5dec92753cc136095ba8abbccb71bff034210
|
|
| MD5 |
f30681484dc1fdedcffa3d73add62335
|
|
| BLAKE2b-256 |
491a834169dbbbccec0b35d6ac1b839e3f97a032457786bc8b7c821f19e49920
|