通过Bright Data MCP和OpenAI 4o mini实时提取职位描述与薪资详情
高级
这是一个HR, AI领域的自动化工作流,包含 19 个节点。主要使用 Set, Merge, Function, McpClient, Aggregate 等节点,结合人工智能技术实现智能自动化。 使用Bright Data MCP和OpenAI 4o mini实时提取职位描述与薪资详情
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (19)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "LTw3TlYxQXEMSTi3",
"meta": {
"instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
"templateCredsSetupCompleted": true
},
"name": "通过 Bright Data MCP 和 OpenAI 4o mini 实时提取职位描述与薪资详情",
"tags": [
{
"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": "c3aaad9e-db7d-4761-9e34-99483f302562",
"name": "当点击\"测试工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-660,
-180
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3bf2f1f2-5303-45ce-9c12-76597b4e82fa",
"name": "Bright Data MCP 客户端列表工具",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
-440,
-180
],
"parameters": {},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"typeVersion": 1
},
{
"id": "6489766a-b657-4a2f-8a3d-fc4aea3b11d2",
"name": "设置输入字段",
"type": "n8n-nodes-base.set",
"position": [
-220,
-180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0ac91db2-9848-40d4-b942-cd7288597ded",
"name": "job_search_url",
"type": "string",
"value": "https://www.indeed.com/viewjob?jk=075f6b95d1ae92ae"
},
{
"id": "f5b7e10d-bcd8-439c-8e84-ba4af11f2cd2",
"name": "job_role",
"type": "string",
"value": "Lead Backend .Net Developer Dallas, TX Hybrid work"
},
{
"id": "e601ea9e-20ab-40ed-82ec-89b895b07f85",
"name": "webhook_notification_url",
"type": "string",
"value": "https://webhook.site/c9118da2-1c54-460f-a83a-e5131b7098db"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f6a345dd-40a3-4a94-ba65-18698694a8bc",
"name": "用于职位数据提取的 MCP 客户端(支持 Markdown)",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
20,
-180
],
"parameters": {
"toolName": "scrape_as_markdown",
"operation": "executeTool",
"toolParameters": "={\n \"url\": \"{{ $json.job_search_url }}\"\n} "
},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"typeVersion": 1
},
{
"id": "53495c35-ca3a-4874-a0a3-2cd9965a9638",
"name": "用于薪资数据提取的 MCP 客户端",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
20,
-540
],
"parameters": {
"toolName": "search_engine",
"operation": "executeTool",
"toolParameters": "={\n \"query\": \"{{ $json.job_role }}\",\n \"engine\": \"google\"\n} "
},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"typeVersion": 1
},
{
"id": "25668caa-6981-4f57-9eae-ba5c29374e56",
"name": "薪资信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
260,
-540
],
"parameters": {
"text": "=Extract the salary information from the following content {{ $json.result.content[0].text }}",
"options": {},
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"http://json-schema.org/schema#\",\n \"title\": \"Salary Information\",\n \"type\": \"object\",\n \"properties\": {\n \"job_title\": {\n \"type\": \"string\",\n \"description\": \"The official title of the job (e.g., Software Engineer, DevOps Engineer)\"\n },\n \"job_level\": {\n \"type\": \"string\",\n \"description\": \"The seniority level (e.g., Junior, Mid, Senior, Lead, Principal)\",\n \"enum\": [\"Intern\", \"Junior\", \"Mid\", \"Senior\", \"Lead\", \"Principal\", \"Director\", \"VP\", \"C-Level\"]\n },\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The name of the company offering the position\"\n },\n \"location\": {\n \"type\": \"string\",\n \"description\": \"City and state/country of the job\"\n },\n \"employment_type\": {\n \"type\": \"string\",\n \"description\": \"Full-time, Part-time, Contract, Freelance, Internship\",\n \"enum\": [\"Full-time\", \"Part-time\", \"Contract\", \"Freelance\", \"Internship\"]\n },\n \"remote_option\": {\n \"type\": \"string\",\n \"description\": \"Remote status of the job\",\n \"enum\": [\"On-site\", \"Hybrid\", \"Remote\"]\n },\n \"currency\": {\n \"type\": \"string\",\n \"description\": \"Currency code (e.g., USD, EUR, INR)\"\n },\n \"salary_min\": {\n \"type\": \"number\",\n \"description\": \"Minimum base salary offered\"\n },\n \"salary_max\": {\n \"type\": \"number\",\n \"description\": \"Maximum base salary offered\"\n },\n \"salary_period\": {\n \"type\": \"string\",\n \"description\": \"Salary frequency\",\n \"enum\": [\"hour\", \"day\", \"week\", \"month\", \"year\"]\n },\n \"equity\": {\n \"type\": \"string\",\n \"description\": \"Equity component of the compensation (e.g., '0.1%', '$5,000 in stock')\",\n \"nullable\": true\n },\n \"bonus\": {\n \"type\": \"string\",\n \"description\": \"Bonus component (e.g., '10% performance bonus', '$5000 sign-on')\",\n \"nullable\": true\n },\n \"skills_required\": {\n \"type\": \"array\",\n \"description\": \"Key technical or soft skills expected\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"experience_required\": {\n \"type\": \"string\",\n \"description\": \"Experience required in years or description (e.g., '3-5 years', 'Entry level')\"\n },\n \"posting_source\": {\n \"type\": \"string\",\n \"description\": \"Source of the job posting (e.g., LinkedIn, Glassdoor, Indeed)\"\n },\n \"posting_date\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date when the job was posted\"\n },\n \"summary_insight\": {\n \"type\": \"string\",\n \"description\": \"Optional Gemini-generated summary or insight (e.g., 'This role offers 15% higher pay than average for the region.')\"\n }\n }\n}\n"
},
"typeVersion": 1.1
},
{
"id": "f58be851-947b-4ac7-9afe-b7cefb7a753a",
"name": "职位描述提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
240,
-180
],
"parameters": {
"text": "=Extract markdown to textual data. {{ $json.result.content[0].text }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "job_description",
"description": "Detailed Job Description in Textual Format"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "9102e1b1-34c8-439d-90c6-6c9d5f8c94b0",
"name": "合并响应",
"type": "n8n-nodes-base.merge",
"position": [
720,
-360
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "434f22dc-99d1-465f-8c41-c08060a94137",
"name": "创建二进制数据",
"type": "n8n-nodes-base.function",
"position": [
1460,
-460
],
"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": "8a9bf6a0-e32d-43de-bb5d-2da34633838f",
"name": "职位信息 Webhook 通知",
"type": "n8n-nodes-base.httpRequest",
"position": [
1460,
-260
],
"parameters": {
"url": "={{ $('Set input fields').item.json.webhook_notification_url }}",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "response",
"value": "={{ $json.output.search_response }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "bb2ead5d-4188-4b94-af5b-875faf06312d",
"name": "将薪资信息写入磁盘",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1700,
-460
],
"parameters": {
"options": {},
"fileName": "=d:\\JobDesc-SalaryInfo-{{Date.now()}}.json",
"operation": "write"
},
"typeVersion": 1
},
{
"id": "eeb6d735-7de2-490d-9a3b-1ab3a93990fb",
"name": "更新 Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1460,
-40
],
"parameters": {
"columns": {
"value": {
"output": "={{ $json.output.toJsonString() }}"
},
"schema": [
{
"id": "output",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "output",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"output"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/10gAihQMT8-h8Mpehe9j-xxN4oTTpg8qwToI-I-Eauew/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "10gAihQMT8-h8Mpehe9j-xxN4oTTpg8qwToI-I-Eauew",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/10gAihQMT8-h8Mpehe9j-xxN4oTTpg8qwToI-I-Eauew/edit?usp=drivesdk",
"cachedResultName": "Salary Info"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Zjoxh2BUZ6VXGQhA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "aa10d68c-8a90-45e5-867d-cac07f9bd749",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-720
],
"parameters": {
"color": 3,
"width": 440,
"height": 120,
"content": "## 免责声明"
},
"typeVersion": 1
},
{
"id": "1e8d629b-7a62-40e5-b4ed-357daf33b93e",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
-820
],
"parameters": {
"color": 5,
"width": 440,
"height": 220,
"content": "## LLM 使用情况"
},
"typeVersion": 1
},
{
"id": "f5b35754-1cd2-41f2-8827-043000f634d0",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-1220
],
"parameters": {
"color": 7,
"width": 440,
"height": 360,
"content": "## 徽标"
},
"typeVersion": 1
},
{
"id": "6471bf0f-4c6d-446c-ab68-75d0d8783f0f",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-820
],
"parameters": {
"width": 440,
"height": 220,
"content": "## 说明"
},
"typeVersion": 1
},
{
"id": "af070520-b6fc-4a76-bef3-32ec82d7132f",
"name": "用于薪资信息提取的 OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
300,
-340
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "vPKynKbDzJ5ZU4cU",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "10fa3ded-6401-45d7-97ad-1455d41b6794",
"name": "用于职位描述提取的 OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
340,
40
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "vPKynKbDzJ5ZU4cU",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "01ddb4ab-73ae-4eef-9f30-4f3438a42823",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
1020,
-360
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "output"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f52f7f7a-7b6a-4f34-bbf1-c5244974d00b",
"connections": {
"Aggregate": {
"main": [
[
{
"node": "Create a binary data",
"type": "main",
"index": 0
},
{
"node": "Webhook Notification for Job Info",
"type": "main",
"index": 0
},
{
"node": "Update Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Set input fields": {
"main": [
[
{
"node": "MCP Client for Job Data Extract with Markdown",
"type": "main",
"index": 0
},
{
"node": "MCP Client for Salary Data Extraction",
"type": "main",
"index": 0
}
]
]
},
"Merge the response": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Create a binary data": {
"main": [
[
{
"node": "Write the salary info to disk",
"type": "main",
"index": 0
}
]
]
},
"Job Description Extractor": {
"main": [
[
{
"node": "Merge the response",
"type": "main",
"index": 1
}
]
]
},
"Salary Information Extractor": {
"main": [
[
{
"node": "Merge the response",
"type": "main",
"index": 0
}
]
]
},
"Bright Data MCP Client List Tools": {
"main": [
[
{
"node": "Set input fields",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Bright Data MCP Client List Tools",
"type": "main",
"index": 0
}
]
]
},
"MCP Client for Salary Data Extraction": {
"main": [
[
{
"node": "Salary Information Extractor",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model for Job Desc Extract": {
"ai_languageModel": [
[
{
"node": "Job Description Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model for Salary Info Extract": {
"ai_languageModel": [
[
{
"node": "Salary Information Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"MCP Client for Job Data Extract with Markdown": {
"main": [
[
{
"node": "Job Description Extractor",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Bright Data 和 OpenAI 的房地产智能追踪器
Bright Data和OpenAI的房地产智能追踪器
Set
Merge
Function
+9
19 节点Ranjan Dailata
人工智能
使用Bright Data和OpenAI的TrustPilot SaaS产品评论追踪器
使用Bright Data和OpenAI的TrustPilot SaaS产品评论追踪器
Set
Code
Merge
+11
22 节点Ranjan Dailata
产品
使用Bright Data和OpenAI 4o mini的自动化简历职位匹配引擎
Bright Data MCP与OpenAI 4o mini的自动化简历职位匹配引擎
Set
Function
Split Out
+10
22 节点Ranjan Dailata
人力资源
使用Bright Data MCP服务器和Google Gemini进行LinkedIn网页抓取
使用Bright Data MCP服务器和Google Gemini提取和转换LinkedIn数据
Set
Code
Merge
+9
20 节点Ranjan Dailata
人工智能
通过Bright Data提取、总结和分析亚马逊产品降价情况
使用Bright Data和Google Gemini提取、总结和分析亚马逊降价信息
Set
Wait
Merge
+14
26 节点Ranjan Dailata
人工智能
基于Thordata Universal API + OpenAI GPT-4.1-mini的非结构化简历解析器
基于Thordata Universal API + OpenAI GPT-4.1-mini的非结构化简历解析器
Set
Function
Markdown
+7
15 节点Ranjan Dailata
人力资源
工作流信息
难度等级
高级
节点数量19
分类2
节点类型12
作者
Ranjan Dailata
@ranjancseA Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com
外部链接
在 n8n.io 查看 →
分享此工作流