AutomationFlowsEmail & Gmail › Form Job Discovery with Bright Data & AI

Form Job Discovery with Bright Data & AI

Original n8n title: Wait Filter

Wait Filter. Uses stickyNote, httpRequest, formTrigger, chainLlm. Event-driven trigger; 18 nodes.

Event trigger★★★★☆ complexityAI-powered18 nodesHTTP RequestForm TriggerChain LlmOpenAI ChatGmailGoogle Sheets
Email & Gmail Trigger: Event Nodes: 18 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Chainllm → Form Trigger recipe pattern — see all workflows that pair these two integrations.

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 →

Download .json
{
  "nodes": [
    {
      "id": "578905af-9355-47ba-97c0-05bc9e69876c",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -120
      ],
      "parameters": {
        "color": 4,
        "width": 1280,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\nBright Data Docs: https://docs.brightdata.com/introduction\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b54542b4-0f68-4076-9ae9-817c1aee0c14",
      "name": "Snapshot Progress",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2180,
        300
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/progress/{{ $('HTTP Request- Post API call to Bright Data').item.json.snapshot_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8ffd290a-1cc7-4cc9-86a3-397108f8584b",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3240,
        80
      ],
      "parameters": {
        "width": 195,
        "height": 646,
        "content": "In this workflow, I use Google Sheets to store the results. \n\nYou can use my template to get started faster:\n\n1. [Click on this link to get the template](https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit?usp=sharing)\n2. Make a copy of the Sheets\n3. Add the URL to this node \n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d564fdb9-06f6-42c4-96d6-9512fa7217ca",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        380
      ],
      "parameters": {
        "width": 220,
        "height": 440,
        "content": "Add your competitors Trustpilot Link here.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8873b276-72db-42cd-8860-1327714d701b",
      "name": "On form submission - Discover Jobs",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1260,
        520
      ],
      "parameters": {
        "options": {},
        "formTitle": "Please Paste The URL of Your Trustpilot competitor",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/",
              "placeholder": "https://www.trustpilot.com/review/www.nike.com",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Please select the time frame of reviews you'd like. If it's a big brand go with 30 days",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Last 30 days"
                  },
                  {
                    "option": "Last 3 months"
                  },
                  {
                    "option": "Last 6 months"
                  },
                  {
                    "option": "Last 12 months"
                  }
                ]
              }
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2396fb4f-e3da-4712-b6b5-93704fa69672",
      "name": "HTTP Request- Post API call to Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1560,
        380
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "=[\n  {\n    \"url\": \"{{ $json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}\",\n    \"date_posted\": \"{{ $json['Please select the time frame of reviews you\\'d like. If it\\'s a big brand go with 30 days'] }}\"\n  }\n]",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_lm5zmhwd2sni130p"
            },
            {
              "name": "include_errors",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c90b0e25-c009-4321-9c38-7ce895d78f3f",
      "name": "Wait - Polling Bright Data",
      "type": "n8n-nodes-base.wait",
      "position": [
        1940,
        300
      ],
      "parameters": {
        "unit": "minutes",
        "amount": 2
      },
      "executeOnce": false,
      "typeVersion": 1.1
    },
    {
      "id": "ac37b7e2-04fb-4f04-96f6-c77aa282dc8e",
      "name": "If - Checking status of Snapshot - if data is ready or not",
      "type": "n8n-nodes-base.if",
      "position": [
        2380,
        300
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7932282b-71bb-4bbb-ab73-4978e554de7e",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "running"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "572ea592-8fd6-4be5-825b-83b0a7a11556",
      "name": "HTTP Request - Getting data from Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2660,
        320
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $('HTTP Request- Post API call to Bright Data').item.json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "03c7bfd2-6ae5-4455-8db9-df4858af9417",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        160
      ],
      "parameters": {
        "color": 4,
        "width": 940,
        "height": 360,
        "content": "Bright Data Getting Reviews\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f68ece0c-6061-4204-8c90-b9dba3dae242",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        4160,
        380
      ],
      "parameters": {
        "text": "=Read the following bad reviews, these are reviews of our competitors:\n{{ $json.Aggregated_reviews }}\n\n---\nAfter reading them, summarize their weakest points.\nDon't mention the competitor name.\n\nWrite 3 different ads copy for our Facebook ads campaign, addressing these concerns",
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "d07aa5c9-c0b0-440d-b9a8-21b5be269db3",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        4260,
        600
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0dceb7f9-7133-40cd-87c7-7b786e104a2f",
      "name": "Send Summary To Marketers",
      "type": "n8n-nodes-base.gmail",
      "position": [
        4800,
        400
      ],
      "parameters": {
        "sendTo": "youremail@gmail.com",
        "message": "=Based on the following Trustpilot page: \n{{ $('On form submission - Discover Jobs').item.json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}\n\nHere is a summary of recent complaints including ideas for ad copy:\n{{ $json.text }}\n-----------------------------\n\nI'm also attaching a break down of all recent complaints {{ $('Aggregating all filtered reviews').item.json.Aggregated_reviews }}\n",
        "options": {},
        "subject": "=Summary of Complaints of competitor: {{ $('On form submission - Discover Jobs').item.json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "14516602-fe16-4a1f-8ada-690a4188429d",
      "name": "Filtering only bad reviews",
      "type": "n8n-nodes-base.filter",
      "position": [
        3520,
        380
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "7aaa3c61-27d5-4165-aaf3-4783d0ef0db0",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.review_rating }}",
              "rightValue": "1"
            },
            {
              "id": "7aab561d-2454-4d4b-a5d6-51c0582ea85b",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.review_rating }}",
              "rightValue": "2"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "a93f9763-4eaa-4654-9bb1-93a1c8b468f9",
      "name": "Aggregating all filtered reviews",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3780,
        380
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "Aggregated_reviews",
              "fieldToAggregate": "review_content"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "effec41f-a19f-48c7-a540-ec69968850ee",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4120,
        140
      ],
      "parameters": {
        "width": 360,
        "height": 820,
        "content": "Adjust This Prompt with:\n1. Add info about your company and offer.\n\n2. The template requires the LLM to generate ad copy, but you can change it to any marketing material you'd like.\nExamples:\n- Suggest ideas for FAQ\n- Suggest copy for UGC scripts\n- Suggest copy for Add to cart email flow etc\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e9bf2453-8f98-4d43-ac0c-f3e4b45787c9",
      "name": "Google Sheets - Adding All Reviews",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3280,
        380
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "company_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_rating",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_content",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_verified_review",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "is_verified_review",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_date_of_experience",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_date_of_experience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reviewer_location",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "reviewer_location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reviews_posted_overall",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "reviews_posted_overall",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_replies",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_replies",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_useful_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_useful_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reviewer_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "reviewer_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_logo",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_logo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_overall_rating",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_overall_rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_verified_company",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "is_verified_company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_total_reviews",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_total_reviews",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "5_star",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "5_star",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "4_star",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "4_star",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "3_star",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "3_star",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "2_star",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "2_star",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "1_star",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "1_star",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_about",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_phone",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_location",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_country",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "breadcrumbs",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "breadcrumbs",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_website",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_other_categories",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_other_categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "review_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date_posted",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date_posted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit#gid=0",
          "cachedResultName": "input"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit?usp=drivesdk",
          "cachedResultName": "NoFluff-N8N-Sheet-Template- Trust PIlot Reviews Scraping WIth Bright Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3,
      "alwaysOutputData": true
    },
    {
      "id": "a3911ad6-be39-4bba-9b1c-96c5a7017da4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        220
      ],
      "parameters": {
        "width": 860,
        "height": 380,
        "content": "### Scrape Trustpilot Reviews Using Bright Data for Winning Ad Insights\n\nThis **n8n workflow** scrapes Trustpilot reviews of a specified competitor using **Bright Data's dataset API**. Users input the competitor's Trustpilot URL and select a timeframe (30 days, 3 months, 6 months, or 12 months) via an n8n form.\n\n**Workflow steps:**\n\n- Sends a request to Bright Data to fetch Trustpilot reviews based on user input.\n- Polls Bright Data until the dataset is ready.\n- Retrieves the reviews and logs them into a Google Sheet.\n- Filters the results to isolate negative reviews (ratings of 1 or 2 stars).\n- Aggregates negative reviews into summarized text.\n- Uses OpenAI's GPT-4o-mini to analyze competitor weaknesses and generate three Facebook ad copy variations addressing these pain points.\n- Emails the summary, including suggested ad copy and aggregated reviews, to the marketing team.\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Send Summary To Marketers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Snapshot Progress": {
      "main": [
        [
          {
            "node": "If - Checking status of Snapshot - if data is ready or not",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filtering only bad reviews": {
      "main": [
        [
          {
            "node": "Aggregating all filtered reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait - Polling Bright Data": {
      "main": [
        [
          {
            "node": "Snapshot Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregating all filtered reviews": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Adding All Reviews": {
      "main": [
        [
          {
            "node": "Filtering only bad reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission - Discover Jobs": {
      "main": [
        [
          {
            "node": "HTTP Request- Post API call to Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request- Post API call to Bright Data": {
      "main": [
        [
          {
            "node": "Wait - Polling Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - Getting data from Bright Data": {
      "main": [
        [
          {
            "node": "Google Sheets - Adding All Reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If - Checking status of Snapshot - if data is ready or not": {
      "main": [
        [
          {
            "node": "Wait - Polling Bright Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "HTTP Request - Getting data from Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

How this works

This workflow streamlines job discovery by capturing form submissions for specific roles, initiating a custom web scraping snapshot via Bright Data, and intelligently filtering results with AI to deliver only relevant opportunities directly to your Gmail or Google Sheets. It's ideal for recruiters or job seekers seeking automated, targeted insights without manual searching, saving hours on data gathering and analysis. The key step involves polling the scraping status until data is ready, then using an LLM chain to process and refine the output for precision.

Use this when you need event-driven automation for periodic job market scans, such as weekly updates on niche positions, integrating seamlessly with form inputs for custom queries. Avoid it for real-time alerts or high-volume scraping that might hit API limits; instead, opt for simpler HTTP Request flows without AI if basic data pulls suffice. Common variations include swapping Gmail for Slack notifications or adjusting the LLM prompts for industry-specific filtering.

About this workflow

Wait Filter. Uses stickyNote, httpRequest, formTrigger, chainLlm. Event-driven trigger; 18 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

n8n Graphic Design Team. Uses googleSheets, googleDrive, httpRequest, outputParserStructured. Event-driven trigger; 37 nodes.

Google Sheets, Google Drive, HTTP Request +5
Email & Gmail

Wait Http. Uses stickyNote, httpRequest, lmChatOpenAi, googleSheets. Event-driven trigger; 17 nodes.

HTTP Request, OpenAI Chat, Google Sheets +4
Email & Gmail

🎦💌Advanced YouTube RSS Feed Buddy for Your Favorite Channels. Uses formTrigger, httpRequest, stickyNote, lmChatOpenAi. Event-driven trigger; 41 nodes.

Form Trigger, HTTP Request, OpenAI Chat +4
Email & Gmail

Landing Page Analyzer. Uses formTrigger, httpRequest, outputParserStructured, googleGemini. Event-driven trigger; 15 nodes.

Form Trigger, HTTP Request, Output Parser Structured +4
Email & Gmail

Customer Feedback Sentiment Analysis. Uses formTrigger, sentimentAnalysis, lmChatOpenAi, googleSheets. Event-driven trigger; 10 nodes.

Form Trigger, Sentiment Analysis, OpenAI Chat +3