{"id":"800c2c03-d1b1-4f67-ac24-06cfa8ea644a","shortId":"ZB8DcC","kind":"skill","title":"firecrawl","tagline":"Web scraping, search, crawling, and browser automation via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, extract data from a website, crawl documen","description":"# Firecrawl CLI\n\nWeb scraping, search, and browser automation CLI. Returns clean markdown optimized for LLM context windows.\n\nRun `firecrawl --help` or `firecrawl <command> --help` for full option details.\n\n## Prerequisites\n\nMust be installed and authenticated. Check with `firecrawl --status`.\n\n```\n  🔥 firecrawl cli v1.8.0\n\n  ● Authenticated via FIRECRAWL_API_KEY\n  Concurrency: 0/100 jobs (parallel scrape limit)\n  Credits: 500,000 remaining\n```\n\n- **Concurrency**: Max parallel jobs. Run parallel operations up to this limit.\n- **Credits**: Remaining API credits. Each scrape/crawl consumes credits.\n\nIf not ready, see [rules/install.md](rules/install.md). For output handling guidelines, see [rules/security.md](rules/security.md).\n\n```bash\nfirecrawl search \"query\" --scrape --limit 3\n```\n\n## Workflow\n\nFollow this escalation pattern:\n\n1. **Search** - No specific URL yet. Find pages, answer questions, discover sources.\n2. **Scrape** - Have a URL. Extract its content directly.\n3. **Map + Scrape** - Large site or need a specific subpage. Use `map --search` to find the right URL, then scrape it.\n4. **Crawl** - Need bulk content from an entire site section (e.g., all /docs/).\n5. **Browser** - Scrape failed because content is behind interaction (pagination, modals, form submissions, multi-step navigation).\n\n| Need                        | Command    | When                                                      |\n| --------------------------- | ---------- | --------------------------------------------------------- |\n| Find pages on a topic       | `search`   | No specific URL yet                                       |\n| Get a page's content        | `scrape`   | Have a URL, page is static or JS-rendered                 |\n| Find URLs within a site     | `map`      | Need to locate a specific subpage                         |\n| Bulk extract a site section | `crawl`    | Need many pages (e.g., all /docs/)                        |\n| AI-powered data extraction  | `agent`    | Need structured data from complex sites                   |\n| Interact with a page        | `browser`  | Content requires clicks, form fills, pagination, or login |\n| Download a site to files    | `download` | Save an entire site as local files                        |\n\nFor detailed command reference, use the individual skill for each command (e.g., `firecrawl-search`, `firecrawl-browser`) or run `firecrawl <command> --help`.\n\n**Scrape vs browser:**\n\n- Use `scrape` first. It handles static pages and JS-rendered SPAs.\n- Use `browser` when you need to interact with a page, such as clicking buttons, filling out forms, navigating through a complex site, infinite scroll, or when scrape fails to grab all the content you need.\n- Never use browser for web searches - use `search` instead.\n\n**Avoid redundant fetches:**\n\n- `search --scrape` already fetches full page content. Don't re-scrape those URLs.\n- Check `.firecrawl/` for existing data before fetching again.\n\n## When NOT to use firecrawl\n\nFirecrawl is the default for *public, text-based web content*. Route elsewhere when the source is auth-walled, audio/video, or when you already have the text and just need it shorter:\n\n| Situation | Use instead | Why |\n| --- | --- | --- |\n| X / Twitter post, thread, article, or `/bookmarks` | `mktg-x` skill | Twitter serves a degraded logged-out page to unauthenticated clients. `mktg-x` uses stored `MKTG_X_AUTH_TOKEN` to fetch the real content. Firecrawl will return a stub. |\n| YouTube / podcast / TikTok / any audio or video URL | `mktg transcribe <url>` | Firecrawl returns the page chrome (title, description), not the spoken content. `mktg transcribe` runs the yt-dlp → ffmpeg → whisper.cpp pipeline and returns the full transcript. |\n| Fetched page is too long to ideate on | Chain into `summarize` after the firecrawl call | Firecrawl is the *fetcher*, summarize is the *compressor*. `firecrawl scrape <url> -o page.md && cat page.md \\| summarize --tldr` is the canonical pattern — don't re-fetch or ask firecrawl to summarize. |\n\nEscalation rule of thumb: *if a human would need to log in, press play, or skim-and-condense to get value from the source, firecrawl alone is the wrong tool.*\n\n## Output & Organization\n\nUnless the user specifies to return in context, write results to `.firecrawl/` with `-o`. Add `.firecrawl/` to `.gitignore`. Always quote URLs - shell interprets `?` and `&` as special characters.\n\n```bash\nfirecrawl search \"react hooks\" -o .firecrawl/search-react-hooks.json --json\nfirecrawl scrape \"<url>\" -o .firecrawl/page.md\n```\n\nNaming conventions:\n\n```\n.firecrawl/search-{query}.json\n.firecrawl/search-{query}-scraped.json\n.firecrawl/{site}-{path}.md\n```\n\nNever read entire output files at once. Use `grep`, `head`, or incremental reads:\n\n```bash\nwc -l .firecrawl/file.md && head -50 .firecrawl/file.md\ngrep -n \"keyword\" .firecrawl/file.md\n```\n\nSingle format outputs raw content. Multiple formats (e.g., `--format markdown,links`) output JSON.\n\n## Working with Results\n\nThese patterns are useful when working with file-based output (`-o` flag) for complex tasks:\n\n```bash\n# Extract URLs from search\njq -r '.data.web[].url' .firecrawl/search.json\n\n# Get titles and URLs\njq -r '.data.web[] | \"\\(.title): \\(.url)\"' .firecrawl/search.json\n```\n\n## Parallelization\n\nRun independent operations in parallel. Check `firecrawl --status` for concurrency limit:\n\n```bash\nfirecrawl scrape \"<url-1>\" -o .firecrawl/1.md &\nfirecrawl scrape \"<url-2>\" -o .firecrawl/2.md &\nfirecrawl scrape \"<url-3>\" -o .firecrawl/3.md &\nwait\n```\n\nFor browser, launch separate sessions for independent tasks and operate them in parallel via `--session <id>`.\n\n## Credit Usage\n\n```bash\nfirecrawl credit-usage\nfirecrawl credit-usage --json --pretty -o .firecrawl/credits.json\n```","tags":["firecrawl","marketing","cli","moizibnyousaf","agent-skills","ai-agents","ai-marketing","brand-memory","brand-voice","claude-code","claude-code-skills","cmo"],"capabilities":["skill","source-moizibnyousaf","skill-firecrawl","topic-agent-skills","topic-ai-agents","topic-ai-marketing","topic-brand-memory","topic-brand-voice","topic-claude-code","topic-claude-code-skills","topic-cli","topic-cmo","topic-marketing-automation","topic-marketing-cli","topic-seo"],"categories":["marketing-cli"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/MoizIbnYousaf/marketing-cli/firecrawl","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add MoizIbnYousaf/marketing-cli","source_repo":"https://github.com/MoizIbnYousaf/marketing-cli","install_from":"skills.sh"}},"qualityScore":"0.459","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 18 github stars · SKILL.md body (5,768 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:49.427Z","embedding":null,"createdAt":"2026-05-04T19:06:13.499Z","updatedAt":"2026-05-18T19:05:49.427Z","lastSeenAt":"2026-05-18T19:05:49.427Z","tsv":"'-50':682 '/bookmarks':464 '/docs':201,271 '0/100':94 '000':101 '1':147 '2':159 '3':141,168 '4':189 '5':202 '500':100 'add':627 'agent':277 'ai':273 'ai-pow':272 'alon':606 'alreadi':396,445 'alway':631 'answer':155 'api':91,116 'articl':25,462 'ask':576 'audio':503 'audio/video':441 'auth':439,487 'auth-wal':438 'authent':80,88 'autom':8,55 'avoid':391 'base':429,713 'bash':135,640,677,720,752,783 'behind':209 'browser':7,54,203,288,327,334,348,384,767 'bulk':192,260 'button':360 'call':549 'canon':568 'cat':562 'chain':543 'charact':639 'check':81,408,746 'chrome':513 'clean':58 'cli':12,49,56,86 'click':291,359 'client':479 'command':220,312,320 'complex':282,367,718 'compressor':557 'concurr':93,103,750 'condens':598 'consum':120 'content':37,166,193,207,236,289,379,400,431,493,519,692 'context':63,620 'convent':653 'crawl':5,46,190,265 'credit':99,114,117,121,781,786,790 'credit-usag':785,789 'data':42,275,280,412 'data.web':727,736 'default':424 'degrad':472 'descript':515 'detail':74,311 'direct':167 'discov':157 'dlp':526 'documen':47 'download':297,302 'e.g':199,269,321,695 'elsewher':433 'entir':196,305,666 'escal':145,580 'exist':411 'extract':41,164,261,276,721 'fail':205,374 'fetch':393,397,414,490,535,574 'fetcher':553 'ffmpeg':527 'file':301,309,668,712 'file-bas':711 'fill':293,361 'find':24,153,182,222,248 'firecrawl':1,11,48,66,69,83,85,90,136,323,326,330,409,420,421,494,509,548,550,558,577,605,624,628,641,648,660,747,753,757,761,784,788 'firecrawl-brows':325 'firecrawl-search':322 'firecrawl/1.md':756 'firecrawl/2.md':760 'firecrawl/3.md':764 'firecrawl/credits.json':795 'firecrawl/file.md':680,683,687 'firecrawl/page.md':651 'firecrawl/search-':654,657 'firecrawl/search-react-hooks.json':646 'firecrawl/search.json':729,739 'first':337 'flag':716 'follow':143 'form':213,292,363 'format':689,694,696 'full':72,398,533 'get':232,600,730 'gitignor':630 'grab':36,376 'grep':672,684 'guidelin':131 'handl':130,339 'head':673,681 'help':67,70,331 'hook':644 'human':586 'ideat':541 'increment':675 'independ':742,772 'individu':316 'infinit':369 'instal':78 'instead':390,456 'interact':210,284,353 'interpret':635 'job':95,106 'jq':725,734 'js':246,344 'js-render':245,343 'json':647,656,700,792 'key':92 'keyword':686 'l':679 'larg':171 'launch':768 'limit':98,113,140,751 'link':698 'llm':62 'local':308 'locat':256 'log':474,590 'logged-out':473 'login':296 'long':539 'look':29 'mani':267 'map':169,179,253 'markdown':59,697 'max':104 'md':663 'mktg':466,481,485,507,520 'mktg-x':465,480 'modal':212 'multi':216 'multi-step':215 'multipl':693 'must':76 'n':685 'name':652 'navig':218,364 'need':174,191,219,254,266,278,351,381,451,588 'never':382,664 'o':560,626,645,650,715,755,759,763,794 'onlin':32 'oper':109,743,775 'optim':60 'option':73 'organ':612 'output':129,611,667,690,699,714 'page':154,223,234,241,268,287,341,356,399,476,512,536 'page.md':561,563 'pagin':211,294 'parallel':96,105,108,740,745,778 'path':662 'pattern':146,569,705 'pipelin':529 'play':593 'podcast':500 'post':460 'power':274 'prerequisit':75 'press':592 'pretti':793 'public':426 'queri':138,655,658 'question':156 'quot':632 'r':726,735 'raw':691 're':404,573 're-fetch':572 're-scrap':403 'react':643 'read':665,676 'readi':124 'real':492 'redund':392 'refer':313 'remain':102,115 'render':247,345 'requir':290 'research':26 'result':622,703 'return':57,496,510,531,618 'right':184 'rout':432 'rule':581 'rules/install.md':126,127 'rules/security.md':133,134 'run':65,107,329,522,741 'save':303 'scrape':3,33,51,97,139,160,170,187,204,237,332,336,373,395,405,559,649,754,758,762 'scrape/crawl':119 'scraped.json':659 'scroll':370 'search':4,21,52,137,148,180,227,324,387,389,394,642,724 'section':198,264 'see':125,132 'separ':769 'serv':470 'session':770,780 'shell':634 'shorter':453 'singl':688 'site':172,197,252,263,283,299,306,368,661 'situat':454 'skill':15,317,468 'skill-firecrawl' 'skim':596 'skim-and-condens':595 'someth':30 'sourc':158,436,604 'source-moizibnyousaf' 'spas':346 'special':638 'specif':150,176,229,258 'specifi':616 'spoken':518 'static':243,340 'status':84,748 'step':217 'store':484 'structur':279 'stub':498 'submiss':214 'subpag':177,259 'summar':545,554,564,579 'task':719,773 'text':428,448 'text-bas':427 'thread':461 'thumb':583 'tiktok':501 'titl':514,731,737 'tldr':565 'token':488 'tool':610 'topic':28,226 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-marketing' 'topic-brand-memory' 'topic-brand-voice' 'topic-claude-code' 'topic-claude-code-skills' 'topic-cli' 'topic-cmo' 'topic-marketing-automation' 'topic-marketing-cli' 'topic-seo' 'transcrib':508,521 'transcript':534 'twitter':459,469 'unauthent':478 'unless':613 'url':40,151,163,185,230,240,249,407,506,633,722,728,733,738 'usag':782,787,791 'use':13,178,314,335,347,383,388,419,455,483,671,707 'user':18,615 'v1.8.0':87 'valu':601 'via':9,89,779 'video':505 'vs':333 'wait':765 'wall':440 'want':19 'wc':678 'web':2,23,50,386,430 'webpag':35 'websit':45 'whenev':16 'whisper.cpp':528 'window':64 'within':250 'work':701,709 'workflow':142 'would':587 'write':621 'wrong':609 'x':458,467,482,486 'yet':152,231 'youtub':499 'yt':525 'yt-dlp':524","prices":[{"id":"73212488-ddcb-4641-a56b-6bd4cdab9d00","listingId":"800c2c03-d1b1-4f67-ac24-06cfa8ea644a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"MoizIbnYousaf","category":"marketing-cli","install_from":"skills.sh"},"createdAt":"2026-05-04T19:06:13.499Z"}],"sources":[{"listingId":"800c2c03-d1b1-4f67-ac24-06cfa8ea644a","source":"github","sourceId":"MoizIbnYousaf/marketing-cli/firecrawl","sourceUrl":"https://github.com/MoizIbnYousaf/marketing-cli/tree/main/skills/firecrawl","isPrimary":false,"firstSeenAt":"2026-05-04T19:06:13.499Z","lastSeenAt":"2026-05-18T19:05:49.427Z"}],"details":{"listingId":"800c2c03-d1b1-4f67-ac24-06cfa8ea644a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"MoizIbnYousaf","slug":"firecrawl","github":{"repo":"MoizIbnYousaf/marketing-cli","stars":18,"topics":["agent-skills","ai-agents","ai-marketing","brand-memory","brand-voice","claude-code","claude-code-skills","cli","cmo","marketing-automation","marketing-cli","seo","skills-sh","typescript"],"license":"mit","html_url":"https://github.com/MoizIbnYousaf/marketing-cli","pushed_at":"2026-05-13T21:06:05Z","description":"Agent-native marketing cli: 51 skills, 5 research agents, brand memory that compounds, plus a local Studio dashboard (beta). single agent-native cli, then /cmo in ur coding agent..","skill_md_sha":"0da83604ac50d2f51c18e6a562d507ed5745faf6","skill_md_path":"skills/firecrawl/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/MoizIbnYousaf/marketing-cli/tree/main/skills/firecrawl"},"layout":"multi","source":"github","category":"marketing-cli","frontmatter":{"name":"firecrawl","description":"Web scraping, search, crawling, and browser automation via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, extract data from a website, crawl documentation, download a site, or interact with pages that need clicks or logins. Also use when they say \"fetch this page\", \"pull the content from\", \"get the page at https://\", or reference scraping external websites. This provides real-time web search with full page content extraction and cloud browser automation — capabilities beyond what Claude can do natively with built-in tools. Do NOT trigger for local file operations, git commands, deployments, or code editing tasks."},"skills_sh_url":"https://skills.sh/MoizIbnYousaf/marketing-cli/firecrawl"},"updatedAt":"2026-05-18T19:05:49.427Z"}}