The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Firecrawl Search",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.firecrawl.dev/v1/search",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"query\": \"nate herk site:www.geeky-gadgets.com\",\n \"limit\": 5\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-320,
100
],
"id": "1461cd70-126d-48ac-8fd8-e0ba26b48ddb",
"name": "Site",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.firecrawl.dev/v1/search",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"query\": \"nate herk inurl:skool\",\n \"limit\": 5\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-320,
320
],
"id": "141da9e5-cbea-4744-8fa4-72dfc14c8a18",
"name": "In URL",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.firecrawl.dev/v1/search",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"query\": \"nate herk -inurl:skool\",\n \"limit\": 6\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
40,
100
],
"id": "3a8cab07-c6ae-4e37-972e-786099c628da",
"name": "Exclusion",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# \ud83d\udd25 Firecrawl /search Query Operators\n\nUse these operators to fine-tune your search queries when using Firecrawl\u2019s search endpoint.\n\n**`\"\"` \u2014 Exact Phrase (Non-Fuzzy Match)** \nReturns results that match the exact phrase as written (no typos, rewordings, or approximations). \n**Example:** `\"Nate Herk\"`\n\n\n**`-` \u2014 Exclude Terms** \nExcludes certain keywords or domains from results. \n**Example:** `-consulting`, `-site:linkedin.com`\n\n\n**`site:` \u2014 Search Within a Specific Website** \nLimits results to a specific domain. \n**Example:** `site:youtube.com`, `site:truehorizonai.com`\n\n\n**`inurl:` \u2014 Word Appears in URL** \nOnly returns results where the keyword appears in the URL. \n**Example:** `inurl:skool`\n\n\n**`allinurl:` \u2014 All Words Appear in URL** \nOnly returns results where all specified words appear in the URL. \n**Example:** `allinurl:ai automation nateherk`\n\n\n**`intitle:` \u2014 Word Appears in Page Title** \nReturns pages that include the keyword in the page title. \n**Example:** `intitle:TrueHorizon AI`\n\n\n**`allintitle:` \u2014 All Words Appear in Page Title** \nOnly returns pages where all specified words appear in the title. \n**Example:** `allintitle:Nate Herk YouTube automation`\n\n\n**`related:` \u2014 Related Domains** \nReturns websites related to a given domain. \n**Example:** `related:truehorizonai.com`\n\n\n\ud83d\udca1 **Pro Tip:** Combine multiple operators for powerful filtering, like: \n`\"Nate Herk\" site:youtube.com -shorts intitle:automation`\n",
"height": 860,
"width": 680
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1860,
40
],
"id": "7f2ad1bf-fde9-4df9-a9e5-8906749396ef",
"name": "Sticky Note"
},
{
"parameters": {
"method": "POST",
"url": "https://api.firecrawl.dev/v1/search",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"query\": \"Nate Herk site:youtube.com -shorts intitle:automation\",\n \"limit\": 5\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
40,
320
],
"id": "5e4bbdf1-33ed-431a-a194-a597aa709259",
"name": "Pro",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## Within a Specific Website",
"height": 200,
"width": 340,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-440,
40
],
"id": "c0b2a9cd-0c49-44fc-850b-e520930f9a52",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## Word Appears in URL",
"height": 200,
"width": 340,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-440,
260
],
"id": "8184a027-9b75-4c70-a1eb-10f1bd0bceff",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## Exclude Terms\n",
"height": 200,
"width": 340,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-80,
40
],
"id": "ccbc961f-ae37-4423-a4c9-179fe30450a2",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## Pro Tip",
"height": 200,
"width": 340,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-80,
260
],
"id": "de6d0f23-ed13-42ce-848c-da18f14f1b55",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "# \ud83d\udd27 Firecrawl /search Body Parameters\n\nThese parameters help you control the type, scope, and format of results returned from Firecrawl\u2019s `/search` endpoint.\n\n**`query`** *(string, required)* \nThe actual search string \u2014 supports query operators like `site:`, `intitle:`, etc. \n\ud83d\udca1 Example: `\"Nate Herk\" site:youtube.com`\n\n**`limit`** *(integer, default: 5)* \nMaximum number of results to return (range: 1\u2013100). \n\ud83d\udca1 Example: `limit: 10`\n\n**`tbs`** *(string)* \nTime-based search filtering (e.g., recent content). \n\ud83d\udca1 Example: `\"qdr:d\"` for results from the past day\n\n**`lang`** *(string, default: `en`)* \nLanguage code for search results. \n\ud83d\udca1 Example: `lang: \"en\"` or `lang: \"es\"`\n\n**`country`** *(string, default: `us`)* \nCountry code to bias results to a region. \n\ud83d\udca1 Example: `country: \"de\"` for Germany\n\n**`location`** *(string)* \nMore specific location targeting for localized results. \n\ud83d\udca1 Example: `location: \"new york\"`\n\n**`timeout`** *(integer, default: `60000`)* \nTimeout for the request in milliseconds. \n\ud83d\udca1 Example: `timeout: 30000` (30 seconds)\n\n**`ignoreInvalidURLs`** *(boolean, default: `false`)* \nIf `true`, filters out search results with invalid or unusable URLs (great for chaining with other Firecrawl endpoints). \n\ud83d\udca1 Example: `ignoreInvalidURLs: true`\n\n**`scrapeOptions`** *(object)* \nControls the scraping behavior for each result, letting you specify which formats to return.\n\nAvailable formats (you can include multiple):\n- `markdown`\n- `html`\n- `rawHtml`\n- `links`\n- `screenshot`\n- `screenshot@fullPage`\n- `json`\n\n\ud83d\udca1 Example:\n\n\"scrapeOptions\": {\n \"formats\": [\"markdown\", \"links\", \"screenshot\"]\n}\n\n\ud83d\udca1 Tip: Combine these parameters with query operators to get super targeted, fast, and relevant full-page content.\n",
"height": 1220,
"width": 700,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1160,
-320
],
"id": "3a4c50ce-182a-4050-970b-9c1965367949",
"name": "Sticky Note5"
},
{
"parameters": {
"content": "# \ud83d\ude80 Quick Setup Guide\nStart using the Firecrawl `/search` endpoint to pull relevant, structured data from across the web \u2014 perfect for AI Agents, lead scraping, research, and more.\n\n\ud83d\udd17 **API Documentation:** \n[FireCrawl Search Endpoint \u2192](https://docs.firecrawl.dev/api-reference/endpoint/search)\n\n\ud83d\udc68\u200d\ud83c\udfeb **Created by:** [Nate Herk](https://www.youtube.com/@nateherk)\n\n\n## \ud83c\udf81 **Discount Code:** \n## Use **`HERK10`** for **10% off** your [Firecrawl](https://firecrawl.link/nateherk) subscription for a full year.\n\n",
"height": 340,
"width": 680
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1860,
-320
],
"id": "32f666bb-8c7f-4222-a8cf-5bac0dab1698",
"name": "Sticky Note7"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
-340,
-240
],
"id": "3d6cee28-8b9b-4800-b817-18f53c8edcc4",
"name": "When chat message received"
},
{
"parameters": {
"model": "openai/gpt-4.1-mini",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
-240,
-100
],
"id": "06a1e094-3fd0-4ac2-9bcf-2fb77f98529e",
"name": "GPT 4.1 mini",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"toolDescription": "Use this tool to search the internet",
"method": "POST",
"url": "https://api.firecrawl.dev/v1/search",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"query\": \"{{$fromAI(\"searchQuery\")}}\",\n \"limit\": {{$fromAI(\"limit\",\"the number of search results requested\", number)}},\n \"scrapeOptions\": {\n \"formats\": [\"markdown\", \"screenshot@fullPage\"]}\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.2,
"position": [
60,
-120
],
"id": "401dcc1c-a143-43c4-bbfa-d9a8fc2037cc",
"name": "Firecrawl Search",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {
"systemMessage": "=# Overview\nYou are a Firecrawl Search Query Generator Agent.\n\nYou have access to a tool called FireCrawl Search.\n\nYour job is to:\n1. Convert natural language instructions into a properly formatted Firecrawl query string using supported operators.\n2. Send that query \u2014 along with a `limit` parameter \u2014 to the **FireCrawl Search** tool.\n\n## Query Construction Rules:\n\nUse the following rules to transform user input:\n\n- If the user specifies an exact phrase \n \u2192 `Nate Herk`\n\n- To exclude terms or domains, prefix them with `-` \n \u2192 `-linkedin`, `-site:facebook.com`\n\n- If the user wants to search within a specific site, use `site:` \n \u2192 `site:youtube.com`\n\n- If the user wants a word in the URL, use `inurl:` \n \u2192 `inurl:nateherk`\n\n- If the user wants multiple words in the URL, use `allinurl:` \n \u2192 `allinurl:nate herk agent`\n\n- If the user wants a word in the title of the page, use `intitle:` \n \u2192 `intitle:automation`\n\n- If the user wants multiple words in the title, use `allintitle:` \n \u2192 `allintitle:ai agent tutorial`\n\n- If the user wants results related to a domain, use `related:` \n \u2192 `related:truehorizonai.com`\n\n\n## Tool Usage Instructions:\n\nAlways call the **FireCrawls Search** tool with:\n- `query`: the final constructed query string \n- `limit`: the number of results the user requested\n\nIf the user does **not specify a limit**, default to: \n\u2192 `limit: 5`\n\n## Output\n\nAlways return all of the important information for each item that the tool gives you. The the title, the URL, the results, etc. \n\nFor each 'data' object that is returned in the results, output every field that lives in that object.\n\n## Examples:\n\n**Input:** Search the internet for Nate Herk \n**Action:** Call FireCrawls Search with: \n```json\n{\n \"query\": Nate Herk,\n \"limit\": 5\n}\n```\n\n**Input:** Find pages with AI agent in the title from YouTube, show me 10 \n**Action:** \n```json\n{\n \"query\": intitle:AI agent site:youtube.com,\n \"limit\": 10\n}\n```\n\n**Input:** Show me results that mention Nate Herk but exclude LinkedIn \n**Action:** \n```json\n{\n \"query\": Nate Herk -site:linkedin.com,\n \"limit\": 5\n}\n```\n"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2,
"position": [
-180,
-240
],
"id": "74df7c62-f326-464b-ac94-44c55b8d7a9d",
"name": "Search Agent"
},
{
"parameters": {
"content": "## Firecrawl Agent",
"height": 340,
"width": 700,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-440,
-320
],
"id": "49e036ef-a56d-4cad-945f-a9ecaee0ed5e",
"name": "Sticky Note8"
}
],
"connections": {
"When chat message received": {
"main": [
[
{
"node": "Search Agent",
"type": "main",
"index": 0
}
]
]
},
"GPT 4.1 mini": {
"ai_languageModel": [
[
{
"node": "Search Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Firecrawl Search": {
"ai_tool": [
[
{
"node": "Search Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "286e6694-de8d-4e46-a096-a73540f9740d",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "gKqHbgoAftC21X2J",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuthopenRouterApi
About this workflow
Firecrawl Search. Uses httpRequest, stickyNote, chatTrigger, lmChatOpenRouter. Chat trigger; 16 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →