Skip to content

Job Description Models

job

Data models for job descriptions.

This module defines models for representing job descriptions in both text-based and structured formats.

Attributes

JobDescription module-attribute
JobDescription = (
    JobDescriptionText | JobDescriptionStructured
)

Union type representing either text-based or structured job descriptions.

Scorers accept both formats and will normalize them internally.

Classes

JobDescriptionText

Bases: BaseModel

Text-based job description.

Used when you have raw job description text without structured extraction. The scorer will extract keywords and create a basic structure automatically.

Attributes:

Name Type Description
text str

Full text of the job description.

keywords list[str]

Optional list of keywords to prioritize. If not provided, keywords will be extracted from the text automatically.

JobDescriptionStructured

Bases: BaseModel

Structured job description with explicit requirements.

Provides a detailed breakdown of job requirements for more accurate scoring. All fields are optional, but providing more information leads to better scoring.

Attributes:

Name Type Description
title str | None

Job title or position name.

required_skills list[str]

List of skills that are mandatory for the position.

preferred_skills list[str]

List of skills that are nice-to-have but not required.

required_experience_years float | None

Minimum years of experience required (as float).

required_education str | None

Educational requirement (e.g., "Bachelor's degree").

required_certifications list[str]

List of required certifications.

location str | None

Job location (city, state, country, or full address).

description str | None

Full job description text.

keywords list[str]

List of important keywords from the job description.