Skip to main content

Streamline the job application process for job seekers - with AI obvs!

Project description

hired

Streamline the job application process for job seekers

To install: pip install hired

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.

hired - resume agent

The resume_agent is an AI-powered system designed to assist in creating tailored resumes. It operates in manual, semi-autonomous, and fully autonomous modes, providing flexibility and control over the resume generation process.

1. Setup: Providing Job and Candidate Information

First, define the job you're applying for and the candidate's background. This information will be the foundation for the AI's work.

from hired.resume_agent import ResumeSession, ResumeExpertAgent, LLMConfig

# Define the job description
job_info = """
Senior Machine Learning Engineer at InnovateTech

We are seeking an experienced ML engineer to join our dynamic team. The ideal
candidate will have a strong background in building and deploying machine
learning models, with expertise in NLP and computer vision. Responsibilities
include designing and implementing ML pipelines, collaborating with
cross-functional teams, and driving innovation in our products.
"""

# Summarize the candidate's experience
candidate_info = """
- 7+ years of experience as a software and machine learning engineer.
- Proficient in Python, TensorFlow, and PyTorch.
- Led the development of a real-time recommendation engine, increasing user
  engagement by 20%.
- Designed and deployed a computer vision system for quality control in
  manufacturing, reducing defects by 15%.
- Published two papers on NLP in top-tier conferences.
"""

# Configure the LLM to be used by the agent
# (This is a conceptual example; you would integrate your preferred LLM provider)
llm_config = LLMConfig(model="gpt-4-turbo")

2. Manual Mode: Interactive Resume Building

In manual mode, you have direct control over the resume creation process. You can chat with the ResumeSession to expand on your achievements, distill verbose descriptions into impactful bullet points, or analyze how your experience matches the job. This is useful for users who want to guide the AI step-by-step and retain full control.

# Create a session in manual mode
session = ResumeSession(
    job_info=job_info,
    candidate_info=candidate_info,
    llm_config=llm_config,
)

# Start a chat to expand on a specific point
response = session.chat(
    "Expand on the recommendation engine project. "
    "Mention the use of collaborative filtering and A/B testing."
)
print("AI-EXPANDED ACHIEVEMENT:")
print(response)

# You can continue the conversation to refine other sections
response = session.chat(
    "Now, distill the computer vision project description into a single, "
    "impactful resume bullet point."
)
print("\nAI-DISTILLED BULLET POINT:")
print(response)

3. Semi-Automatic Mode: Plan, Review, and Execute

For a more guided but still controlled approach, you can ask the ResumeExpertAgent to propose a plan. You can review this plan, make changes if needed, and then command the agent to execute it. This balances automation with human oversight.

# Create an expert agent
agent = ResumeExpertAgent(llm_config=llm_config)

# Propose a plan for creating the resume
plan = agent.propose_plan(session)

print("PROPOSED PLAN:")
for step in plan.steps:
    print(f"- {step.id}: {step.description} (Depends on: {step.dependencies})")

# After reviewing (and optionally editing) the plan, execute it
# The agent will perform the steps, like analyzing the job,
# drafting sections, and matching skills.
results = agent.execute_plan(session, plan)

if results["success"]:
    print("\nPlan executed successfully!")
    # The final resume content is stored in the session state
    final_resume = session.state.get("final_resume_content")
    # print(final_resume)

4. Fully Automatic Mode: End-to-End Resume Generation

In the fully automatic mode, the ResumeExpertAgent handles the entire process from analysis to final output. It creates and executes its own plan to generate a resume tailored to the job description. This is the fastest way to get a first draft.

# The agent handles everything autonomously
final_resume_content = agent.create_resume(session)

print("--- AUTONOMOUSLY GENERATED RESUME ---")
print(final_resume_content)
print("------------------------------------")

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.9.tar.gz (53.4 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.9-py3-none-any.whl (55.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hired-0.0.9.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for hired-0.0.9.tar.gz
Algorithm Hash digest
SHA256 a7dd28138fb1a61118ba9347885f6389e189fec12b37fceefa133a884bdb0afe
MD5 d5471ceaa135a8356f007c530ac5b2a3
BLAKE2b-256 900d571233449b58b0624bdfb2ba56762e82fd5e749e99526e2be8e2187825b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hired-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 55.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for hired-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 8d85131315c0b56f2db7688e197bd94b0ee066b10054f9e4776fb83e3f07a571
MD5 3c435f7629fb198b2a376988c9390bc3
BLAKE2b-256 317d3df0c9afc3dbe8bc15bb551660eb668164720a1dedcf12f11beaf82b465a

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