draftme / agents /job_parser.py
dokster's picture
Upload 105 files
7d2fea2 verified
Raw
History Blame Contribute Delete
1.17 kB
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.output import PromptedOutput
from agents.modal_model import build_modal_model
from models.config import AppSettings
from models.job import JobPosting
SYSTEM_PROMPT = """You are a job posting parser. Extract structured information from job postings.
Extract:
- title: The job title
- company: Company name
- requirements: List of specific requirements (skills, experience, education)
- keywords: Technical keywords, tools, technologies mentioned
- description: Brief summary of the role
Be thorough in extracting keywords - include all technologies, tools, frameworks, methodologies mentioned.
"""
def parse_job_posting(job_text: str, settings: AppSettings) -> JobPosting:
agent = Agent(
_build_model(settings),
output_type=PromptedOutput(JobPosting, template="Return JSON matching this schema: {schema}"),
instructions=SYSTEM_PROMPT,
)
result = agent.run_sync(f"Job posting text:\n\n{job_text}")
return result.output
def _build_model(settings: AppSettings) -> OpenAIChatModel:
return build_modal_model(settings)