Extract
Module · Stable
Turn an unstructured source (scanned/digital PDF, image, or free text) into typed fields with per-field confidence, driven by a reusable extraction recipe.
The single, format- and domain-agnostic reader for unstructured documents. A reusable, versioned extraction RECIPE declares the target fields (typed + required), the reader mode, and a confidence policy; the node reads the source — a PDF text-layer-first with a vision fallback, an image via OCR, or free text as-is — then runs one structured LLM pass that returns each field as {value, value_normalized, confidence, source_page, source_excerpt}. Honours the recipe’s confidence policy: a field below the floor is dropped to null (uncheckable but safe — never a confidently-wrong value), and a weak required field sets needs_review so a Branch can route to a person. No document standard is hardcoded — an invoice is just a recipe authored on top. Never raises on an extraction failure; mis-configuration (no source / no recipe) does raise.
When to use
Section titled “When to use”Use when a document arrives from an upstream step — an Incoming email attachment, a Document Store output, or an actor upload — and you need its fields (invoice number, total, dates, …) as typed values WITH a confidence you can branch on. Apply the matching extraction recipe by slug; the fields dict and needs_review flag feed naturally into a Branch (confidence gate), an Ask a person review step, Create record, or any send step.
When not to use
Section titled “When not to use”For a STRUCTURED file (Excel / CSV, or an XML/ISDOC e-invoice sidecar) do NOT use an LLM — read it deterministically with Read spreadsheet (or a deterministic reader on a flow branch). For a printed leaflet with MANY price tags per page use Read PDF. For one field on a proposal PDF the Extract Proposal Field tile is more specific. To extract from audio, transcribe first with Speech to Text and run Extract on the transcript.
Inputs
Section titled “Inputs”Configured per use: file_path, ref, text, recipe_key, recipe_version, recipe, fields, mode, model.
Outputs
Section titled “Outputs”Auto-generated from the skill registry (load_skills()). Do not edit by hand.