How Extralt Works
Two approaches dominate web data extraction today, and both have serious tradeoffs.
Traditional scrapers use hand-coded selectors (CSS, XPath) that break when a website changes its HTML structure. Maintenance is constant and scaling across many sites is expensive.
AI-at-runtime scrapers send each page to a language model for extraction. This is flexible but slow and expensive -- you're paying for LLM inference on every single page.
The third way
Extralt combines the best of both approaches:
-
AI generates the crawler at build time. When you request a robot for a new site, Extralt's AI analyzes the target site, understands its structure, and generates extraction logic.
-
The crawler compiles to Rust. The generated logic is compiled into a high-performance Rust binary (a dynlib). No LLM inference at extraction time.
-
Extraction runs without per-page LLM inference. The compiled Robot fetches pages and applies the generated extraction logic repeatedly.
This separates generative build work from repeated extraction. Website coverage still depends on whether the harness can generate and validate reliable logic for the requested site and market.
Build vs. run
| Phase | What happens | Speed | Cost |
|---|---|---|---|
| Build | The harness analyzes a source, generates and validates extraction logic, then compiles it | Varies by source | Build work |
| Run | Compiled robot crawls and extracts data | Fast | 2 credits per successful Capture |
Build-time generation is separated from repeated extraction, so running the Robot does not require an LLM call for every page.
Consistent output
All robots extract data into the same base ecommerce schema. Whether you're scraping a luxury fashion site or a hardware store, the output has the same structure: title, brand, SKUs, offers, pricing, identifiers.
This consistency means you can:
- Read Capture fields through one base extraction contract
- Build pipelines that work regardless of source
- Switch between robots without changing your code
Robot reuse
For a compatible host and country that has already been validated, Extralt can return the existing Robot. Otherwise, the Robot tracks its internal build until it is completed or failed. Site changes can require new generation and validation work; reuse is determined by compatible website coverage, not by a generic scraper template.