LinkedIn 프로필 추출과 JSON 이력서 구축 (Bright Data와 Google Gemini)
고급
이것은HR, AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 Set, Code, Function, HttpRequest, ManualTrigger 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. LinkedIn 프로필 추출과 JSON 이력서 구축 (Bright Data와 Google Gemini)
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Gemini API Key
사용된 노드 (19)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"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": "'워크플로 테스트' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-580,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "df338f53-cb90-4529-befb-382735043ec2",
"name": "URL 및 Bright Data Zone 설정",
"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": "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": "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 Markdown-텍스트 변환 채팅 모델",
"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": "기술 스킬 추출기",
"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 기술 스킬 추출 채팅 모델",
"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": "구조화 데이터 추출용 이진 데이터 생성",
"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": "구조화된 콘텐츠를 디스크에 기록",
"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": "구조화 데이터에 대한 Webhook 알림 시작",
"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": "구조화된 기술 스킬 콘텐츠를 디스크에 기록",
"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": "구조화된 기술 스킬 추출용 이진 데이터 생성",
"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": "스티커 노트4",
"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": "스티커 노트5",
"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": "스티커 노트1",
"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": "스티커 노트",
"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 이력서 추출기",
"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 채팅 모델",
"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": "코드",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 인사, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Bright Data 및 OpenAI 4o mini를 사용한 자동화 이력서-직무 매칭 엔진
Bright Data MCP 및 OpenAI 4o mini를 사용한 자동화된 이력서-채용 공고 매칭 엔진
Set
Function
Split Out
+
Set
Function
Split Out
22 노드Ranjan Dailata
인사
Bright Data를 통해 브랜드 내용 추출, 요약 및 감정 분석
Bright Data와 Google Gemini를 사용하여 브랜드 내용을 추출하고 분석
Set
Function
Http Request
+
Set
Function
Http Request
23 노드Ranjan Dailata
인공지능
브라이트데이터 MCP 서버와 구글 제미니를 사용하여 링크드인 웹 페이지 크롤링
Bright Data MCP 서버와 Google Gemini를 사용하여 LinkedIn 데이터를 추출 및 변환합니다.
Set
Code
Merge
+
Set
Code
Merge
20 노드Ranjan Dailata
인공지능
구글 트렌드 데이터 추출, 브라이트데이터와 구글 제미니를 사용하여 요약 생성
Bright Data와 구글 제미니를 사용한 구글 트렌드 데이터 추출 및 요약 생성
Set
Gmail
Function
+
Set
Gmail
Function
16 노드Ranjan Dailata
엔지니어링
법적 사례 연구 추출기, Bright Data MCP와 Google Gemini 데이터 탐색기 사용
법적 사례 연구 추출기, Bright Data MCP와 Google Gemini 데이터 탐색기 사용
Set
Code
Wait
+
Set
Code
Wait
22 노드Ranjan Dailata
인공지능
Bright Data 스크래핑 및 Google Gemini를 사용한 Etsy 데이터 마이닝 자동화
Bright Data 스크래핑과 Google Gemini를 사용한 Etsy 데이터 마이닝 자동화
Set
Function
Split Out
+
Set
Function
Split Out
19 노드Ranjan Dailata
제품
워크플로우 정보
난이도
고급
노드 수19
카테고리2
노드 유형10
저자
Ranjan Dailata
@ranjancseA Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유