# Jobs

## Domain Types

### Classifier Rule

- `class ClassifierRule: …`

  A rule for classifying documents - v0 simplified version.

  This represents a single classification rule that will be applied to documents.
  All rules are content-based and use natural language descriptions.

  - `description: str`

    Natural language description of what to classify. Be specific about the content characteristics that identify this document type.

  - `type: str`

    The document type to assign when this rule matches (e.g., 'invoice', 'receipt', 'contract')

### Classify Job

- `class ClassifyJob: …`

  A classify job.

  - `id: str`

    Unique identifier

  - `project_id: str`

    The ID of the project

  - `rules: List[ClassifierRule]`

    The rules to classify the files

    - `description: str`

      Natural language description of what to classify. Be specific about the content characteristics that identify this document type.

    - `type: str`

      The document type to assign when this rule matches (e.g., 'invoice', 'receipt', 'contract')

  - `status: StatusEnum`

    The status of the classify job

    - `"CANCELLED"`

    - `"ERROR"`

    - `"PARTIAL_SUCCESS"`

    - `"PENDING"`

    - `"SUCCESS"`

  - `user_id: str`

    The ID of the user

  - `created_at: Optional[datetime]`

    Creation datetime

  - `effective_at: Optional[datetime]`

  - `error_message: Optional[str]`

    Error message for the latest job attempt, if any.

  - `job_record_id: Optional[str]`

    The job record ID associated with this status, if any.

  - `mode: Optional[Literal["FAST", "MULTIMODAL"]]`

    The classification mode to use

    - `"FAST"`

    - `"MULTIMODAL"`

  - `parsing_configuration: Optional[ClassifyParsingConfiguration]`

    The configuration for the parsing job

    - `lang: Optional[ParsingLanguages]`

      The language to parse the files in

      - `"abq"`

      - `"ady"`

      - `"af"`

      - `"ang"`

      - `"ar"`

      - `"as"`

      - `"ava"`

      - `"az"`

      - `"be"`

      - `"bg"`

      - `"bgc"`

      - `"bh"`

      - `"bho"`

      - `"bn"`

      - `"bs"`

      - `"ch_sim"`

      - `"ch_tra"`

      - `"che"`

      - `"cs"`

      - `"cy"`

      - `"da"`

      - `"dar"`

      - `"de"`

      - `"en"`

      - `"es"`

      - `"et"`

      - `"fa"`

      - `"fr"`

      - `"ga"`

      - `"gom"`

      - `"hi"`

      - `"hr"`

      - `"hu"`

      - `"id"`

      - `"inh"`

      - `"is"`

      - `"it"`

      - `"ja"`

      - `"kbd"`

      - `"kn"`

      - `"ko"`

      - `"ku"`

      - `"la"`

      - `"lbe"`

      - `"lez"`

      - `"lt"`

      - `"lv"`

      - `"mah"`

      - `"mai"`

      - `"mi"`

      - `"mn"`

      - `"mni"`

      - `"mr"`

      - `"ms"`

      - `"mt"`

      - `"ne"`

      - `"new"`

      - `"nl"`

      - `"no"`

      - `"oc"`

      - `"pi"`

      - `"pl"`

      - `"pt"`

      - `"ro"`

      - `"rs_cyrillic"`

      - `"rs_latin"`

      - `"ru"`

      - `"sa"`

      - `"sck"`

      - `"sk"`

      - `"sl"`

      - `"sq"`

      - `"sv"`

      - `"sw"`

      - `"ta"`

      - `"tab"`

      - `"te"`

      - `"th"`

      - `"tjk"`

      - `"tl"`

      - `"tr"`

      - `"ug"`

      - `"uk"`

      - `"ur"`

      - `"uz"`

      - `"vi"`

    - `max_pages: Optional[int]`

      The maximum number of pages to parse

    - `target_pages: Optional[List[int]]`

      The pages to target for parsing (0-indexed, so first page is at 0)

  - `updated_at: Optional[datetime]`

    Update datetime

### Classify Parsing Configuration

- `class ClassifyParsingConfiguration: …`

  Parsing configuration for a classify job.

  - `lang: Optional[ParsingLanguages]`

    The language to parse the files in

    - `"abq"`

    - `"ady"`

    - `"af"`

    - `"ang"`

    - `"ar"`

    - `"as"`

    - `"ava"`

    - `"az"`

    - `"be"`

    - `"bg"`

    - `"bgc"`

    - `"bh"`

    - `"bho"`

    - `"bn"`

    - `"bs"`

    - `"ch_sim"`

    - `"ch_tra"`

    - `"che"`

    - `"cs"`

    - `"cy"`

    - `"da"`

    - `"dar"`

    - `"de"`

    - `"en"`

    - `"es"`

    - `"et"`

    - `"fa"`

    - `"fr"`

    - `"ga"`

    - `"gom"`

    - `"hi"`

    - `"hr"`

    - `"hu"`

    - `"id"`

    - `"inh"`

    - `"is"`

    - `"it"`

    - `"ja"`

    - `"kbd"`

    - `"kn"`

    - `"ko"`

    - `"ku"`

    - `"la"`

    - `"lbe"`

    - `"lez"`

    - `"lt"`

    - `"lv"`

    - `"mah"`

    - `"mai"`

    - `"mi"`

    - `"mn"`

    - `"mni"`

    - `"mr"`

    - `"ms"`

    - `"mt"`

    - `"ne"`

    - `"new"`

    - `"nl"`

    - `"no"`

    - `"oc"`

    - `"pi"`

    - `"pl"`

    - `"pt"`

    - `"ro"`

    - `"rs_cyrillic"`

    - `"rs_latin"`

    - `"ru"`

    - `"sa"`

    - `"sck"`

    - `"sk"`

    - `"sl"`

    - `"sq"`

    - `"sv"`

    - `"sw"`

    - `"ta"`

    - `"tab"`

    - `"te"`

    - `"th"`

    - `"tjk"`

    - `"tl"`

    - `"tr"`

    - `"ug"`

    - `"uk"`

    - `"ur"`

    - `"uz"`

    - `"vi"`

  - `max_pages: Optional[int]`

    The maximum number of pages to parse

  - `target_pages: Optional[List[int]]`

    The pages to target for parsing (0-indexed, so first page is at 0)
