Extracción de perfiles de LinkedIn y construcción de currículum en JSON (Bright Data y Google Gemini)
Este es unHR, AIflujo de automatización del dominio deautomatización que contiene 19 nodos.Utiliza principalmente nodos como Set, Code, Function, HttpRequest, ManualTrigger, combinando tecnología de inteligencia artificial para lograr automatización inteligente. Extracción de perfil de LinkedIn y construcción de CV en JSON (Bright Data y Google Gemini)
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de Google Gemini
Nodos utilizados (19)
{
"id": "V9lUeUsju5cwwmNc",
"meta": {
"instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
"templateCredsSetupCompleted": true
},
"name": "LinkedIn Profile Extract and Build JSON Resume with Bright Data & Google Gemini",
"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"
},
{
"id": "rKOa98eAi3IETrLu",
"name": "HR",
"createdAt": "2025-04-13T04:59:30.580Z",
"updatedAt": "2025-04-13T04:59:30.580Z"
}
],
"nodes": [
{
"id": "0bac88f2-4912-4b1e-b511-aab2c3b34db9",
"name": "Al hacer clic en 'Probar flujo de trabajo'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-580,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "df338f53-cb90-4529-befb-382735043ec2",
"name": "Establecer URL y Zona de Bright Data",
"type": "n8n-nodes-base.set",
"position": [
-360,
-140
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3aedba66-f447-4d7a-93c0-8158c5e795f9",
"name": "url",
"type": "string",
"value": "https://www.linkedin.com/in/ranjan-dailata"
},
{
"id": "4e7ee31d-da89-422f-8079-2ff2d357a0ba",
"name": "zone",
"type": "string",
"value": "web_unlocker1"
},
{
"id": "20518160-df56-49fe-9a42-05e9f9d743a5",
"name": "webhook_notification_url",
"type": "string",
"value": "https://webhook.site/c9118da2-1c54-460f-a83a-e5131b7098db"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e3a859aa-b330-4ae5-b0fb-7cd621be6fb3",
"name": "Ejecutar Solicitud Web de Bright Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-140,
-140
],
"parameters": {
"url": "https://api.brightdata.com/request",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "zone",
"value": "={{ $json.zone }}"
},
{
"name": "url",
"value": "={{ $json.url }}"
},
{
"name": "format",
"value": "raw"
},
{
"name": "data_format",
"value": "markdown"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "kdbqXuxIR8qIxF7y",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "078d4a98-9c45-4370-a579-06450798f1a1",
"name": "Extractor de Datos Textuales de Markdown",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
80,
-140
],
"parameters": {
"text": "=You need to analyze the below markdown and convert to textual data. Please do not output with your own thoughts. Make sure to output with textual data only with no links, scripts, css etc.\n\n{{ $json.data }}",
"messages": {
"messageValues": [
{
"message": "You are a markdown expert"
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.6
},
{
"id": "2ba19dce-4f9a-439d-b7ae-d701ddb03616",
"name": "Google Gemini Chat Model para Markdown a Textual",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
100,
80
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"id": "YeO7dHZnuGBVQKVZ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "a45dbef9-58f3-4730-8e1b-83419e1efc85",
"name": "Extractor de Habilidades",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
456,
-440
],
"parameters": {
"text": "=Perform Data Mining and extract the skills from the provided resume\n\n {{ $json.text }}",
"options": {},
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"array\",\n\t\"properties\": {\n\t\t\"skill\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"desc\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "955af989-3590-49ae-90be-df6424200e42",
"name": "Google Gemini Chat Model para Extractor de Habilidades",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
544,
-220
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"id": "YeO7dHZnuGBVQKVZ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "5c32bdeb-666b-4a0f-9722-0c62ec95ac9e",
"name": "Crear datos binarios para Extracción de Datos Estructurados",
"type": "n8n-nodes-base.function",
"position": [
1052,
-40
],
"parameters": {
"functionCode": "items[0].binary = {\n data: {\n data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n }\n};\nreturn items;"
},
"typeVersion": 1
},
{
"id": "b9e899f3-a1a4-4dce-af96-1814fb3c03b7",
"name": "Escribir el contenido estructurado en disco",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1280,
-40
],
"parameters": {
"options": {},
"fileName": "=d:\\Json_Resume.json",
"operation": "write"
},
"typeVersion": 1
},
{
"id": "db74b347-713e-4ff6-9783-1d3f6b1895a6",
"name": "Iniciar Notificación Webhook para Datos Estructurados",
"type": "n8n-nodes-base.httpRequest",
"position": [
1060,
160
],
"parameters": {
"url": "={{ $('Set URL and Bright Data Zone').item.json.webhook_notification_url }}",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "json_resume",
"value": "={{ $('JSON Resume Extractor').item.json.output.toJsonString() }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "29d27cef-c868-4552-ab41-08276f56e6f9",
"name": "Escribir el contenido estructurado de habilidades en disco",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1060,
-340
],
"parameters": {
"options": {},
"fileName": "=d:\\Resume_Skills.json",
"operation": "write"
},
"typeVersion": 1
},
{
"id": "c7a77bd9-955c-45ec-b6d7-e10717eda093",
"name": "Crear datos binarios para Extracción Estructurada de Habilidades",
"type": "n8n-nodes-base.function",
"position": [
832,
-340
],
"parameters": {
"functionCode": "items[0].binary = {\n data: {\n data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n }\n};\nreturn items;"
},
"typeVersion": 1
},
{
"id": "46dc726e-c939-466b-b834-83f0aed2c95c",
"name": "Nota Adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-140,
-420
],
"parameters": {
"color": 5,
"width": 440,
"height": 240,
"content": "## LLM Usages\n\nGoogle Gemini LLM is being utilized for the structured data extraction handling."
},
"typeVersion": 1
},
{
"id": "a100ebc9-9253-4e80-93d9-60174a08e7d9",
"name": "Nota Adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-780
],
"parameters": {
"color": 7,
"width": 400,
"height": 340,
"content": "## Logo\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "097e223c-61e2-4c01-ab8c-3eb2cc48b165",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-420
],
"parameters": {
"width": 400,
"height": 240,
"content": "## Note\n\nDeals with the LinkedIn profile data extraction by utilizing the Bright Data and Google Gemini LLM for transforming the profile into a structured JSON resume with the structured skill extraction.\n\n**Please make sure to set the input fields node with the LinkedIn profile URL, Bright Data zone name, Webhook notification URL**\n"
},
"typeVersion": 1
},
{
"id": "8260cf1a-bd5e-4c05-a898-e7f74ff1d268",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
-520
],
"parameters": {
"color": 7,
"width": 1100,
"height": 960,
"content": "## Structured Data Extract using LLM"
},
"typeVersion": 1
},
{
"id": "e06fcc12-c264-439f-84f2-1988587e21c6",
"name": "JSON Extractor de Currículum",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
460,
80
],
"parameters": {
"text": "=Extract the resume in JSON format.\n {{ $json.text }}",
"options": {},
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"JSON Resume\",\n \"type\": \"object\",\n \"properties\": {\n \"basics\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"label\": { \"type\": \"string\" },\n \"image\": { \"type\": \"string\", \"format\": \"uri\" },\n \"email\": { \"type\": \"string\", \"format\": \"email\" },\n \"phone\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"summary\": { \"type\": \"string\" },\n \"location\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": { \"type\": \"string\" },\n \"postalCode\": { \"type\": \"string\" },\n \"city\": { \"type\": \"string\" },\n \"countryCode\": { \"type\": \"string\" },\n \"region\": { \"type\": \"string\" }\n }\n },\n \"profiles\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"network\": { \"type\": \"string\" },\n \"username\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" }\n }\n }\n }\n }\n },\n \"work\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"position\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"startDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"endDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"summary\": { \"type\": \"string\" },\n \"highlights\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n }\n }\n },\n \"volunteer\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"organization\": { \"type\": \"string\" },\n \"position\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"startDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"endDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"summary\": { \"type\": \"string\" },\n \"highlights\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n }\n }\n },\n \"education\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"institution\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"area\": { \"type\": \"string\" },\n \"studyType\": { \"type\": \"string\" },\n \"startDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"endDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"score\": { \"type\": \"string\" },\n \"courses\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n }\n }\n },\n \"awards\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"date\": { \"type\": \"string\", \"format\": \"date\" },\n \"awarder\": { \"type\": \"string\" },\n \"summary\": { \"type\": \"string\" }\n }\n }\n },\n \"certificates\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"date\": { \"type\": \"string\", \"format\": \"date\" },\n \"issuer\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" }\n }\n }\n },\n \"publications\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"publisher\": { \"type\": \"string\" },\n \"releaseDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"summary\": { \"type\": \"string\" }\n }\n }\n },\n \"skills\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"level\": { \"type\": \"string\" },\n \"keywords\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n }\n }\n },\n \"languages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"language\": { \"type\": \"string\" },\n \"fluency\": { \"type\": \"string\" }\n }\n }\n },\n \"interests\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"keywords\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n }\n }\n },\n \"references\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"reference\": { \"type\": \"string\" }\n }\n }\n },\n \"projects\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"startDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"endDate\": { \"type\": \"string\", \"format\": \"date\" },\n \"description\": { \"type\": \"string\" },\n \"highlights\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" }\n }\n }\n }\n },\n \"required\": [\"basics\"]\n}\n"
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "14c17907-10bb-45a8-b835-39251b742cbe",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
580,
260
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"id": "YeO7dHZnuGBVQKVZ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "9ec7af7d-72e6-410d-b52e-9eda3e193e30",
"name": "Código",
"type": "n8n-nodes-base.code",
"position": [
800,
80
],
"parameters": {
"jsCode": "return $input.first().json.output"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "bcad3928-6913-44b0-b9e5-efc6e738769c",
"connections": {
"9ec7af7d-72e6-410d-b52e-9eda3e193e30": {
"main": [
[
{
"node": "db74b347-713e-4ff6-9783-1d3f6b1895a6",
"type": "main",
"index": 0
},
{
"node": "5c32bdeb-666b-4a0f-9722-0c62ec95ac9e",
"type": "main",
"index": 0
}
]
]
},
"a45dbef9-58f3-4730-8e1b-83419e1efc85": {
"main": [
[
{
"node": "c7a77bd9-955c-45ec-b6d7-e10717eda093",
"type": "main",
"index": 0
}
]
]
},
"e06fcc12-c264-439f-84f2-1988587e21c6": {
"main": [
[
{
"node": "9ec7af7d-72e6-410d-b52e-9eda3e193e30",
"type": "main",
"index": 0
}
]
]
},
"14c17907-10bb-45a8-b835-39251b742cbe": {
"ai_languageModel": [
[
{
"node": "e06fcc12-c264-439f-84f2-1988587e21c6",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"df338f53-cb90-4529-befb-382735043ec2": {
"main": [
[
{
"node": "e3a859aa-b330-4ae5-b0fb-7cd621be6fb3",
"type": "main",
"index": 0
}
]
]
},
"e3a859aa-b330-4ae5-b0fb-7cd621be6fb3": {
"main": [
[
{
"node": "078d4a98-9c45-4370-a579-06450798f1a1",
"type": "main",
"index": 0
}
]
]
},
"0bac88f2-4912-4b1e-b511-aab2c3b34db9": {
"main": [
[
{
"node": "df338f53-cb90-4529-befb-382735043ec2",
"type": "main",
"index": 0
}
]
]
},
"078d4a98-9c45-4370-a579-06450798f1a1": {
"main": [
[
{
"node": "a45dbef9-58f3-4730-8e1b-83419e1efc85",
"type": "main",
"index": 0
},
{
"node": "e06fcc12-c264-439f-84f2-1988587e21c6",
"type": "main",
"index": 0
}
]
]
},
"955af989-3590-49ae-90be-df6424200e42": {
"ai_languageModel": [
[
{
"node": "a45dbef9-58f3-4730-8e1b-83419e1efc85",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5c32bdeb-666b-4a0f-9722-0c62ec95ac9e": {
"main": [
[
{
"node": "b9e899f3-a1a4-4dce-af96-1814fb3c03b7",
"type": "main",
"index": 0
}
]
]
},
"2ba19dce-4f9a-439d-b7ae-d701ddb03616": {
"ai_languageModel": [
[
{
"node": "078d4a98-9c45-4370-a579-06450798f1a1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c7a77bd9-955c-45ec-b6d7-e10717eda093": {
"main": [
[
{
"node": "29d27cef-c868-4552-ab41-08276f56e6f9",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Recursos Humanos, Inteligencia Artificial
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Ranjan Dailata
@ranjancseA Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com
Compartir este flujo de trabajo