Creating a Job
A Job is the quick path: a one-time run where a schema meets documents and AI extraction produces structured data in a single ad-hoc run. A job produces a grid: rows = documents, columns = schema fields. Each cell contains an extracted value along with metadata including a confidence score, the resolution type, the Job phase that produced it, and an AI reasoning trace explaining how the value was derived from the source document. Use a Job when you want results now and the work does not justify configuring a Spec.
Open the Extract slide-over with Cmd+J or from an in-page entry point, or call POST /v1/jobs. Select your template and documents, then click Start. Results appear progressively as each phase completes. The platform supports three extraction modes: pipeline (the mode name for full 4-phase Job extraction, the default), simple (a single AI call, faster but less thorough), and field registry (no AI, deterministic strategies only; an admin-only mode for benchmarking registry coverage).
When you start a job, the platform runs a pre-flight check to ensure all selected documents have completed their field resolution step. If any document was uploaded recently and has not yet been resolved against the Field Registry, the system automatically resolves it before entering Phase 1. This lazy resolution gate prevents silent data loss where registry-based lookups would return empty results for unresolved documents. The pre-flight resolution runs with a concurrency of 3 and failures are non-fatal — Phase 1 will proceed with whatever is resolved.
For best results, select documents of the same type or closely related types for a single job. The schema you choose should match the document content — using an invoice schema on contract documents will produce poor results. Start with a small batch of 5-10 documents to validate your schema, review the output, apply corrections, and then scale up to larger runs once you are confident in the extraction quality.
The platform supports scaling caps to ensure reliable processing: Phase 2 extraction handles up to 2,000 documents per job, and Phase 4 transforms support up to 1,000 documents. Grid results are flushed to the database in batches of 200 documents per phase. For very large document collections, consider splitting into multiple jobs by document type for optimal results and easier review.
curl -X POST https://api.talonic.com/v1/jobs \
-H "Authorization: Bearer $TALONIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"schema_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"document_ids": ["f0e1d2c3-b4a5-9687-8765-432109876543"],
"name": "Q1 Invoice Processing"
}'
# Response (201):
# {
# "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
# "status": "pending",
# "message": "Job created and queued for processing.",
# "links": {
# "self": "/v1/jobs/c3d4e5f6-a7b8-9012-cdef-123456789012",
# "results": "/v1/jobs/c3d4e5f6-a7b8-9012-cdef-123456789012/results"
# }
# }
# document_ids is optional: omit it (or pass an empty array) to run
# the job against every completed document in your workspace.curl -s https://api.talonic.com/v1/jobs/c3d4e5f6-a7b8-9012-cdef-123456789012 \
-H "Authorization: Bearer $TALONIC_API_KEY"
# Response:
# {
# "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
# "name": "Q1 Invoice Processing",
# "status": "processing",
# "progress": 45,
# "current_phase": "phase_2_execute",
# "document_count": 150,
# "completed_documents": 67,
# "grid_stats": {
# "total_cells": 8850,
# "filled": 6200,
# "empty": 2650,
# "fill_rate": 0.70
# }
# }The strategy yield breakdown on the job detail page is a powerful diagnostic tool. It shows exactly how each cell was filled — registry transfers from Phase 1, LLM extractions from Phase 2, lookup cascade matches from Phase 3, and deterministic computations. A high registry_transfer percentage indicates mature field coverage, while a high llm_extract percentage suggests the registry needs more training data. Track strategy yield across jobs to measure how your extraction efficiency improves over time as the Field Registry grows.