LinkedInプロフィール抽出とJSON履歴書の構築(Bright DataとGoogle Gemini)
上級
これはHR, AI分野の自動化ワークフローで、19個のノードを含みます。主にSet, Code, Function, HttpRequest, ManualTriggerなどのノードを使用、AI技術を活用したスマート自動化を実現。 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": "「Test workflow」クリック時",
"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 Webリクエストの実行",
"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
人工知能
Bright Data MCPサーバーとGoogle Geminiを使ったLinkedInウェブスクレイピング
Bright Data MCPサーバーとGoogle Geminiを使用したLinkedInデータの抽出・変換
Set
Code
Merge
+
Set
Code
Merge
20 ノードRanjan Dailata
人工知能
Googleトレンドデータ抽出、Bright DataとGoogle Geminiを使用して要約生成
Bright DataとGoogle Geminiを利用したGoogleトレンドデータ抽出と要約生成
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 データをスクレイピングし自動化
Etsy データマイニングの自動化を実現:Bright Data によるスクレピング、Google Gemini
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で表示 →
このワークフローを共有