{
  "name": "LinkedIn job finder automation using Bright Data API & Google Sheets",
  "nodes": [
    {
      "id": "9617d433-62f7-4ddf-bf47-a9a3208aa248",
      "name": "On form submission1",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -660,
        -460
      ]
    },
    {
      "id": "47c35950-354c-42e4-b707-60ed5b1eeb2f",
      "name": "Check Final Status",
      "type": "n8n-nodes-base.if",
      "position": [
        320,
        -460
      ]
    },
    {
      "id": "cef9c86d-98ce-4944-9907-d815cba406f4",
      "name": "Create Snapshot ID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -360,
        -460
      ]
    },
    {
      "id": "66705bee-6424-4f6f-8c24-d9aa7a198399",
      "name": "Check Snapshot Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        20,
        -460
      ]
    },
    {
      "id": "b5f9e1c9-eace-4a68-a084-dc254b1b9c46",
      "name": "Wait 1 minute",
      "type": "n8n-nodes-base.wait",
      "position": [
        620,
        -100
      ]
    },
    {
      "id": "fff887f5-0388-4667-a5e9-7ef72ea36ac0",
      "name": "Scrape Data from SnapID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        900,
        -500
      ]
    },
    {
      "id": "57572d1d-3366-447d-8186-62a121824033",
      "name": "Update Job Lists in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1380,
        -500
      ]
    },
    {
      "id": "3afbef52-97fe-4ead-8d57-d8e98e684b47",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        1140,
        -500
      ]
    },
    {
      "id": "1badd4f4-4f66-4777-a2b7-3343f2afb2b3",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        620,
        -480
      ]
    },
    {
      "id": "df16ac92-0f96-40cd-ad9c-da17332a3e81",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -760,
        -620
      ],
      "parameters": {
        "width": 300,
        "height": 340,
        "content": "🔹 Search by Keyword — Form Trigger\nPurpose:\nCollects the user-submitted job search criteria including city, job title, country, and job type.\nTriggers the workflow when new search parameters are enter"
      }
    },
    {
      "id": "454c5db0-beb7-4a0b-95ca-8308a114e420",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -660
      ],
      "parameters": {
        "width": 320,
        "height": 380,
        "content": "🔹 LinkedIn Job Search Fetcher — HTTP Request (POST to Bright Data)\nPurpose:\nSends the job search criteria to Bright Data's LinkedIn dataset API.\nInitiates the scraping job to fetch LinkedIn job postin"
      }
    },
    {
      "id": "c68c4da8-6965-45cb-833f-0bb3a99a289c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -640
      ],
      "parameters": {
        "width": 300,
        "height": 360,
        "content": "🔹 Check Delivery Status of Snap ID — HTTP Request (GET)\nPurpose:\nChecks the status of the scraping job using the returned snapshot_id.\nEnsures the task is complete before continuing to data extraction"
      }
    },
    {
      "id": "57d2b098-41ce-4ee6-ab1d-130e2645dc3e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -220
      ],
      "parameters": {
        "width": 380,
        "height": 280,
        "content": "🔹 Wait 1 minute — Wait Node\nPurpose:\nDelays the workflow execution by 1 minute.\nPrevents frequent polling of Bright Data API to reduce load and errors."
      }
    },
    {
      "id": "47fc7436-1f6b-4bec-b88c-4df12ceddf57",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        -640
      ],
      "parameters": {
        "width": 270,
        "height": 360,
        "content": "🔹 Check Final Status — IF Node #1\nPurpose:\nConditionally checks if snapshot status is \"ready\".\nIf yes → proceed to download scraped data.\nIf no → loop back to Wait Node and recheck."
      }
    },
    {
      "id": "7a978cd2-efad-474d-92b7-3f9f28155f00",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -680
      ],
      "parameters": {
        "width": 260,
        "height": 400,
        "content": "🔹 Decode Snapshot from Response — HTTP Request (GET)\nPurpose:\nDownloads the final scraped LinkedIn job dataset using the ready snapshot ID.\nContains full job posting data in JSON format."
      }
    },
    {
      "id": "6ff9b0c5-b18c-44e9-b671-86388428927b",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        -660
      ],
      "parameters": {
        "width": 340,
        "height": 400,
        "content": "🔹 Google Sheets — Google Sheets (AppendOrUpdate)\nPurpose:\nAppends each LinkedIn job result into your Google Sheet.\nCaptures data fields like job title, company name, location, job details, and apply l"
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Scrape Data from SnapID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Update Job Lists in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 1 minute": {
      "main": [
        [
          {
            "node": "Check Snapshot Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Final Status": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 1 minute",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Snapshot ID": {
      "main": [
        [
          {
            "node": "Check Snapshot Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission1": {
      "main": [
        [
          {
            "node": "Create Snapshot ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Snapshot Status": {
      "main": [
        [
          {
            "node": "Check Final Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Data from SnapID": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}