{
  "name": "Monitor competitor SEO changes with CustomJS Scraper, Google Sheets & Slack alerts",
  "nodes": [
    {
      "id": "be8eb1c8-f161-45a0-98df-9789f3c98630",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1472,
        -96
      ]
    },
    {
      "id": "280e7b76-03a5-4ea1-b993-f7771e024849",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1232,
        -96
      ]
    },
    {
      "id": "3ce2a8ca-e37d-4e2f-bce4-f96503c7f661",
      "name": "Update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -976,
        144
      ]
    },
    {
      "id": "9749e365-4d77-411b-b353-d326f1cdd9f4",
      "name": "CustomJS Scraper – Fetch HTML",
      "type": "@custom-js/n8n-nodes-pdf-toolkit.scraper",
      "position": [
        -1440,
        144
      ]
    },
    {
      "id": "5acf718b-5dc6-4452-9306-969d5aa9c365",
      "name": "Code – Extract SEO Elements",
      "type": "n8n-nodes-base.code",
      "position": [
        -1216,
        144
      ]
    },
    {
      "id": "24353fa4-84b1-4f3b-85d3-5718e8faa50a",
      "name": "If – Check for SEO Changes",
      "type": "n8n-nodes-base.if",
      "position": [
        -752,
        144
      ]
    },
    {
      "id": "771bc30e-ebe1-4d50-8ed9-89b19b63366e",
      "name": "Slack Notification – Alert on Changes",
      "type": "n8n-nodes-base.slack",
      "position": [
        -496,
        128
      ]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "CustomJS Scraper – Fetch HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row in sheet": {
      "main": [
        [
          {
            "node": "If – Check for SEO Changes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If – Check for SEO Changes": {
      "main": [
        [
          {
            "node": "Slack Notification – Alert on Changes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code – Extract SEO Elements": {
      "main": [
        [
          {
            "node": "Update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CustomJS Scraper – Fetch HTML": {
      "main": [
        [
          {
            "node": "Code – Extract SEO Elements",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}