{
  "name": "Monitor Clutch categories for new agencies with BrowserAct, Gemini, and Slack",
  "nodes": [
    {
      "id": "da5e1b17-c51f-42df-bfc4-08a2ddcd0874",
      "name": "Splitting Items",
      "type": "n8n-nodes-base.code",
      "position": [
        1008,
        400
      ]
    },
    {
      "id": "8730a07a-4045-4cab-a0ad-704b69177c1e",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1232,
        400
      ]
    },
    {
      "id": "4e9c9a70-5565-4e19-a2dc-6ec137789ad2",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1728,
        752
      ]
    },
    {
      "id": "d7bab813-929f-4edf-8e78-444e525f6bfd",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1600,
        752
      ]
    },
    {
      "id": "42653844-70dd-4832-b8a0-896753a90b2c",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1904,
        0
      ]
    },
    {
      "id": "c9e38712-ea4e-4254-8a4d-48189ed9e9fb",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1904,
        192
      ]
    },
    {
      "id": "e3dd1445-dc25-4426-82b2-f56d16b33284",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2432,
        320
      ]
    },
    {
      "id": "c1ea4642-4e89-4e9a-abce-56bb6600b043",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        2320,
        320
      ]
    },
    {
      "id": "220ea1a2-fe0f-4b15-a6e6-0d623e1d819b",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        3440,
        96
      ]
    },
    {
      "id": "8ee7a9f5-7ee0-4c20-b8e5-577a210b25b0",
      "name": "Weekly Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        112,
        400
      ]
    },
    {
      "id": "97acdfe5-a3dc-48fc-a12e-a0f817a527d4",
      "name": "Clear Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        336,
        400
      ]
    },
    {
      "id": "646f4696-ab8a-4d7c-825f-618475a5f25a",
      "name": "Clutch Category Link",
      "type": "n8n-nodes-base.set",
      "position": [
        560,
        400
      ]
    },
    {
      "id": "858f57ff-4aa6-499a-8985-365719327a0a",
      "name": "Scrape page funding data",
      "type": "n8n-nodes-browseract.browserAct",
      "position": [
        784,
        400
      ]
    },
    {
      "id": "d43c5c90-f460-4b52-bb4c-2d71d826ea62",
      "name": "Analyze the extracted funds for each company",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1632,
        576
      ]
    },
    {
      "id": "9e128f1d-7051-4d22-a3dc-0a2f80c05e08",
      "name": "Upsert new records",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2192,
        688
      ]
    },
    {
      "id": "2493b3f0-c6d3-4c0c-94ae-eb83487bedcb",
      "name": "Get old extraction data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1568,
        0
      ]
    },
    {
      "id": "4d90d3c3-e9ea-4a85-a85c-6071348e5c68",
      "name": "Get fresh extracted data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1568,
        192
      ]
    },
    {
      "id": "c5877f76-07da-4615-9473-f8295a79bc8e",
      "name": "Sync parallel paths",
      "type": "n8n-nodes-base.merge",
      "position": [
        2128,
        96
      ]
    },
    {
      "id": "d2d3e883-6b7f-4c51-8460-627c0418b650",
      "name": "Detect data changes",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2352,
        96
      ]
    },
    {
      "id": "7bf64a6b-926c-4ce4-aa60-0abe09e328fa",
      "name": "Notify team",
      "type": "n8n-nodes-base.slack",
      "position": [
        2880,
        96
      ]
    },
    {
      "id": "6ac3e7dd-8c75-42b5-b882-9d316ffb37d1",
      "name": "Clear Old data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3072,
        96
      ]
    },
    {
      "id": "aea1c8b5-8254-4d4b-af8f-7a0d7594629b",
      "name": "Retrieve latest data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3248,
        96
      ]
    },
    {
      "id": "e0e099e1-0985-45a4-a6f0-b389a74576ab",
      "name": "Prevent rate limits",
      "type": "n8n-nodes-base.wait",
      "position": [
        1968,
        576
      ]
    },
    {
      "id": "d11baeee-2629-49e4-b59f-391def1f4180",
      "name": "Avoid rate limits",
      "type": "n8n-nodes-base.wait",
      "position": [
        3664,
        32
      ]
    },
    {
      "id": "e3720bf3-b315-440c-a03e-031d1b2f2929",
      "name": "Replace old data with new",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3888,
        96
      ]
    },
    {
      "id": "3352d982-2e78-47d3-8293-479e07bbfc3a",
      "name": "Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -176
      ],
      "parameters": {
        "width": 380,
        "height": 536,
        "content": "## ⚡ The New Entrant Asset Finder\n\n**Summary:** This automation continuously scouts for new B2B service providers (e.g., development agencies) entering the market. It scrapes Clutch.co, compares the f"
      }
    },
    {
      "id": "be73d738-0163-4c31-a7f5-5946f0d5428b",
      "name": "Step 1 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        240
      ],
      "parameters": {
        "width": 1004,
        "height": 124,
        "content": "### 🕵️ Step 1: Market Scanning\n\nThe workflow triggers weekly to visit a target category on Clutch.co. BrowserAct scrapes the latest list of companies, capturing key data points like project size, hour"
      }
    },
    {
      "id": "6a320296-c2ae-4c47-8827-31f7681e84d5",
      "name": "Step 2 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        912
      ],
      "parameters": {
        "width": 1004,
        "height": 156,
        "content": "### 🧹 Step 2: Data Cleaning\n\nRaw scraped data is often messy. An AI agent processes each entry to standardize currency formats, split location strings (City/Country), and clean up descriptions before "
      }
    },
    {
      "id": "489eac97-4370-4920-b056-cdbe8b4ba2e2",
      "name": "Step 3 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -160
      ],
      "parameters": {
        "width": 1036,
        "height": 140,
        "content": "### 🔍 Step 3: Change Detection\n\nThe system compares the newly scraped list against the existing database. An AI agent identifies companies that are *new* to the list or have significant updates, filte"
      }
    },
    {
      "id": "03c831f5-afce-4246-aedf-669887a1f7dc",
      "name": "Step 4 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2896,
        -160
      ],
      "parameters": {
        "width": 1128,
        "height": 136,
        "content": "### 📢 Step 4: Alert & Archive\n\nIf new entrants are found, a \"Hot Alert\" is sent to Slack with details on the new companies. Finally, the main database is updated to include the fresh leads for the nex"
      }
    },
    {
      "id": "e0cd598a-9040-4c32-9976-974432cfeb3c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        -176
      ],
      "parameters": {
        "width": 688,
        "height": 400,
        "content": "@[youtube](LTNHYvObTtc)"
      }
    }
  ],
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Sync parallel paths",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Sync parallel paths",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Notify team": {
      "main": [
        [
          {
            "node": "Clear Old data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear Database": {
      "main": [
        [
          {
            "node": "Clutch Category Link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear Old data": {
      "main": [
        [
          {
            "node": "Retrieve latest data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Trigger": {
      "main": [
        [
          {
            "node": "Clear Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Get old extraction data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get fresh extracted data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Analyze the extracted funds for each company",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Splitting Items": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [],
        [
          {
            "node": "Avoid rate limits",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Avoid rate limits": {
      "main": [
        [
          {
            "node": "Replace old data with new",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upsert new records": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Detect data changes": {
      "main": [
        [
          {
            "node": "Notify team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prevent rate limits": {
      "main": [
        [
          {
            "node": "Upsert new records",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sync parallel paths": {
      "main": [
        [
          {
            "node": "Detect data changes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clutch Category Link": {
      "main": [
        [
          {
            "node": "Scrape page funding data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve latest data": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze the extracted funds for each company",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Detect data changes",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get old extraction data": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get fresh extracted data": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape page funding data": {
      "main": [
        [
          {
            "node": "Splitting Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze the extracted funds for each company",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Replace old data with new": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Detect data changes",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Analyze the extracted funds for each company": {
      "main": [
        [
          {
            "node": "Prevent rate limits",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}