🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Bright Data + Google Gemini for clean LinkedIn leads

Lisa Granqvist Partner Workflow Automation Expert

Copying LinkedIn profile details into a spreadsheet sounds simple. Then you do it for 30 leads, lose half an afternoon, and still end up with messy titles, missing company fields, and notes that don’t match across your team.

This LinkedIn leads automation hits marketing ops first, honestly. But sales teams chasing outbound lists and recruiters building pipelines feel the same drag. You will go from “random profile scraps” to structured, usable lead rows you can actually score and report on.

Below, you’ll see how the workflow scrapes LinkedIn via Bright Data, has Google Gemini clean and standardize it, then saves and notifies you so the data is ready for outreach or analytics.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Bright Data + Google Gemini for clean LinkedIn leads

The Problem: LinkedIn lead data is messy and slow to collect

LinkedIn is full of useful signals, but getting them into a system you can use is the painful part. You open a profile, copy a job title, paste it somewhere, then realize the company page has the real headcount or industry detail you needed. Next thing you know, you’ve got five browser tabs, a half-filled sheet, and a list that’s inconsistent across rows because you were rushing. The worst part is the rework. You either clean it later (which never happens) or you clean it mid-stream and your “quick list build” turns into a project.

It adds up fast. Here’s where it breaks down in real life.

  • Manual copy-paste forces you to make formatting decisions hundreds of times per week.
  • Small inconsistencies (like “VP Sales” vs “Vice President of Sales”) quietly ruin scoring and segmentation.
  • People pull different fields, so your “team list” becomes five versions of the truth.
  • Even careful teams miss context from the company page, which means weaker targeting and worse outreach.

The Solution: Bright Data scrapes, Gemini cleans, n8n delivers

This workflow turns raw LinkedIn pages into clean lead records you can actually use. You start by providing the LinkedIn person URL (and the related company URL). n8n uses Bright Data’s MCP Server LinkedIn tools to scrape the underlying page data reliably, even when LinkedIn is picky. Then an AI layer (Google Gemini) transforms that scrape into structured fields and a readable narrative, so job titles, locations, company details, and summaries come out consistent. Finally, the workflow posts results to a webhook endpoint you choose and saves copies to disk, giving you both an immediate “push” and a stored record for later.

The flow kicks off from a manual run trigger (easy for one-off research). Bright Data pulls the person and company data in parallel, then Gemini standardizes and shapes it into a clean output. After that, n8n aggregates the final record and sends it out through a webhook while also saving files for traceability.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you’re building a list of 25 LinkedIn leads for a campaign. Manually, you might spend about 8 minutes per person profile plus another 5 minutes grabbing the matching company details, which is roughly 5 hours. With this workflow, you paste the URLs once, run it, and wait for the scrape and Gemini cleanup to finish (often under 10 minutes per batch, depending on LinkedIn and your setup). You still review the final rows, but that’s a quick scan, not a rebuild.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Bright Data account to access Web Unlocker scraping.
  • Bright Data MCP Server to scrape via MCP tools.
  • Google Gemini API key (get it from Google AI Studio).

Skill level: Intermediate. You’ll paste URLs, add credentials, and be comfortable adjusting a webhook endpoint and local file paths.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

You provide LinkedIn URLs. The workflow starts from a manual run, then assigns the LinkedIn person URL and company URL into the flow so every downstream step uses the right targets.

Bright Data does the scraping. n8n connects to the Bright Data MCP Server and calls the LinkedIn scraping tools for both the person page and company page, pulling back the raw response content that would be painful to collect by hand.

Gemini cleans and structures it. The workflow parses the MCP response, extracts a company narrative, and runs the transformation through a Gemini chat step so the output becomes consistent fields instead of unpredictable blobs of text.

You get a saved record and a push notification. n8n aggregates the final result, posts the person and company payloads to your webhook endpoint, and also writes files to disk so you have a persistent copy for auditing or reuse.

You can easily modify the webhook destination to send results to Slack, Airtable, Notion, or your CRM based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow with a manual trigger so you can test and iterate quickly.

  1. Add the Manual Run Trigger node as the workflow trigger.
  2. Leave all parameters empty in Manual Run Trigger (default manual execution).
  3. Connect Manual Run Trigger to both Fetch MCP Tool Catalog and Retrieve Bright Data Tools to match the parallel start.

Manual Run Trigger outputs to both Fetch MCP Tool Catalog and Retrieve Bright Data Tools in parallel.

Step 2: Connect MCP Tool Services

These nodes initialize the MCP tool catalog and Bright Data tools used for scraping.

  1. Open Fetch MCP Tool Catalog and ensure it has credentials.
  2. Credential Required: Connect your mcpClientApi credentials.
  3. Open Retrieve Bright Data Tools and ensure it has credentials.
  4. Credential Required: Connect your mcpClientApi credentials.

Fetch MCP Tool Catalog connects to Assign Profile URLs, while Retrieve Bright Data Tools connects to Set Company Profile URL.

If the MCP catalog does not load, recheck the mcpClientApi credential permissions and token validity.

Step 3: Set Up Profile URL Inputs

Provide the LinkedIn person and company URLs and webhook targets that downstream nodes will use.

  1. In Assign Profile URLs, set url to https://www.linkedin.com/in/[YOUR_ID]/.
  2. In Assign Profile URLs, set webhook_url to https://webhook.site/[YOUR_ID].
  3. In Set Company Profile URL, set url to https://www.linkedin.com/company/[YOUR_ID]/.
  4. In Set Company Profile URL, set webhook_url to https://webhook.site/[YOUR_ID].
⚠️ Common Pitfall: Forgetting to replace [YOUR_ID] will result in empty or invalid scrape responses.

Step 4: Configure the Scrape and Parsing Pipeline

Scrape person and company profiles, then parse the company data for downstream processing.

  1. Open MCP Person Scrape and set toolName to web_data_linkedin_person_profile.
  2. In MCP Person Scrape, set operation to executeTool and toolParameters to ={ "url": "{{ $json.url }}" } .
  3. Credential Required: Connect your mcpClientApi credentials in MCP Person Scrape.
  4. Open MCP Company Scrape and set toolName to web_data_linkedin_company_profile.
  5. In MCP Company Scrape, set operation to executeTool and toolParameters to ={ "url": "{{ $json.url }}" } .
  6. Credential Required: Connect your mcpClientApi credentials in MCP Company Scrape.
  7. In Parse MCP Response, keep jsCode set to jsonContent = JSON.parse($input.first().json.result.content[0].text) return jsonContent.

MCP Person Scrape outputs to both Post Person Webhook and Build Person Binary in parallel, while MCP Company Scrape outputs to both Parse MCP Response and Extract Company Narrative in parallel.

Step 5: Set Up AI Narrative and Aggregation

Use Gemini to generate the company story, then merge and aggregate results.

  1. In Extract Company Narrative, set text to =Write a complete story of the provided company information in JSON. Use the following Company info to produce a story or a blog post. Make sure to incorporate all the provided company context. Here's the Company Info in JSON - {{ $json.input }}.
  2. Keep the attribute configuration in Extract Company Narrative with company_story required.
  3. Open Gemini Chat Engine and set modelName to models/gemini-2.0-flash-exp.
  4. Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine.
  5. Ensure Gemini Chat Engine is connected as the language model for Extract Company Narrative.
  6. In Combine Streams, keep defaults to merge Parse MCP Response and Extract Company Narrative output.
  7. In Aggregate Results, aggregate about and output.company_story as configured.
For AI tools, add credentials to the parent node (Gemini Chat Engine), not the sub-node (Extract Company Narrative).

Step 6: Configure Output Destinations

