jobs

models

Jobs domain models.

class JobStatus[source]

Bases: StrEnum

__new__(value)
class JobType[source]

Bases: Base, NameSlugMixin

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

id: Mapped[UUID]

UUID Primary key column.

name: Mapped[str]
slug: Mapped[str]
class JobCategory[source]

Bases: Base, NameSlugMixin

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

id: Mapped[UUID]

UUID Primary key column.

name: Mapped[str]
slug: Mapped[str]
class Job[source]

Bases: AuditBase

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

created_at: Mapped[datetime.datetime]

Date/time of instance creation.

id: Mapped[UUID]

UUID Primary key column.

updated_at: Mapped[datetime.datetime]

Date/time of instance last update.

class JobReviewComment[source]

Bases: AuditBase

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

created_at: Mapped[datetime.datetime]

Date/time of instance creation.

id: Mapped[UUID]

UUID Primary key column.

updated_at: Mapped[datetime.datetime]

Date/time of instance last update.

schemas

Jobs domain Pydantic schemas.

class JobTypeBase[source]

Bases: BaseModel

Base job type schema.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobTypeCreate[source]

Bases: JobTypeBase

Schema for creating a new job type.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Full-time', 'slug': 'full-time'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobTypeUpdate[source]

Bases: BaseModel

Schema for updating a job type.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Full-time Remote', 'slug': 'full-time-remote'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobTypeRead[source]

Bases: JobTypeBase

Schema for reading job type data.

model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobCategoryBase[source]

Bases: BaseModel

Base job category schema.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobCategoryCreate[source]

Bases: JobCategoryBase

Schema for creating a new job category.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Engineering', 'slug': 'engineering'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobCategoryUpdate[source]

Bases: BaseModel

Schema for updating a job category.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'name': 'Software Engineering', 'slug': 'software-engineering'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobCategoryRead[source]

Bases: JobCategoryBase

Schema for reading job category data.

model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobBase[source]

Bases: BaseModel

Base job schema with common fields.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobCreate[source]

Bases: JobBase

Schema for creating a new job.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'agencies': False, 'category_id': '550e8400-e29b-41d4-a716-446655440001', 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith, Engineering Manager', 'country': 'USA', 'description': 'We are seeking an experienced Python developer to work on core Python infrastructure and tooling. You will collaborate with the PSF team to improve Python packaging, distribution, and developer experience.', 'email': 'jobs@python.org', 'expires': '2025-12-31', 'job_title': 'Senior Python Developer', 'job_type_ids': ['550e8400-e29b-41d4-a716-446655440010', '550e8400-e29b-41d4-a716-446655440011'], 'region': 'California', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred\nOpen source contributions welcome', 'telecommuting': True, 'url': 'https://python.org/jobs/senior-python-dev'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobUpdate[source]

Bases: BaseModel

Schema for updating a job.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'description': 'Updated: We are seeking an experienced Python developer to work on core Python infrastructure, tooling, and community projects. You will collaborate with the PSF team to improve Python packaging, distribution, and developer experience.', 'expires': '2026-01-31', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred\nOpen source contributions required\nExcellent communication skills', 'status': 'approved', 'telecommuting': True}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobRead[source]

Bases: JobBase

Schema for reading job data.

model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'agencies': False, 'category': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}, 'category_id': '550e8400-e29b-41d4-a716-446655440001', 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith, Engineering Manager', 'country': 'USA', 'created_at': '2025-11-01T10:00:00Z', 'creator_id': '550e8400-e29b-41d4-a716-446655440000', 'description': 'We are seeking an experienced Python developer to work on core Python infrastructure and tooling.', 'email': 'jobs@python.org', 'expires': '2025-12-31', 'id': '550e8400-e29b-41d4-a716-446655440020', 'job_title': 'Senior Python Developer', 'job_types': [{'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}, {'id': '550e8400-e29b-41d4-a716-446655440011', 'name': 'Remote', 'slug': 'remote'}], 'region': 'California', 'requirements': '5+ years Python experience\nExperience with async/await patterns\nKnowledge of CPython internals preferred', 'slug': 'senior-python-developer-psf', 'status': 'approved', 'telecommuting': True, 'updated_at': '2025-11-15T14:30:00Z', 'url': 'https://python.org/jobs/senior-python-dev'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobPublic[source]

Bases: BaseModel

Public job schema for job listings.

model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'agencies': False, 'category': {'id': '550e8400-e29b-41d4-a716-446655440001', 'name': 'Engineering', 'slug': 'engineering'}, 'city': 'Remote', 'company_name': 'Python Software Foundation', 'contact': 'Jane Smith', 'country': 'USA', 'created_at': '2025-11-01T10:00:00Z', 'description': 'We are seeking an experienced Python developer...', 'expires': '2025-12-31', 'id': '550e8400-e29b-41d4-a716-446655440020', 'job_title': 'Senior Python Developer', 'job_types': [{'id': '550e8400-e29b-41d4-a716-446655440010', 'name': 'Full-time', 'slug': 'full-time'}], 'region': 'California', 'requirements': '5+ years Python experience', 'slug': 'senior-python-developer-psf', 'telecommuting': True, 'url': 'https://python.org/jobs/senior-python-dev'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobReviewCommentBase[source]

Bases: BaseModel

Base job review comment schema.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobReviewCommentCreate[source]

Bases: JobReviewCommentBase

Schema for creating a new job review comment.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'comment': 'Please update the job description to include salary range.', 'job_id': '550e8400-e29b-41d4-a716-446655440020'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobReviewCommentUpdate[source]

Bases: BaseModel

Schema for updating a job review comment.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'comment': 'Updated: The salary range has been added. Approved.'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobReviewCommentRead[source]

Bases: JobReviewCommentBase

Schema for reading job review comment data.

model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_schema_extra': {'example': {'comment': 'Please update the job description to include salary range.', 'created_at': '2025-11-15T10:00:00Z', 'creator_id': '550e8400-e29b-41d4-a716-446655440000', 'id': '550e8400-e29b-41d4-a716-446655440030', 'job_id': '550e8400-e29b-41d4-a716-446655440020', 'updated_at': '2025-11-15T10:00:00Z'}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class JobSearchFilters[source]

Bases: BaseModel

Schema for job search filters.

model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'category_id': '550e8400-e29b-41d4-a716-446655440001', 'country': 'USA', 'status': 'approved', 'telecommuting': True}}}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

services

controllers

repositories