Structured Extractor
Extract structured data from unstructured text (emails, PDFs, logs, transcripts, scraped HTML) into a validated JSON object matching a target schema.
How to invoke
Give the agent:
- The raw input text to extract from.
- The target JSON schema (inline, as a file path, or described in plain language).
Extraction rules
- Read the schema first. Note required vs optional fields, enums, and format constraints (dates, currencies, IDs). The schema is the contract — never emit a key it does not define.
- Scan the input for each field. Prefer explicit values over inferred ones. If a required field is genuinely absent, use
nullrather than guessing. - Normalize as you extract:
- Trim whitespace
- Coerce dates to ISO 8601 (
YYYY-MM-DDorYYYY-MM-DDTHH:mm:ssZ) - Strip currency symbols → numeric value + ISO 4217 code (e.g.
{"amount": 1500.00, "currency": "USD"}) - Collapse enum synonyms to their canonical value
- Emit a single JSON object (or array if the schema is a list). No prose, no markdown fences — just the JSON.
- Ambiguity handling: pick the most conservative interpretation. If the schema allows
additionalProperties, note ambiguities in a top-level"_extraction_notes"field.
Output format
Pure JSON only. No explanation before or after unless the user explicitly asks for one.
Common use cases
- Parse invoice PDFs → structured billing records
- Extract contact info from email signatures
- Convert log lines → typed event objects
- Scrape product data from HTML → catalog entries
- Parse meeting transcripts → action items with owners and due dates