Send webhook responses and save person/company data to disk.

  1. In Post Person Webhook, set url to ={{ $('Assign Profile URLs').item.json.webhook_url }} and enable sendBody.
  2. In Post Person Webhook, set the body parameter response to ={{ $json.result.content[0].text }}.
  3. In Build Person Binary, keep functionCode set to the base64 JSON conversion script.
  4. In Save Person File, set operation to write and fileName to d:\LinkedIn-Person.json.
  5. In Post Company Webhook, set url to ={{ $('Set Company Profile URL').item.json.webhook_url }} and specifyBody to json.
  6. In Post Company Webhook, set jsonBody to ={ "about": {{ JSON.stringify($json.about[0]) }}, "story": {{ JSON.stringify($json.company_story[0]) }} }.
  7. In Build Company Binary, keep functionCode set to the base64 JSON conversion script.
  8. In Save Company File, set operation to write and fileName to d:\LinkedIn-Company.json.

Aggregate Results outputs to both Post Company Webhook and Build Company Binary in parallel.

⚠️ Common Pitfall: The file paths d:\LinkedIn-Person.json and d:\LinkedIn-Company.json must exist and be writable on the n8n host.

Step 7: Test and Activate Your Workflow

Run a manual execution to validate scraping, AI generation, and output delivery.

  1. Click Execute Workflow to run Manual Run Trigger.
  2. Confirm successful runs on Post Person Webhook and Post Company Webhook by checking the webhook endpoint logs.
  3. Verify files saved by Save Person File and Save Company File at d:\LinkedIn-Person.json and d:\LinkedIn-Company.json.
  4. Once verified, switch the workflow toggle to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Bright Data credentials can expire or need specific permissions. If things break, check your Bright Data API token and the Web Unlocker zone setup in the Bright Data control panel first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this LinkedIn leads automation?

Plan on about an hour if your Bright Data and Gemini keys are ready.

Do I need coding skills to automate LinkedIn leads?

No. You’ll mostly paste URLs, connect credentials, and choose where the webhook should send the output.

Is n8n free to use for this LinkedIn leads automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Bright Data usage and Gemini API usage, which depends on how many profiles you process.

Where can I host n8n to run this LinkedIn leads automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this LinkedIn leads automation workflow for Google Sheets output?

Yes, and it’s a common tweak. You can add or extend the Google Sheets node to append a row after the “Aggregate Results” step, mapping Gemini’s structured fields into consistent columns. Many teams also adjust the “Extract Company Narrative” and Gemini prompt so the same column names are always produced, even when profiles look different.

Why is my Bright Data connection failing in this LinkedIn leads automation workflow?

Usually it’s an API token issue or the MCP Client (STDIO) credentials aren’t pointing to the right local MCP Server. Double-check the Bright Data API_TOKEN environment value, then confirm your Web Unlocker zone exists and matches what you configured. If it worked yesterday and fails today, regenerate the token and update it in n8n. Rate limits can also show up as random failures when you try to scrape too many profiles back-to-back.

How many profiles can this LinkedIn leads automation handle?

It depends on your n8n plan and your Bright Data limits. On n8n Cloud, your monthly executions cap how many runs you can do, while self-hosting has no execution limit (your server becomes the constraint). Practically, most teams process leads in batches of 10 to 50 to keep scraping stable and make reviewing the output easy.

Is this LinkedIn leads automation better than using Zapier or Make?

For this specific job, yes, because you’re combining web scraping, parsing, AI transformation, and multiple outputs in one flow. Zapier and Make can work for simpler “send data from A to B” tasks, but they get awkward when you need branching logic, file writes, or custom handling of scrape responses. n8n also gives you the option to self-host, which is useful when runs get frequent. One more thing: this template relies on an MCP community node, so you’ll want the flexibility of n8n’s ecosystem. If you’re unsure, Talk to an automation expert and we’ll point you in the right direction.

Clean lead data is the difference between “spray and pray” outreach and a system you can scale. Set this up once, then let the workflow handle the tedious parts while you focus on messaging and follow-up.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal