
The firecrawl-agent skill uses AI to autonomously navigate and extract structured data from complex multi-page websites, returning results as JSON that conforms to optional user-defined schemas. It solves the problem of manually extracting data scattered across multiple pages or complex site structures, making it ideal for users who need product listings, pricing information, directory entries, or other structured data without writing custom scraping logic. The skill is best suited for data extraction tasks that require intelligent navigation and reasoning beyond simple single-page scraping.
$ npx -y skills add firecrawl/cli --skill firecrawl-agent --agent claude-codeInstalls into .claude/skills of the current project.
AI-powered autonomous extraction. The agent navigates sites and extracts structured data (takes 2-5 minutes).
Before starting autonomous extraction for structured records or listings, check firecrawl search alexandria '<data you need>' for a ready-made workflow or data provider. Inspect a matching contract with firecrawl list <provider> <capability> --pretty and execute with firecrawl scrape --alexandria <provider>/<capability> --options '<input JSON>' if it covers the task. Use the exact provider, capability, and input fields from that contract. Continue with Agent when no suitable tool exists or the task requires autonomous navigation.
# Extract structured data
firecrawl agent "extract all pricing tiers" --wait --json -o .firecrawl/pricing.json
# With a JSON schema for structured output
firecrawl agent "extract products" --schema '{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}' --wait --json -o .firecrawl/products.json
# Focus on specific pages
firecrawl agent "get feature list" --urls "<url>" --wait --json -o .firecrawl/features.json
Run firecrawl agent --help for the full option list.
Done when: the output file contains valid JSON answering the request — or a job ID was intentionally returned for later polling.
A run uses connected Alexandria data providers only when it starts with an Alexandria flag: --alexandria, --toolkits <slugs> (up to 5), --max-calls <n>, --require-approval, or --on-terms-required skip|ask. Follow-ups on its thread keep those settings.
firecrawl agent "find the head of sales at <company>" --toolkits apollo,crunchbase --wait --json -o .firecrawl/contacts.json
With --require-approval (needs --mode chat), a run can end on a pendingApproval instead of making a paid call. Ask the user, then answer it on the same thread with firecrawl agent "<follow-up prompt>" --thread <threadId> --mode chat --approve <approvalId> (or --decline <approvalId>). A terms approval only continues once an organization admin accepts the provider's terms in the Firecrawl dashboard; give the user https://www.firecrawl.dev/app/settings?tab=data-sources, and use firecrawl alexandria terms show <provider> if they want to review the terms first. Approving does not accept them.
Omitting --wait returns a job ID. A UUID positional argument is auto-detected as a status check:
# Check once (equivalent to adding --status)
firecrawl agent "<job-id>"
# Wait on an existing job, polling every 10 seconds for up to 5 minutes
firecrawl agent "<job-id>" --wait --poll-interval 10 --timeout 300
# Cancel an active job
firecrawl agent "<job-id>" --cancel
--wait for inline results; omit it only when you want a job ID to poll later (see Job IDs).--schema for predictable, structured output — otherwise the agent returns freeform data.--max-credits to cap spending.scrape — it's faster and cheaper.To report an Alexandria session outcome or a provider/capability gap, use firecrawl alexandria feedback --rating good|partial|bad --url <website> --requested-functionality '<what was needed>' --objective '<the underlying goal of the task>' --rationale '<what happened>' --json. Use observed results in the rationale. No job ID is needed; send it within 20 minutes of your last Alexandria search, discovery, or execution, or it is rejected. Each submission refunds 1 credit, up to 10 per website and 100 per team each UTC day. Optional --provider-feedback and --capability-feedback JSON arrays describe specific gaps; inspect firecrawl alexandria feedback --help for their fields. Use the capability issue missing_capability when a provider exists but lacks the needed capability, and new_capability_request (with requestedFunctionality) to ask for one.
Sponsors