{
  "name": "Research topics using OpenRouter AI agents with Serper search and Jina AI reports",
  "nodes": [
    {
      "id": "0332ce76-4af7-42a3-b49b-588a792f3aec",
      "name": "Read URL content in Jina AI",
      "type": "n8n-nodes-base.jinaAiTool",
      "position": [
        3264,
        4000
      ]
    },
    {
      "id": "77aa28be-5c93-4023-8e19-4dc87e8e2c06",
      "name": "Think1",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        3392,
        4000
      ]
    },
    {
      "id": "718b8f17-c7fb-4136-8105-a5b8a7f5d773",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        3136,
        4000
      ]
    },
    {
      "id": "5e168b52-84bd-4bce-bdea-b6063f3d4f31",
      "name": "Think Tool Analysis",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        4848,
        3488
      ]
    },
    {
      "id": "a7363f76-c780-4901-b2e8-834e5d8e3d2f",
      "name": "Retry if Tools Not Used",
      "type": "n8n-nodes-base.if",
      "position": [
        4368,
        3264
      ]
    },
    {
      "id": "28ee2ca2-a438-4572-b7f1-84bbe4e6863c",
      "name": "Retry if Response Empty1",
      "type": "n8n-nodes-base.if",
      "position": [
        5056,
        3264
      ]
    },
    {
      "id": "e701b64e-9a56-466e-abc4-28fedb9cd02d",
      "name": "Auto Fallback3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        4720,
        3488
      ]
    },
    {
      "id": "d6903e54-39cc-496f-9c38-40a457c74f2d",
      "name": "Serper API 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        3520,
        4000
      ]
    },
    {
      "id": "a0cc6087-161c-487f-ba2d-4cc3ab00eac3",
      "name": "Semantic Scholar 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        3648,
        4000
      ]
    },
    {
      "id": "94e6408f-c247-4e98-b339-c22dcb40a643",
      "name": "LinkedinScraper 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        3776,
        4000
      ]
    },
    {
      "id": "3d234641-9eeb-46b3-a22a-329901925b5f",
      "name": "InstagramScraper 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        3904,
        4000
      ]
    },
    {
      "id": "e3638b39-b10f-49db-a2ab-c7722e0b1555",
      "name": "XPostScraper 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        4032,
        4000
      ]
    },
    {
      "id": "a17c2c6b-786f-4c03-b5ad-63190baa9788",
      "name": "XProfileScraper 2",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        4160,
        4000
      ]
    },
    {
      "id": "8fbf5f8f-f562-48e6-a780-60d735e938d9",
      "name": "Qwen3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        3008,
        4000
      ]
    },
    {
      "id": "60319d4d-dd9c-4895-a4cf-7be5990c715b",
      "name": "Opus",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        4592,
        3488
      ]
    },
    {
      "id": "14b6a030-0d52-4ffa-97b9-3d711b0a2c81",
      "name": "Set Prompt",
      "type": "n8n-nodes-base.set",
      "position": [
        2784,
        3264
      ]
    },
    {
      "id": "b39dc72a-88d5-4021-8332-621c351928bb",
      "name": "Searching For Information",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3520,
        3264
      ]
    },
    {
      "id": "33d2f515-af48-4ce0-a5b3-86e687621cc3",
      "name": "Writing Report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        4656,
        3264
      ]
    },
    {
      "id": "d9b9db5e-fb2d-4d89-928a-f6408f8b7094",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        3568
      ],
      "parameters": {
        "width": 1696,
        "height": 720,
        "content": "## 🧰 The Agent’s Toolbox (Superpowers)\n\nThese nodes are the **tools** your agent can use — think of them as its superpowers 🦸‍♂️\nEach tool gives the agent a specific ability, like searching the web, q"
      }
    },
    {
      "id": "3958b92a-1e92-412d-9fdf-bf03dce14d17",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2544,
        2512
      ],
      "parameters": {
        "width": 992,
        "height": 576,
        "content": "# Research topics using AI agents with web search, verification, and report generation\n\n## How it works\n\nThis workflow accepts a research query via webhook or another workflow.\nIt performs structured "
      }
    },
    {
      "id": "44c5f4e5-9468-4339-8e99-7656e692277c",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3584,
        2512
      ],
      "parameters": {
        "width": 816,
        "height": 416,
        "content": "## 🔐 Credentials Required\n\nThis workflow uses external tools that require credentials:\n\n- **OpenRouter API**  \n  Used for LLM reasoning, report writing, and verification.\n\n- **Jina AI**  \n  Used for w"
      }
    },
    {
      "id": "df95927e-5a10-4f9e-8ecf-c9fd2d91a4bb",
      "name": "Trigger research request (Webhook)",
      "type": "n8n-nodes-base.webhook",
      "position": [
        2560,
        3168
      ]
    },
    {
      "id": "9928fa27-c6a8-4814-b4ee-08ab77b675df",
      "name": "Trigger research from another workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        2560,
        3360
      ]
    },
    {
      "id": "6a0d2c1e-9ad5-41dc-ab75-fd06cf7cc5c9",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        5568,
        3536
      ]
    },
    {
      "id": "f6372e0f-493d-4558-89a2-1f91a05a0464",
      "name": "If hallucinations present",
      "type": "n8n-nodes-base.if",
      "position": [
        5984,
        3280
      ]
    },
    {
      "id": "0e89baa6-0a27-4c6a-b27c-fbe4e1a29be2",
      "name": "Set Report",
      "type": "n8n-nodes-base.set",
      "position": [
        5296,
        3280
      ]
    },
    {
      "id": "4e97fb51-5f6d-437f-8074-15d3a5a10cf6",
      "name": "Set Output",
      "type": "n8n-nodes-base.set",
      "position": [
        7200,
        3360
      ]
    },
    {
      "id": "ca7ae9a4-e60d-4b55-9dc9-026062edb040",
      "name": "Auto Fallback4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        5440,
        3536
      ]
    },
    {
      "id": "43b1afd7-37e1-48ca-949e-9ef5a10bd3d3",
      "name": "Auto Fallback5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        6272,
        3552
      ]
    },
    {
      "id": "3e2ef803-4e71-4a80-8015-380b1362e34c",
      "name": "Think Tool Analysis2",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        6448,
        3552
      ]
    },
    {
      "id": "73385c0d-93e4-4ac6-b2e2-3eafad46631e",
      "name": "If Empty Output",
      "type": "n8n-nodes-base.if",
      "position": [
        6560,
        3280
      ]
    },
    {
      "id": "cac047ed-257b-4cf8-9e12-4735b5f2bd3b",
      "name": "If Empty Output1",
      "type": "n8n-nodes-base.if",
      "position": [
        5792,
        3280
      ]
    },
    {
      "id": "baa7257c-7916-4803-8b2d-a6d899b83db0",
      "name": "Opus1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        6128,
        3552
      ]
    },
    {
      "id": "02b6eaaf-4935-40a9-9459-95d3ecb051d7",
      "name": "Sonnet",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        5312,
        3536
      ]
    },
    {
      "id": "ac4895d1-1b6c-4815-bf49-644f5c542b7b",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        7200,
        3168
      ]
    },
    {
      "id": "5bea3a12-05bb-4611-b99b-957531843a20",
      "name": "If Source is Webhook",
      "type": "n8n-nodes-base.if",
      "position": [
        7008,
        3280
      ]
    },
    {
      "id": "1dd1865c-9dbb-431f-bd5b-4e7a685976b9",
      "name": "Set Report1",
      "type": "n8n-nodes-base.set",
      "position": [
        6768,
        3280
      ]
    },
    {
      "id": "0ea7ab2c-9db3-47b4-a8b2-05651d05d4ed",
      "name": "Verifying Report",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        5472,
        3280
      ]
    },
    {
      "id": "4c9dc161-94c0-4e3e-939b-b0c8a4f0a0b9",
      "name": "Fixing Hallucinations",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        6224,
        3280
      ]
    },
    {
      "id": "bfb5436f-32ce-4b51-b379-c9013bd67d90",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4480,
        3632
      ],
      "parameters": {
        "width": 688,
        "height": 560,
        "content": "## ✍️ Writing Report Agent\n\nThis agent is responsible for transforming **raw research signals** into a **clear, structured, human-readable report**.\n\nAfter the research tools return their findings, th"
      }
    },
    {
      "id": "6ade15c0-2e2b-42f8-bede-8ab2b1a2491b",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5280,
        3712
      ],
      "parameters": {
        "width": 752,
        "height": 496,
        "content": "## 🔍 Verifying Report Agent\n\nThis agent acts as a **quality control and fact-checking layer**.\n\nOnce the initial report is written, the Verifying Report Agent:\n\n* Reviews claims made in the draft repo"
      }
    },
    {
      "id": "6696f952-aaf7-4d1e-b3b7-5bb8c5566e91",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6128,
        3712
      ],
      "parameters": {
        "width": 912,
        "height": 512,
        "content": "## 🧯 Fixing Hallucinations Agent\n\nThis agent is activated **only when issues are detected** during verification.\n\nIf the Verifying Report Agent identifies hallucinations, unsupported claims, or logica"
      }
    }
  ],
  "connections": {
    "Opus": {
      "ai_languageModel": [
        [
          {
            "node": "Writing Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Opus1": {
      "ai_languageModel": [
        [
          {
            "node": "Fixing Hallucinations",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Qwen3": {
      "ai_languageModel": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Sonnet": {
      "ai_languageModel": [
        [
          {
            "node": "Verifying Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Think1": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Prompt": {
      "main": [
        [
          {
            "node": "Searching For Information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Report": {
      "main": [
        [
          {
            "node": "Verifying Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Report1": {
      "main": [
        [
          {
            "node": "If Source is Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Serper API 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Auto Fallback3": {
      "ai_languageModel": [
        [
          {
            "node": "Writing Report",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Auto Fallback4": {
      "ai_languageModel": [
        [
          {
            "node": "Verifying Report",
            "type": "ai_languageModel",
            "index": 1
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Auto Fallback5": {
      "ai_languageModel": [
        [
          {
            "node": "Fixing Hallucinations",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Writing Report": {
      "main": [
        [
          {
            "node": "Retry if Response Empty1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "XPostScraper 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "If Empty Output": {
      "main": [
        [
          {
            "node": "Set Report",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fixing Hallucinations",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Empty Output1": {
      "main": [
        [
          {
            "node": "Verifying Report",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If hallucinations present",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifying Report": {
      "main": [
        [
          {
            "node": "If Empty Output1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedinScraper 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "XProfileScraper 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "InstagramScraper 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Semantic Scholar 2": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Think Tool Analysis": {
      "ai_tool": [
        [
          {
            "node": "Writing Report",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "If Source is Webhook": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Think Tool Analysis2": {
      "ai_tool": [
        [
          {
            "node": "Fixing Hallucinations",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Fixing Hallucinations": {
      "main": [
        [
          {
            "node": "If Empty Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Retry if Tools Not Used": {
      "main": [
        [
          {
            "node": "Searching For Information",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Writing Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retry if Response Empty1": {
      "main": [
        [
          {
            "node": "Writing Report",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Verifying Report",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "If hallucinations present": {
      "main": [
        [
          {
            "node": "Fixing Hallucinations",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Report1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Searching For Information": {
      "main": [
        [
          {
            "node": "Retry if Tools Not Used",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read URL content in Jina AI": {
      "ai_tool": [
        [
          {
            "node": "Searching For Information",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Trigger research request (Webhook)": {
      "main": [
        [
          {
            "node": "Set Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger research from another workflow": {
      "main": [
        [
          {
            "node": "Set Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}