agentleFS
RoentekRoentek/Claude_Code_Boilerplate_Framework/.claude/skills/firecrawl/SKILL.md

firecrawl

Skill4 starsChanged 6 months agoMITView on GitHub

Web scraping, site crawling, URL discovery, web search with content extraction, and AI-powered structured data extraction using Firecrawl. Invoke this skill whenever the user wants to scrape a page, extract content from a URL, crawl a website across multiple pages, search the web and retrieve page content, map all URLs on a domain, or pull structured data from web sources. Use it even for casual requests like "get the content from this site", "scrape this page for me", "crawl docs.example.com", "search the web for X and extract the results", or "what's on this URL" — any time web content needs to land in the session.

  • Reads credentials
  • Installs packages

32 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use firecrawl-interact, firecrawl-monitor and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • RudraDudhat2509Skill

    firecrawl-interact

    Control and interact with a live browser session on any scraped page — click buttons, fill forms, navigate flows, and extract data using natural language prompts or code. Use when the user needs to interact with a webpage beyond simple scraping: logging into a site, submitting forms, clicking through pagination, handling infinite scroll, navigating multi-step checkout or wizard flows, or when a regular scrape failed because content is behind JavaScript interaction. Also useful for authenticated scraping via profiles. Triggers on "interact", "click", "fill out the form", "log in to", "sign in", "submit", "paginated", "next page", "infinite scroll", "interact with the page", "navigate to", "open a session", or "scrape failed".

    Also in 7 projects that use this

  • firecrawlSkill

    firecrawl-monitor

    Alert by webhook/email on web changes — use for "monitor/watch/track/alert me when": recurring checks on known URLs (prefer over repeated one-off scrapes) or web-wide watches for new results (queries + goal).

    Also in 5 projects that use this

  • get-proofpilotSkill

    firecrawl-crawl

    Bulk extract content from an entire website or site section. Use this skill when the user wants to crawl a site, extract all pages from a docs section, bulk-scrape multiple pages following links, or says "crawl", "get all the pages", "extract everything under /docs", "bulk extract", or needs content from many pages on the same site. Handles depth limits, path filtering, and concurrent extraction.

    Also in 7 projects that use this

  • firecrawlSkill

    firecrawl-build-onboarding

    Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.

    Also in 6 projects that use this

  • get-proofpilotSkill

    firecrawl-agent

    AI-powered autonomous data extraction that navigates complex sites and returns structured JSON. Use this skill when the user wants structured data from websites, needs to extract pricing tiers, product listings, directory entries, or any data as JSON with a schema. Triggers on "extract structured data", "get all the products", "pull pricing info", "extract as JSON", or when the user provides a JSON schema for website data. More powerful than simple scraping for multi-page structured extraction.

    Also in 6 projects that use this

  • parcadeiSkill

    firecrawl-scrape

    Scrape web pages and extract content via Firecrawl MCP

    Also in 10 projects that use this

  • +4 more from get-proofpilot
  • +1 more from firecrawl

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Always use the firecrawl CLI first.

    line 8
  2. Distinctive:

    Before running anything, confirm the CLI is installed and the API key is set:

    line 12
  3. Distinctive:

    If the CLI is missing:

    line 19
  4. Very specific:

    If the API key is empty, add it to .env and export it:

    line 24
  5. Distinctive:

    If none of those apply, use the CLI.

    line 90
  6. Very specific:

    Always write to .tmp/ (scratch space, not committed)

    line 112
  7. Very specific:

    Read .tmp/page.md inline to inspect content in-session

    line 113

“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Firecrawl — Web Scraping & Extraction

Always use the firecrawl CLI first. Fall back to the firecrawl-mcp MCP server only when the CLI genuinely cannot do the job. The CLI runs token-free via Bash and is faster; the MCP costs context on every call.

Step 0 — Verify prerequisites

Before running anything, confirm the CLI is installed and the API key is set:

firecrawl --version          # should print a version number
echo $FIRECRAWL_API_KEY      # should print fc-...

If the CLI is missing:

npm install -g firecrawl-cli

If the API key is empty, add it to .env and export it:

export FIRECRAWL_API_KEY=fc-your-key-here
# Get your key at: https://www.firecrawl.dev/app/api-keys

Step 1 — Choose the right command (CLI first)

Work through this decision in order. Stop at the first match.

Is the task a single URL scrape? → firecrawl <url>

firecrawl https://example.com                          # Markdown (default)
firecrawl https://example.com --format html,links      # specific formats
firecrawl https://example.com -o .tmp/page.md          # save to file
firecrawl https://example.com --json --pretty > .tmp/page.json

Is the task a web search? → firecrawl search

firecrawl search "your query"
firecrawl search "AI pricing" --limit 10               # cap results
firecrawl search "topic" --scrape --scrape-formats markdown  # fetch full pages

Is the task a multi-page site crawl? → firecrawl crawl

firecrawl crawl https://example.com --wait --progress
firecrawl crawl https://example.com --limit 50 --max-depth 3 --wait > .tmp/crawl.json

Is the task URL discovery across a domain? → firecrawl map

firecrawl map https://example.com
firecrawl map https://example.com --search "blog" --json > .tmp/urls.json

Is the task AI-driven open-ended extraction? → firecrawl agent

firecrawl agent "Extract all pricing plans from this site" --wait
firecrawl agent "Extract contact info" \
  --schema '{"type":"object","properties":{"email":{"type":"string"}}}' \
  --wait

Save all output to .tmp/ — never to tracked paths.


Step 2 — Escalate to MCP only when CLI cannot do the job

The CLI covers ~90% of use cases. The MCP is the right choice only for:

ScenarioMCP tool to use
Scraping a pre-built list of URLs in one callfirecrawl_batch_scrape
Schema-driven LLM extraction where structured output feeds directly into a downstream tool callfirecrawl_extract
Polling an async crawl job without keeping a terminal openfirecrawl_check_crawl_status, firecrawl_check_batch_status

If none of those apply, use the CLI. The MCP has the same underlying API — it just adds protocol overhead.

Available MCP tools (firecrawl-mcp): firecrawl_scrape, firecrawl_batch_scrape, firecrawl_search, firecrawl_crawl, firecrawl_map, firecrawl_agent, firecrawl_extract, firecrawl_check_crawl_status, firecrawl_check_batch_status, firecrawl_agent_status


Step 3 — Handle errors and escalate when stuck

ErrorWhat to do
firecrawl: command not foundnpm install -g firecrawl-cli
FIRECRAWL_API_KEY not set / 401 UnauthorizedAdd key to .env + export FIRECRAWL_API_KEY=fc-...; regenerate at firecrawl.dev if expired
429 Rate LimitReduce --limit; wait and retry
Crawl timeoutAdd --max-depth 2, reduce --limit 20
Empty / blocked contentTry --format html; if still blocked, escalate to Apify MCP (handles bot detection)
Need interactive browser (login flows, JS forms)Use node tools/playwright.js or playwright-mcp instead
1 000+ pagesUse Apify MCP — it handles massive scale Firecrawl cannot

Output handling

  • Always write to .tmp/ (scratch space, not committed)
  • Read .tmp/page.md inline to inspect content in-session
  • Pass .tmp/page.json to a Python script or the next pipeline step
  • Final deliverables go to cloud services: Google Drive, Supabase, Sheets, email, etc.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.