Spaces:
Running
Running
from typing import List, Optional | |
from langchain_core.pydantic_v1 import BaseModel, Field | |
class CompanyOverview(BaseModel): | |
""" | |
A model for capturing key information about the company offering the job. | |
""" | |
about: Optional[str] = Field( | |
None, | |
description="""Overview of the company, industry, products, services, and notable achievements""" | |
) | |
mission_and_values: Optional[str] = Field( | |
None, | |
description="""Company mission, vision, values, and culture, including commitments | |
to diversity, inclusion, social responsibility, and work-life balance""" | |
) | |
size: Optional[str] = Field( | |
None, | |
description="Details about company size, such as number of employees") | |
locations: Optional[str] = Field( | |
None, | |
description="""City, State where this position is based. """ | |
) | |
class RoleSummary(BaseModel): | |
""" | |
A model for capturing the key summary points about the job role. | |
Prioritize information that helps understand the overall scope and positioning | |
of the role within the company. | |
""" | |
title: str = Field(..., description="Title of the job role") | |
team_or_department: Optional[str] = Field(None, | |
description="""Team, department, or business unit the role belongs to, | |
including any collaborations with other teams""" | |
) | |
role_type: Optional[str] = Field(None, | |
description="Type of role (full-time, part-time, contract, etc.)" | |
) | |
remote: Optional[str] = Field(None, | |
description="Remote work options for the role (full, hybrid, none)" | |
) | |
class ResponsibilitiesAndQualifications(BaseModel): | |
""" | |
A model for capturing the key summary points about the job role. | |
""" | |
responsibilities: List[str] = Field(None, | |
description="""List of responsibilities, including tasks, duties, and expectations for the role""" | |
) | |
required_qualifications: List[str] = Field(None, | |
description="""Essential educational qualifications and professional experience required for the role. | |
This may include, but not limited to, degrees, certifications, years of experience, technical skills, and domain knowledge. | |
""" | |
) | |
preferred_qualifications: List[str] = Field(None, | |
description="""Any additional qualifications that a candidate may possess to stand out or excel in the role. | |
This may include preferred skills, experience, certifications, or other attributes that are not essential but beneficial for the role. | |
""" | |
) | |
class CompensationAndBenefits(BaseModel): | |
""" | |
A class for capturing details about the compensation and benefits offered for the role | |
Aim to provide a comprehensive view of the total rewards offered for the role, | |
including both monetary compensation and non-monetary benefits and perks. | |
""" | |
salary_or_pay_range: Optional[str] = Field(None, | |
description="""Salary range or hourly pay range for the role""" | |
) | |
bonus_and_equity: Optional[str] = Field(None, | |
description="""Information about bonus and equity compensation""" | |
) | |
benefits_and_perks: Optional[List[str]] = Field(None, | |
description="""List of benefits and perks offered for the role, such as insurance, retirement plans, and paid time off. | |
Can also include additional perks like free meals, wellness programs, learning stipends, etc.""" | |
) | |
class JobDescription(BaseModel): | |
"""Extracted information from a job description.""" | |
company_overview: CompanyOverview | |
role_summary: RoleSummary | |
responsibilities_and_qualifications: ResponsibilitiesAndQualifications | |
compensation_and_benefits: CompensationAndBenefits |