This workflow follows the Emailsend → 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 →
{
"id": "nmVATBvrztDxZX6z",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "LinkedIn Profile Finder via Form using Bright Data & GPT-4o-mini",
"tags": [],
"nodes": [
{
"id": "ff6d4985-8b42-46d8-95c8-e80ff102440c",
"name": "Extract Body and Title from Website",
"type": "n8n-nodes-base.html",
"position": [
1600,
-1120
],
"parameters": {
"options": {
"trimValues": true
},
"operation": "extractHtmlContent",
"dataPropertyName": "body",
"extractionValues": {
"values": [
{
"key": "title",
"cssSelector": "title"
},
{
"key": "body",
"cssSelector": "body"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "4da21d9c-59d2-4151-a1ca-5e7a85cf0316",
"name": "When User Completes Form",
"type": "n8n-nodes-base.formTrigger",
"position": [
580,
-1120
],
"parameters": {
"options": {
"path": "search-user",
"ignoreBots": true,
"buttonLabel": "Get References"
},
"formTitle": "Sales prospecting",
"formFields": {
"values": [
{
"fieldLabel": "Person Fullname",
"placeholder": "Complete the fullname",
"requiredField": true
},
{
"fieldLabel": "Person's company",
"placeholder": "Complete the company",
"requiredField": true
}
]
},
"responseMode": "lastNode",
"formDescription": "Complete the data of the prospect you want to analyze.\n\nA personalized follow-up email with insights and suggested outreach steps will be sent to you:"
},
"typeVersion": 2.2
},
{
"id": "644fab8f-66c6-4ae5-984b-7e1e66c265a2",
"name": "Get LinkedIn Entry on Google",
"type": "n8n-nodes-brightdata.brightData",
"position": [
1280,
-1120
],
"parameters": {
"url": "={{ $json.google_search }}",
"zone": {
"__rl": true,
"mode": "list",
"value": "web_unlocker1",
"cachedResultName": "web_unlocker1"
},
"format": "json",
"country": {
"__rl": true,
"mode": "list",
"value": "us",
"cachedResultName": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e226ea33-a643-4396-9cbf-53901eeef89f",
"name": "Parse Google Results",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1920,
-1120
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=Extract Linkedin profiles from google results (link, fullname, position, company if possible). \n\nReturn a results property with all the parsed results including a property \"match\" if user matches the data entry values \"{{ $('When User Completes Form').item.json[\"Person Fullname\"].trim() }} {{ $('When User Completes Form').item.json[\"Person Position\"].trim() }} {{ $('When User Completes Form').item.json[\"Person's company\"].trim() }}\""
},
{
"content": "=The input text is:\n{{ $json.body }}"
},
{
"content": "=Categories to filter: {{ $('When User Completes Form').item.json.Category.join(',') }}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "8018f6c1-037b-4577-ae4c-d2129fe2ecf4",
"name": "Form Not Found",
"type": "n8n-nodes-base.form",
"position": [
2280,
-800
],
"parameters": {
"operation": "completion",
"respondWith": "showText",
"responseText": "=We didn't found a person for \"{{ $('When User Completes Form').item.json[\"Person Fullname\"] }} {{ $('When User Completes Form').item.json[\"Person Fullname\"] }} {{ $('When User Completes Form').item.json[\"Person's company\"] }}\""
},
"typeVersion": 1
},
{
"id": "3de33b35-63b5-419d-9719-b217c92767c6",
"name": "Get only Matching Profiles",
"type": "n8n-nodes-base.filter",
"position": [
1460,
-820
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "51a15ff2-457c-4a96-bfad-fe6d29a8cd9f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.match }}",
"rightValue": "true"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "b7e925b1-3b67-4b17-bcc1-10111ed41c32",
"name": "Limit to 1 Profile",
"type": "n8n-nodes-base.limit",
"position": [
1740,
-820
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d4a6a867-6e9b-48d3-9ba2-0d9d2e803e67",
"name": "Extract Parsed Results",
"type": "n8n-nodes-base.splitOut",
"position": [
2340,
-1120
],
"parameters": {
"options": {},
"fieldToSplitOut": "message.content.results"
},
"typeVersion": 1
},
{
"id": "daf17e0e-0fc9-45e4-9393-8ba3a60f868e",
"name": "LinkedIn Profile is Found?",
"type": "n8n-nodes-base.if",
"position": [
1960,
-820
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "645d85d3-c5cc-4e51-a989-075c0a851449",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": 1
}
]
}
},
"typeVersion": 2.2
},
{
"id": "300da9f8-6c24-4081-af96-ae09a1b513f8",
"name": "Edit Url LinkedIn",
"type": "n8n-nodes-base.set",
"position": [
940,
-1120
],
"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%2Fin+{{ encodeURIComponent($json[\"Person Fullname\"].trim() + \" \" + $json[\"Person's company\"].trim()) }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3ffaef02-ee98-4663-9a64-37907943427d",
"name": "Edit Company Search",
"type": "n8n-nodes-base.set",
"position": [
300,
-860
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6b95685b-3286-4643-bfa1-6335d3f8cb39",
"name": "google_search",
"type": "string",
"value": "=https://www.google.com/search?q={{ encodeURIComponent($json[\"Person's company\"].trim()) }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "29294eaa-4692-4c1b-806a-11bd32428fdd",
"name": "Extract Body and Title from Website1",
"type": "n8n-nodes-base.html",
"position": [
860,
-860
],
"parameters": {
"options": {
"trimValues": true
},
"operation": "extractHtmlContent",
"dataPropertyName": "body",
"extractionValues": {
"values": [
{
"key": "title",
"cssSelector": "title"
},
{
"key": "body",
"cssSelector": "body"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "e5232b69-eefe-4875-b339-54f7d2787863",
"name": "Get Company on Google",
"type": "n8n-nodes-brightdata.brightData",
"position": [
540,
-860
],
"parameters": {
"url": "={{ $json.google_search }}",
"zone": {
"__rl": true,
"mode": "list",
"value": "web_unlocker1",
"cachedResultName": "web_unlocker1"
},
"format": "json",
"country": {
"__rl": true,
"mode": "list",
"value": "us",
"cachedResultName": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a8696ab3-76f0-4b58-93d6-1b73f4c1d83a",
"name": "Parse Google Results for Company",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
720,
-420
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=Get first entry matching company {{ $('When User Completes Form').item.json[\"Person's company\"] }}\n\nOutput first entry data in a content property"
},
{
"content": "=The input text is:\n{{ $json.body }}"
},
{
"content": "=Categories to filter: {{ $('When User Completes Form').item.json.Category.join(',') }}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "4b4a6ef2-92ae-4dee-aac1-081fb1a2dbd9",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
1080,
-420
],
"parameters": {
"options": {},
"fieldToSplitOut": "message.content"
},
"typeVersion": 1
},
{
"id": "cbf625d0-097d-47e7-8ab0-fb2da9dc3f7c",
"name": "Create a Followup for Company and Person",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1500,
-440
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=Use data to analyze as a buyer persona. Find the best approach to connect for future champion in his company. Give recommendations and a concrete outreach steps.\n\nOutput report as raw html in a propety called content. Use tailwind for styles."
},
{
"content": "=The input text is:\n{{ JSON.stringify($json)}}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "6347e20c-b3f0-42ff-bc31-ddf4d13a4398",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1320,
-440
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.1
},
{
"id": "4df0fb38-dad4-4eda-876c-591111e98807",
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1880,
-440
],
"parameters": {
"html": "={{ $json.message.content.content }}",
"options": {},
"subject": "Next followup",
"toEmail": "miquel@n8nhackers.com",
"fromEmail": "miquel@n8nhackers.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "5d28cc94-3193-48e6-9bad-f15baf403645",
"name": "Form Email Sent",
"type": "n8n-nodes-base.form",
"position": [
2120,
-440
],
"parameters": {
"options": {},
"operation": "completion",
"completionTitle": "Thank you!",
"completionMessage": "We have sent you an email"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "ea9dab20-4b74-45d0-9bf9-b0c1a884fe81",
"connections": {
"Merge": {
"main": [
[
{
"node": "Create a Followup for Company and Person",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Send Email": {
"main": [
[
{
"node": "Form Email Sent",
"type": "main",
"index": 0
}
]
]
},
"Edit Url LinkedIn": {
"main": [
[
{
"node": "Get LinkedIn Entry on Google",
"type": "main",
"index": 0
}
]
]
},
"Limit to 1 Profile": {
"main": [
[
{
"node": "LinkedIn Profile is Found?",
"type": "main",
"index": 0
}
]
]
},
"Edit Company Search": {
"main": [
[
{
"node": "Get Company on Google",
"type": "main",
"index": 0
}
]
]
},
"Parse Google Results": {
"main": [
[
{
"node": "Extract Parsed Results",
"type": "main",
"index": 0
}
]
]
},
"Get Company on Google": {
"main": [
[
{
"node": "Extract Body and Title from Website1",
"type": "main",
"index": 0
}
]
]
},
"Extract Parsed Results": {
"main": [
[
{
"node": "Get only Matching Profiles",
"type": "main",
"index": 0
}
]
]
},
"When User Completes Form": {
"main": [
[
{
"node": "Edit Url LinkedIn",
"type": "main",
"index": 0
},
{
"node": "Edit Company Search",
"type": "main",
"index": 0
}
]
]
},
"Get only Matching Profiles": {
"main": [
[
{
"node": "Limit to 1 Profile",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn Profile is Found?": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
],
[
{
"node": "Form Not Found",
"type": "main",
"index": 0
}
]
]
},
"Get LinkedIn Entry on Google": {
"main": [
[
{
"node": "Extract Body and Title from Website",
"type": "main",
"index": 0
}
]
]
},
"Parse Google Results for Company": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Extract Body and Title from Website": {
"main": [
[
{
"node": "Parse Google Results",
"type": "main",
"index": 0
}
]
]
},
"Extract Body and Title from Website1": {
"main": [
[
{
"node": "Parse Google Results for Company",
"type": "main",
"index": 0
}
]
]
},
"Create a Followup for Company and Person": {
"main": [
[
{
"node": "Send Email",
"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.
brightdataApiopenAiApismtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Easily discover LinkedIn profiles for potential business contacts or talent scouting by submitting a name through a simple form, receiving enriched details like job titles and company affiliations in your email. This workflow suits sales teams, recruiters, or networkers seeking quick, accurate profile insights without manual searching. It leverages Bright Data to scrape Google results and GPT-4o-mini to intelligently parse and match the most relevant LinkedIn entry, streamlining your outreach process.
Use this when you need on-demand profile lookups for a handful of individuals, such as verifying leads during prospecting. Avoid it for bulk operations exceeding dozens of searches daily, as rate limits on Bright Data could apply; opt for dedicated API services instead. Common variations include adding email verification nodes or integrating with CRM tools like HubSpot for direct lead import.
About this workflow
LinkedIn Profile Finder via Form using Bright Data & GPT-4o-mini. Uses html, formTrigger, n8n-nodes-brightdata, openAi. Event-driven trigger; 19 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Stopanderror Splitout. Uses outputParserStructured, lmChatOpenAi, formTrigger, chainLlm. Event-driven trigger; 85 nodes.
Deep Research old(fr). Uses outputParserStructured, formTrigger, chainLlm, form. Event-driven trigger; 79 nodes.
Deep Research old(fr). Uses outputParserStructured, formTrigger, chainLlm, form. Event-driven trigger; 79 nodes.
Publish Videos & Images - Blotato. Uses httpRequest, stickyNote, airtable, openAi. Event-driven trigger; 30 nodes.
Create Linear Tickets From Notion Content. Uses splitInBatches, graphql, notion, linear. Event-driven trigger; 24 nodes.