AutomationFlowsAI & RAG › Enrich Company Data From Linkedin via Bright Data & Google Sheets

Enrich Company Data From Linkedin via Bright Data & Google Sheets

ByGleb D @glebd on n8n.io

This n8n workflow automates the enrichment of a company list by discovering and extracting each company’s official LinkedIn URL using Bright Data’s search capabilities and Google Gemini AI for HTML parsing and result interpretation.

Event trigger★★★★☆ complexityAI-powered26 nodesGoogle Gemini ChatOutput Parser StructuredHTTP RequestGoogle SheetsChain Llm
AI & RAG Trigger: Event Nodes: 26 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #4663 — we link there as the canonical source.

This workflow follows the Chainllm → Google Sheets 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": "aa049b35-0923-44ad-a750-ed8977df734b",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -380,
        380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5782ed4a-bcba-410f-b783-38a6ffa39c76",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        60,
        380
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "51684e89-da9e-4b33-a48c-bda72dfb0e17",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        960,
        820
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-lite"
      },
      "typeVersion": 1
    },
    {
      "id": "37d54ef1-f56b-49e5-aced-2770d472a3a0",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1100,
        820
      ],
      "parameters": {
        "jsonSchemaExample": "[{\n  \"company_name\": \"string\",\n  \"url\": \"string\"\n}]\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "1b4e1b6b-569e-4edf-8cb5-d5b63f7b2d5a",
      "name": "LinkedIn Profile is Found?",
      "type": "n8n-nodes-base.if",
      "position": [
        1320,
        640
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "645d85d3-c5cc-4e51-a989-075c0a851449",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.output[0]['url'] }}",
              "rightValue": 1
            },
            {
              "id": "b44e6a86-9a9b-4d3e-b9c8-cf75bba8ed03",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "433f25c7-d7da-4890-be0d-6c3c7a0d77f8",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1760,
        800
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "0dbcc1b6-7610-4273-8456-c85212de4b53",
      "name": "Add Unique Result",
      "type": "n8n-nodes-base.set",
      "position": [
        1540,
        640
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $json.output[0] }}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "96bda408-f0cb-4ce3-b3b5-6b6dfc2bafdb",
      "name": "Snapshot Progress",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        940,
        380
      ],
      "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_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ca614256-7b3c-45dd-89f7-70760acdaf8a",
      "name": "HTTP Request- Post API call to Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        500,
        380
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ $json.companies }}",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_l1vikfnt1wgvvqz95w"
            },
            {
              "name": "include_errors",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "eeb638d6-ecbc-4136-bb85-15dc4c6df6d4",
      "name": "Wait - Polling Bright Data",
      "type": "n8n-nodes-base.wait",
      "position": [
        720,
        380
      ],
      "parameters": {
        "amount": 15
      },
      "executeOnce": false,
      "typeVersion": 1.1
    },
    {
      "id": "96d0e0e0-f5b9-4659-bd56-6aef99cbdd75",
      "name": "HTTP Request - Getting data from Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1380,
        380
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f27c0593-5155-429f-bb81-b4d55bebea69",
      "name": "Checking status of Snapshot - if data is ready or not",
      "type": "n8n-nodes-base.if",
      "position": [
        1160,
        380
      ],
      "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": "62ae1d4f-8b09-4629-aa79-1d718955cfcd",
      "name": "Code - Parse and Organize JSON Data",
      "type": "n8n-nodes-base.code",
      "position": [
        1600,
        380
      ],
      "parameters": {
        "language": "python",
        "pythonCode": "cleaned = []\nfor item in items:\n  if not item.get(\"json\"):\n      raise ValueError(\"Missing input data on one of the inputs.\")\n    \n  company = item.get(\"json\")\n  \n  cleaned.append({\n    \"brightdata_name\": company.get(\"name\"),\n    \"country\": company.get(\"country_code\"),\n    \"linkedin_employees\": company.get(\"employees_in_linkedin\"),\n    \"about\": company.get(\"about\"),\n    \"description\": company.get(\"description\"),\n    \"additional_info\": company.get(\"additional_information\"),\n    \"specialties\": company.get(\"specialties\"),\n    \"company_size\": company.get(\"company_size\"),\n    \"type\": company.get(\"organization_type\"),\n    \"industries\": company.get(\"industries\"),\n    \"founded\": company.get(\"founded\"),\n    \"headquarters\": company.get(\"headquarters\"),\n    \"funding\": company.get(\"funding\"),\n    \"stock_info\": company.get(\"stock_info\"),\n    \"url\": company.get(\"url\"),\n    \"website\": company.get(\"website\"),\n    \"crunchbase_url\": company.get(\"crunchbase_url\"),\n    \n  })\n\nreturn [{ \"json\": company } for company in cleaned]\n"
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "42779d1f-4b94-4b35-aad6-1a4f95ad3d35",
      "name": "Code - Prepare Request Body for Bright Data",
      "type": "n8n-nodes-base.code",
      "position": [
        280,
        380
      ],
      "parameters": {
        "language": "python",
        "pythonCode": "result_urls = []\nfor item in items:\n  #print(\"Item keys:\", list(item.keys()))\n  if item[\"json\"].get(\"url\"):\n    result_urls.append(item[\"json\"].get(\"url\"))\n#print(f\"Result URLs: {result_urls}\")\nreturn [{\n  \"json\": {\n    \"companies\": [{\"url\": url} for url in result_urls]\n  }\n}]\n"
      },
      "typeVersion": 2
    },
    {
      "id": "cc629ea1-dd49-4f02-a31d-4288b957b10f",
      "name": "Add Empty result",
      "type": "n8n-nodes-base.set",
      "position": [
        1540,
        800
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "=    {\"company_name\": \"{{ $('Loop Over Items').item.json['name']}} (NOT FOUND)\",\n    \"url\": \"\"}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "cff46875-df95-4db2-afb7-62675c9118a1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        180
      ],
      "parameters": {
        "height": 180,
        "content": "## Customization of the output data\nYou can modify the JSON keys in the code to include only the fields you want or add any additional. The current structure is a sample template."
      },
      "typeVersion": 1
    },
    {
      "id": "c5bcbe49-328f-467d-a9b8-d32d1c4875a7",
      "name": "Extract Body from Response",
      "type": "n8n-nodes-base.set",
      "position": [
        720,
        640
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6b95685b-3286-4643-bfa1-6335d3f8cb39",
              "name": "result_body",
              "type": "string",
              "value": "={{ $json.body }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "da01b056-0400-4879-8827-e4da705e014f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -20
      ],
      "parameters": {
        "width": 320,
        "height": 380,
        "content": "## Each Company is Processed Individually\nEvery company name from the Google Sheets column is processed in a separate loop.\n\nFor each company:\n- A unique Google search query is generated\n- The search results are fetched using Bright Data API Request\n- AI-powered parsing extracts the official LinkedIn profile\n- This ensures accurate and dedicated extracting the LinkedIn URL for each company in the list."
      },
      "typeVersion": 1
    },
    {
      "id": "587ffc7f-004b-47a0-b4a4-1d9001006b55",
      "name": "Append Results to Google Sheets table",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1820,
        380
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.companies[0].name }}"
          },
          "schema": [
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "founded",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "founded",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "num_employees",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "num_employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ipo_status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ipo_status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "full_description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "full_description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "social_media_links",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "social_media_links",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "finding_total",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "finding_total",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "num_investors",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "num_investors",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "lead_investors",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "lead_investors",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "founders",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "founders",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "products_and_services",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "products_and_services",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "crunchbase_link",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "crunchbase_link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "companies",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "companies",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "name"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1719329910,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ/edit#gid=1719329910",
          "cachedResultName": "output"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ/edit?usp=drivesdk",
          "cachedResultName": "LinkedIn Companies"
        }
      },
      "typeVersion": 4.3,
      "alwaysOutputData": true
    },
    {
      "id": "9c41c4d8-0174-402f-92a2-1b1d7506a57c",
      "name": "Read Company Names from Google Sheets table",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -160,
        380
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ/edit#gid=0",
          "cachedResultName": "data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1llyncPmiaCYQxrFHroIUbIBuSpNsULGdFk2gRle8BaQ/edit?usp=drivesdk",
          "cachedResultName": "LinkedIn Companies"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "e108cf5d-802c-485e-b382-b5ba5bafa4b5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        180
      ],
      "parameters": {
        "width": 320,
        "height": 180,
        "content": "## After Loop Completion \nAfter collecting all company URLs,\na single request body is prepared containing the list of companies.\nThis enables Bright Data to fetch and return dataset information for all companies in one batch request."
      },
      "typeVersion": 1
    },
    {
      "id": "07296185-f16e-4101-a764-de9406f115bf",
      "name": "Extract LinkedIn Url",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        940,
        640
      ],
      "parameters": {
        "text": "={{ $json.result_body }}",
        "messages": {
          "messageValues": [
            {
              "message": "=Extract official LinkedIn profile for company (not person){{ $('Loop Over Items').item.json['name'] }} from google results. Return a result property with unique parsed result in JSON."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "d0778ce9-580a-4514-90f4-4cd8018db2fc",
      "name": "Bright Data Web Request - Google Search for Company LinkedIn URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        500,
        640
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "web_unlocker1"
            },
            {
              "name": "url",
              "value": "={{ $json.google_search }}"
            },
            {
              "name": "format",
              "value": "json"
            },
            {
              "name": "data_format",
              "value": "markdown"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "af3f6120-115a-420d-a00f-9c52300e3e67",
      "name": "Edit Company Search URL",
      "type": "n8n-nodes-base.set",
      "position": [
        280,
        640
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6b95685b-3286-4643-bfa1-6335d3f8cb39",
              "name": "google_search",
              "type": "string",
              "value": "=https://www.google.com/search?q=site%3Alinkedin.com+{{ encodeURIComponent($json[\"name\"].trim()) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c1d2cb6a-1828-4c74-b710-50260f584eec",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1400,
        1000
      ],
      "parameters": {
        "width": 380,
        "height": 240,
        "content": "## Why Add an Empty Result?\nIf a LinkedIn company profile is not found,\nan empty result is added to the final output for that company.\nThis ensures all companies from the original list are represented in the results,\neven if some were not found.\nYou can also implement custom logic here to handle \u201cnot found\u201d cases differently -\nfor example, logging, sending notifications, or retrying the search."
      },
      "typeVersion": 1
    },
    {
      "id": "f3249704-cfd8-4204-add2-a026d77e407e",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        820
      ],
      "parameters": {
        "width": 300,
        "height": 280,
        "content": "## Replace YOUR_API_KEY\nReplace \"YOUR_API_KEY\" with your Bright Data web_unlocker API key in these nodes:\n**1.** Bright Data Web Request - Google Search for Company LinkedIn URL\n**2.** HTTP Request- Post API call to Bright Data\n**3.** Snapshot Progress\n**4.** HTTP Request - Getting data from Bright Data "
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Code - Prepare Request Body for Bright Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Company Search URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Empty result": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Add Unique Result": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Snapshot Progress": {
      "main": [
        [
          {
            "node": "Checking status of Snapshot - if data is ready or not",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract LinkedIn Url": {
      "main": [
        [
          {
            "node": "LinkedIn Profile is Found?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Company Search URL": {
      "main": [
        [
          {
            "node": "Bright Data Web Request - Google Search for Company LinkedIn URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Extract LinkedIn Url",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Extract LinkedIn Url",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Extract Body from Response": {
      "main": [
        [
          {
            "node": "Extract LinkedIn Url",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Profile is Found?": {
      "main": [
        [
          {
            "node": "Add Unique Result",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Add Empty result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait - Polling Bright Data": {
      "main": [
        [
          {
            "node": "Snapshot Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Read Company Names from Google Sheets table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code - Parse and Organize JSON Data": {
      "main": [
        [
          {
            "node": "Append Results to Google Sheets table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request- Post API call to Bright Data": {
      "main": [
        [
          {
            "node": "Wait - Polling Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code - Prepare Request Body for Bright Data": {
      "main": [
        [
          {
            "node": "HTTP Request- Post API call to Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Company Names from Google Sheets table": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - Getting data from Bright Data": {
      "main": [
        [
          {
            "node": "Code - Parse and Organize JSON Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "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
          }
        ]
      ]
    },
    "Bright Data Web Request - Google Search for Company LinkedIn URL": {
      "main": [
        [
          {
            "node": "Extract Body from Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This n8n workflow automates the enrichment of a company list by discovering and extracting each company’s official LinkedIn URL using Bright Data’s search capabilities and Google Gemini AI for HTML parsing and result interpretation.

Source: https://n8n.io/workflows/4663/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Transform a single quote into a fully-rendered cinematic short video — with voice-over, visuals, and music — then publish it directly to TikTok, Instagram Reels, and YouTube Shorts. This isn’t just au

Agent, HTTP Request, Jwt +7
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

HTTP Request, Google Sheets, OpenRouter Chat +5
AI & RAG

Stop manually digging through Meta Ads data and spending hours trying to connect the dots.

Google Gemini Chat, Output Parser Structured, Google Sheets +3
AI & RAG

Automate your lead intake, scoring, and outreach pipeline. This workflow collects leads from forms, enriches and scores them using Relevance AI, routes them by quality, and triggers the right follow-u

Form Trigger, HTTP Request, Chain Llm +6
AI & RAG

This workflow automates the entire process of creating and publishing culturally rich social media content about Hindu festivals. It starts by building a comprehensive festival calendar for the year i

Google Sheets, Chain Llm, Output Parser Structured +4