OCR jobs
OCR Jobs turn scanned documents and images into text and data. You create a job that holds the processing rules (which models, which outputs, which language) and a storage bucket, then send documents to it over time. Each file is processed on its own, and the job keeps a result, token usage and cost for every document.
OCR is a community feature. Operators find it as OCR Jobs under the Data group.
Concepts
| Object | What it is |
|---|---|
| Job | A persistent container with the rules for extraction: OCR model, optional LLM model, outputs, language hint, page cap, storage bucket and an optional callback. |
| Document (item) | One file sent to a job. It has its own status, result, token usage, page count and cost. |
| Outputs | What the job produces for each document: Full text, Summary and Structured (JSON). |
A job is active, paused or archived. An active job accepts and processes documents. Pausing holds processing until you resume it.
Before you start
| You need | Where | Why |
|---|---|---|
| An OCR model | Model Hub, category OCR | Reads the document. |
| An LLM model | Model Hub | Only for the Summary and Structured outputs. |
| A storage bucket | Files (Document Store) | The job stores its files there. If there are no buckets, the create form says so. |
Create a job
- Open OCR Jobs and choose New Job.
- Identity and storage. Optionally name the job and select the storage bucket.
- Models. Select the OCR model. Select an LLM model if you want a summary or structured output.
- Outputs. Tick one or more of:
- Full text — the text extracted from the document.
- Summary — an LLM summary. You can add a summary prompt with your own instruction.
- Structured (JSON) — an LLM extracts the fields you define. Build the schema with the visual builder (field name, type, required flag and description; types include string, number, integer, boolean, date, enum, array and object), or supply a JSON schema.
- Options. Optionally set a language hint (for example
enortr) and PDF max pages. Leave the page cap empty for unlimited. - Callback. Optionally set a callback URL and a secret if you want Console to call your system when a document finishes.
- Choose to create the job.
Send documents
- Open the job from the list. The Documents tab has a file picker (PDFs, images and so on, several at once) and a text box for document URLs, one per line.
- Choose Send to job. The button is disabled unless the job is
active. - Documents are queued and processed in the background. The table shows each document with status, tokens, pages and cost. Choose View result on a row to read the full text, summary and structured output in a dialog.
Use Pause to hold a job and Resume to continue it. JSON and CSV export the job's results.
Track usage and cost
The job page summarises documents processed and failed, tokens, and cost. The Usage tab breaks these down:
- Documents — total sent, processed, failed, success rate and pages processed.
- Tokens — input, output and total, split into the OCR stage and the LLM stage.
- Cost — OCR, LLM and total, plus the average cost and tokens per document.
On the job list, tiles show the number of jobs, active jobs, documents processed and total cost.
Callbacks
When a callback URL is set, Console sends a POST to it for these events: ocr.item.succeeded, ocr.item.failed and ocr.job.completed. If a secret is set, each request carries an x-cognipeer-signature header in the form t=<timestamp>,v1=<signature>, so your system can verify it. Delivery is best effort with up to three attempts. Through the API you can restrict the events a job sends.
Work from code
The job page has an API tab with ready-made snippets. The client API lets you create jobs, add files, pause and resume, read items and usage, and export results with an API token. A single document can also be extracted in one request, without a job, using the synchronous OCR endpoint. See the OCR API reference and the OCR SDK reference.
Permissions and requirements
| Topic | Behaviour |
|---|---|
| Permission | The ocr service (RBAC and API token service permissions). It covers the dashboard, the job endpoints and the synchronous OCR endpoint. |
| Scope | Jobs and their documents are project-scoped. |
| Deleting | Deleting a job also deletes all of its documents. |
| Outbound calls | Callback URLs are called from the server. |

