AI web scraper builder: build extractors with your agent
The ExtractHub extractor builder is an open-source Agent Skill (MIT license). Install it in Claude Code, Claude Desktop or another skill-capable agent, describe the page and the fields you want, and the agent builds the extractor for you: it inspects the page, writes the definition, validates it against the real extraction engine, uploads it as a private draft, tests it and releases it when you say so.
What the agent does
-
Agree on the page and fields
The agent asks only what it needs: an example URL of the page type and the fields you want.
-
Inspect the page
It fetches the page and picks the cheapest fetch mode that works: plain HTML, embedded JSON, a JSON API, JavaScript rendering, XHR capture or browser actions.
-
Write the definition
Request options plus field selectors, with stable selectors, typed values (prices as numbers, absolute URLs) and camelCase field names.
-
Validate
validate_extractor_config runs the real extraction engine on the HTML it fetched, without fetching again and without credit; the agent fixes errors until every field has the right value.
-
Create and test the draft
create_extractor saves a private draft; the agent then runs extract with the @draft pin on the real page (a normal, charged extract call that it announces first) and compares the result.
-
Release when you agree
release_extractor with dry_run shows the planned version and schema change; after your OK it releases 1.0.0 and gives you the pins to call (@user/slug@1).
1. Install the skill
Claude Code
Clone the repository into your personal skills directory (every project) or a project's .claude/skills/. Claude Code loads it when you ask for an ExtractHub extractor:
git clone https://github.com/extracthub-io/extracthub-extractor-builder.git ~/.claude/skills/extracthub-extractor-builder
# update later
git -C ~/.claude/skills/extracthub-extractor-builder pull Claude Desktop and claude.ai
Download the repository as a ZIP on GitHub (Code → Download ZIP), or zip a clone so the zip contains one folder with SKILL.md inside, then upload it under Settings → Capabilities → Skills. Code execution must be enabled.
git clone https://github.com/extracthub-io/extracthub-extractor-builder.git
zip -r extracthub-extractor-builder.zip extracthub-extractor-builder -x "*.git*" Other agents
Agents that support the Agent Skills format load the folder from their skills directory. For any other agent, give it SKILL.md as instructions and keep the folder next to it so it can open the reference files.
2. Connect the ExtractHub MCP server
Recommended: with the MCP server the agent validates, uploads, tests and releases by itself. Create an API key on the API keys page, then in Claude Code:
claude mcp add --transport http extracthub https://api.extracthub.io/mcp --header "Authorization: Bearer YOUR_EXTRACTHUB_API_KEY"
Claude Desktop, Cursor and other clients: see MCP setup. Use a
live key to create and release extractors; a test key (exth_test_...) can only validate.
3. Ask for an extractor
- “Create an ExtractHub extractor for this shop's search result pages: title, price, rating and product link. https://www.example.com/search?q=laptop”
- “Scrape this job board with ExtractHub: title, company, location and salary for every job on https://jobs.example.com/listings”
- “My ExtractHub extractor @me/product-page returns empty prices on this page, fix it and release a patch.”
- “Turn this JSON API into an ExtractHub extractor that returns id, name and price for every item.”
At the end the agent reports the extractor id and pins, the fetch mode it chose and why, the fields with real sample values, the price tier (standard or JavaScript) and anything fragile it noticed.
Multi-step scrapes: the pipeline skill
For a list or category page plus every detail page it links to, install the companion ExtractHub pipeline builder skill (also MIT). The agent builds each extractor with this skill, then chains the released extractors into a pipeline, validates it, tells you what a run costs, runs it small once with your OK, checks the results and sets a schedule only when you agree. Running a pipeline spends credit and needs a live key.
git clone https://github.com/extracthub-io/extracthub-pipeline-builder.git ~/.claude/skills/extracthub-pipeline-builder Costs, keys and visibility
- Validating, creating, updating and releasing use no credit (they count toward your per-minute request limit).
- A live test of the draft is a normal extract call, charged like any other; the agent tells you before it runs one.
- New extractors are private drafts. The agent asks before releasing a version or making an extractor unlisted or public.
-
Custom headers are only sent on direct requests (
useProxy: false), never through the scraping proxy, so the skill keeps proxied extractors header-free and uses direct requests for JSON APIs that need an auth header.
No MCP? Import into Studio
Without the MCP server the agent checks the definition with the skill's bundled checker (Node.js) and gives you an import file. Open Extractor Studio, choose Import in the menu, pick the file, check the preview on the fetched page, then save and release.
FAQ
What is the ExtractHub extractor builder skill?
An open-source Agent Skill (MIT license) that teaches an AI agent such as Claude Code or Claude Desktop how to build ExtractHub extractors: it inspects the page you name, chooses how to fetch it (plain HTML, embedded JSON, a JSON API, JavaScript rendering, browser actions), writes the extractor definition, validates it, uploads it as a private draft, tests it and releases it when you agree.
Do I need the MCP server to use the skill?
No, but it is recommended. With the ExtractHub MCP server connected, the agent validates the definition against the real extraction engine, creates the draft, tests it and releases it by itself. Without it, the agent gives you the definition plus a file you import in Extractor Studio (Import in the Studio menu).
What does building an extractor with the skill cost?
Validating, creating, updating and releasing an extractor use no credit. A live test of the draft with the extract tool is a normal extract call and is charged like one (the agent tells you before it runs one), and so is releasing with fetch_sample. Creating, updating and releasing need a live API key; a test key (exth_test_...) can only validate.
Who can see an extractor the agent creates?
Only you: new extractors are private drafts. The agent asks before it releases a version or makes an extractor unlisted or public, and you can change visibility in the dashboard at any time. Released extractor pages show the configuration, so never put secrets in a definition.