# Structured Extractor

> Parses unstructured text into a typed JSON schema.

- Skill: `fadil369/structured-extractor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fadil369/structured-extractor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fadil369/structured-extractor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fadil369 (https://skillmd.com/u/fadil369)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fadil369/structured-extractor

---


# 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:
1. The **raw input** text to extract from.
2. The **target JSON schema** (inline, as a file path, or described in plain language).

## Extraction rules

1. **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.
2. **Scan the input for each field.** Prefer explicit values over inferred ones. If a required field is genuinely absent, use `null` rather than guessing.
3. **Normalize as you extract:**
   - Trim whitespace
   - Coerce dates to ISO 8601 (`YYYY-MM-DD` or `YYYY-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
4. **Emit a single JSON object** (or array if the schema is a list). No prose, no markdown fences — just the JSON.
5. **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

