AutomationFlowsAI & RAG › Extract & Summarize Linkedin Profiles with Bright Data, Google Gemini & Supabase

Extract & Summarize Linkedin Profiles with Bright Data, Google Gemini & Supabase

ByRanjan Dailata @ranjancse on n8n.io

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

Webhook trigger★★★★★ complexityAI-powered31 nodes@Brightdata/N8N Nodes BrightdataInformation ExtractorGoogle Gemini ChatSupabaseStop And Error
AI & RAG Trigger: Webhook Nodes: 31 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the Informationextractor → Google Gemini Chat 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
{
  "id": "8A9m8RyPKJZGTLQO",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "LinkedIn Scraper with Deep Extract, Summarize with Google Gemini & Supabase",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ZOwtAMLepQaGW76t",
      "name": "Building Blocks",
      "createdAt": "2025-04-13T15:23:40.462Z",
      "updatedAt": "2025-04-13T15:23:40.462Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    }
  ],
  "nodes": [
    {
      "id": "82c4f148-6d95-46b4-8418-39624840f431",
      "name": "Access and extract data from a specific URL",
      "type": "@brightdata/n8n-nodes-brightdata.brightData",
      "position": [
        -240,
        -180
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "2b6d9c05-b373-4df5-bc59-644bcab61de4",
      "name": "Set the Input Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -460,
        -180
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "af1d49d3-e110-42ed-9887-50e9bd49225f",
      "name": "Summarizer",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        680,
        -80
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "51fa33d5-38f9-4a63-ab86-9a4ab552ba80",
      "name": "Skills Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        680,
        620
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "4d2265b8-902a-4b2e-b66e-f41a8806619f",
      "name": "Google Gemini Chat Model for Skill Extraction",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        840
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9885d845-0268-4c31-b1b1-dd5e8d78bc6f",
      "name": "Google Gemini Chat Model for Summarization",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        140
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "45572054-a7ef-4d77-ba90-dc2753e355fb",
      "name": "Google Gemini Chat Model for Experiences",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        -260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "879c26f2-a983-4804-bc78-836cb72833a2",
      "name": "Markdown Content",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        680,
        -480
      ],
      "parameters": {},
      "executeOnce": false,
      "retryOnFail": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "14a25f01-7fd6-40c0-b418-a3e501245881",
      "name": "Google Gemini Chat Model for Emerging Roles",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        -660
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "76d38164-75e8-47e0-9138-a96b4b0cd527",
      "name": "Emerging Roles",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        680,
        -880
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "e5ce88f4-93ac-416d-916d-5866a5edf6e3",
      "name": "Create a row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1980,
        -280
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ba23d43e-bbdd-4273-a3ab-56d096481ce5",
      "name": "Google Gemini Chat Model for Basic Profile Info",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        -1060
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fdb4dda9-9817-460f-aac9-a3c2b5e24ff8",
      "name": "Basic Profile Info",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        680,
        -1280
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "5c7d6311-7ace-4785-9b84-94217c9295e6",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1320,
        -420
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "fffe1510-ce49-4587-9100-e37484b0ca0d",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1540,
        -380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b86e45ff-15b4-406c-990a-3ee2b619eb65",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -680,
        -180
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "c4b0e1b4-64f9-4d17-899d-0aebef085bc8",
      "name": "Set the Scraped Response",
      "type": "n8n-nodes-base.set",
      "position": [
        -20,
        -180
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "e9951244-50f8-4391-8b2b-6ac6ff1f0f2d",
      "name": "Get a row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1980,
        -480
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "65f4906e-0c55-41cd-9562-b4ca3884cd2c",
      "name": "Update Row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        2560,
        -500
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8a5936d1-72b1-4527-8b4c-994c23cf4ac7",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        760,
        360
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "7c04f360-39b2-48ab-ad01-42b1a3662fb5",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        1040,
        360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0408615c-ef40-4ee2-900c-9bc3753d4c12",
      "name": "Respond to Webhook Create",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2200,
        -280
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "8b50d047-b6b5-4a47-857d-67069bb1b666",
      "name": "Respond to Webhook Update",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2800,
        -500
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "35feff34-ed9b-40e1-8f3b-ff954a652fc3",
      "name": "Respond to Webhook Not Found",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2560,
        -300
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "5850d6d2-3bf0-4256-a821-30e32ebe088c",
      "name": "If record exist",
      "type": "n8n-nodes-base.if",
      "position": [
        2220,
        -480
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "cb3bd33c-405a-4b21-ad9a-1ee30c542c7e",
      "name": "If force create?",
      "type": "n8n-nodes-base.if",
      "position": [
        1760,
        -380
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "c4d8f4b8-641b-4a5c-b603-5eb861ac693f",
      "name": "If status code <> 200",
      "type": "n8n-nodes-base.if",
      "position": [
        200,
        -180
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "a3f5097b-ad74-44b6-a570-ba3caca08fb2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -680,
        -600
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5adb00ca-be98-4b0e-ac06-e9649a20b12b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -860
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5b6aff67-3254-4509-8f5f-0c5cfa7e320e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -600
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "47053603-6115-4fb6-8a5b-cc46cee8997e",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -680,
        -1000
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "93e4376a-0410-422c-b767-b95b60f2dfb1",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Set the Input Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "If force create?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a row": {
      "main": [
        [
          {
            "node": "If record exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarizer": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Update Row": {
      "main": [
        [
          {
            "node": "Respond to Webhook Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a row": {
      "main": [
        [
          {
            "node": "Respond to Webhook Create",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Emerging Roles": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "If record exist": {
      "main": [
        [
          {
            "node": "Update Row",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Webhook Not Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If force create?": {
      "main": [
        [
          {
            "node": "Get a row",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create a row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown Content": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Skills Extractor": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "Basic Profile Info": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Webhook": {
      "main": [
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set the Input Fields": {
      "main": [
        [
          {
            "node": "Access and extract data from a specific URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If status code <> 200": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Basic Profile Info",
            "type": "main",
            "index": 0
          },
          {
            "node": "Emerging Roles",
            "type": "main",
            "index": 0
          },
          {
            "node": "Markdown Content",
            "type": "main",
            "index": 0
          },
          {
            "node": "Summarizer",
            "type": "main",
            "index": 0
          },
          {
            "node": "Skills Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set the Scraped Response": {
      "main": [
        [
          {
            "node": "If status code <> 200",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Experiences": {
      "ai_languageModel": [
        [
          {
            "node": "Markdown Content",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Summarization": {
      "ai_languageModel": [
        [
          {
            "node": "Summarizer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Access and extract data from a specific URL": {
      "main": [
        [
          {
            "node": "Set the Scraped Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Emerging Roles": {
      "ai_languageModel": [
        [
          {
            "node": "Emerging Roles",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Skill Extraction": {
      "ai_languageModel": [
        [
          {
            "node": "Skills Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Basic Profile Info": {
      "ai_languageModel": [
        [
          {
            "node": "Basic Profile Info",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

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

Source: https://n8n.io/workflows/7519/ — 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

Who is this for? Event organizers, conference planners, and marketing teams fighting registration drop-off who want 4-field forms with LinkedIn-level attendee intelligence. What problem is this workfl

Data Table, HubSpot, Email Send +4
AI & RAG

Agendamento Instituto Ariana Borges - Corrigido. Uses lmChatGoogleGemini, googleCalendar, informationExtractor. Webhook trigger; 14 nodes.

Google Gemini Chat, Google Calendar, Information Extractor
AI & RAG

Automatically classify incoming leads based on the sentiment of their message using Google Gemini, store them in Supabase by category, and send tailored WhatsApp messages via the official WhatsApp Clo

Google Gemini Chat, Sentiment Analysis, Supabase +1
AI & RAG

This n8n template automates scraping content from Skool communities using the Olostep API. It collects structured data from Skool pages and stores it in a clean format, making it easy to analyze commu

N8N Nodes Olostep, Form Trigger, HTTP Request +3
AI & RAG

Fluxo-N8N. Uses googleSheetsTool, dataTable, dataTableTool, informationExtractor. Webhook trigger; 30 nodes.

Google Sheets Tool, Data Table, Data Table Tool +11