Spaces:
Running
Running
from typing import List, Optional | |
from langchain.chains import create_structured_output_runnable | |
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder | |
from langchain_core.pydantic_v1 import BaseModel, Field | |
from langchain_openai import ChatOpenAI | |
class CompanyOverview(BaseModel): | |
"""Information about the company offering the job.""" | |
about: Optional[str] = Field(..., description="Brief description of the company") | |
mission_and_values: Optional[str] = Field(None, description="Company mission and values") | |
size_and_locations: Optional[str] = Field(None, description="Company size and locations") | |
class RoleSummary(BaseModel): | |
"""Summary information about the job role.""" | |
title: str = Field(..., description="Job title") | |
team_or_department: Optional[str] = Field(None, description="Team or department the role belongs to") | |
role_type: Optional[str] = Field(..., description="Type of role (full-time, part-time, contract, etc.)") | |
location: Optional[str] = Field(..., description="Location (on-site, remote, hybrid)") | |
class ResponsibilitiesAndQualifications(BaseModel): | |
"""Key responsibilities and qualifications for the job role.""" | |
responsibilities: List[str] = Field(..., description="Key responsibilities of the role") | |
projects_and_problems: Optional[str] = Field(None, description="Types of projects and problems to be worked on") | |
required_skills_and_experience: List[str] = Field(..., description="Required skills and experience for the role") | |
preferred_skills_and_experience: Optional[List[str]] = Field(None, description="Preferred skills and experience for the role") | |
class CompensationAndBenefits(BaseModel): | |
"""Compensation and benefits offered for the job role.""" | |
salary_or_pay_range: Optional[str] = Field(None, description="Salary or hourly pay range") | |
bonus_and_equity: Optional[str] = Field(None, description="Bonus and equity compensation") | |
benefits: Optional[List[str]] = Field(None, description="Benefits (health insurance, retirement plans, PTO, etc.)") | |
perks: Optional[List[str]] = Field(None, description="Perks (food, commuter benefits, learning stipend, etc.)") | |
class JobDescription(BaseModel): | |
"""Extracted information from a job description.""" | |
company_overview: CompanyOverview | |
role_summary: RoleSummary | |
responsibilities_and_qualifications: ResponsibilitiesAndQualifications | |
compensation_and_benefits: CompensationAndBenefits |