# Split

> Automatically split bundled PDFs into logical document sections.

<Callout type="info" title="Coming soon">
  This Operation is on our roadmap and not available yet. [Contact
  us](https://www.axelered.com/contact) for more information.
</Callout>

The **Split** Operation separates a single concatenated PDF into its component documents. The engine reads each page, classifies it into the categories you define, and groups consecutive pages of the same category into one segment with its page range and a confidence score. Use it to break a bundled scan, such as a packet of invoices and contracts, into separate documents before you process them.

<Mermaid
  chart="`
flowchart LR
  A[&#x22;Bundled PDF<br/><small>e.g. scanned packet</small>&#x22;] --> B[&#x22;Split Engine<br/><small>Classify &amp; group pages</small>&#x22;]
  B --> C[&#x22;Segments<br/><small>category · page range · confidence</small>&#x22;]
`"
/>

* **Category-Based Segmentation**: Define your own categories with plain-language descriptions, similar to [Classify](https://docs.axelered.com/classify). Consecutive pages of the same category are grouped into one segment.
* **Page Ranges**: Every segment reports the exact pages it spans, so you can slice the source PDF precisely.
* **Confidence Scores**: Each segment is tagged `high`, `medium`, or `low` confidence. Pages that match no category can optionally go into their own segment.

***

## 🏗️ Configuration

It will be the `split` Operation of a [Job](https://docs.axelered.com/jobs_guide), running on the language model of the Job's [Perimeter](https://docs.axelered.com/config_guide). You provide the set of `categories` to detect; each category pairs a name with a natural-language description that guides classification.

### Parameters

| Parameter              | Type       | Required | Description                                                                      |
| :--------------------- | :--------- | :------- | :------------------------------------------------------------------------------- |
| `categories`           | `object[]` | Yes      | Categories to detect. Each entry is `{ name, description }`.                     |
| `captureUncategorized` | `boolean`  | No       | Group pages that match no category into a separate segment. Defaults to `false`. |
