使用Bright Data和OpenAI 4o mini的自动化简历职位匹配引擎
高级
这是一个HR, AI领域的自动化工作流,包含 22 个节点。主要使用 Set, Function, SplitOut, McpClient, HttpRequest 等节点,结合人工智能技术实现智能自动化。 Bright Data MCP与OpenAI 4o mini的自动化简历职位匹配引擎
前置要求
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (22)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "gIdIv8qN7zruqLbG",
"meta": {
"instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
"templateCredsSetupCompleted": true
},
"name": "使用 Bright Data 和 OpenAI 4o mini 的自动化简历职位匹配引擎",
"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": "a75e1f8d-9dd4-4c87-b1ab-05c502b8cae7",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
736,
115
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "92f0272d-dc5d-4424-9d96-cc2521e8a4ae",
"name": "当点击“测试工作流”时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-740,
115
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3820c9d3-be68-4a60-a810-943a9795bdbd",
"name": "列出 Bright Data 的所有工具",
"type": "n8n-nodes-mcp.mcpClient",
"position": [
-520,
115
],
"parameters": {},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"typeVersion": 1
},
{
"id": "83219c20-7341-4e42-8cae-cc2e1e8e9b8e",
"name": "设置输入字段",
"type": "n8n-nodes-base.set",
"position": [
-300,
115
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "214e61a0-3587-453f-baf5-eac013990857",
"name": "resume",
"type": "string",
"value": "I am Pechi, Senior Python Developer with 9+ years of experience."
},
{
"id": "98c64f52-1564-4889-811d-39cac3951cc3",
"name": "keywords",
"type": "string",
"value": "Python"
},
{
"id": "34202143-4b07-4301-b5e9-767430952214",
"name": "location",
"type": "string",
"value": "India"
},
{
"id": "47d01515-302b-4a91-b9db-3af0033a56e1",
"name": "job_search_base_url",
"type": "string",
"value": "https://www.linkedin.com/jobs/search/"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "40a70c2b-5dcc-44f7-8fde-9c28748181cd",
"name": "用于职位提取的 Bright Data MCP 客户端",
"type": "n8n-nodes-mcp.mcpClient",
"notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
"position": [
-80,
115
],
"parameters": {
"toolName": "scrape_as_html",
"operation": "executeTool",
"toolParameters": "={\n \"url\": \"{{ $json.job_search_base_url }}?keywords={{ $json.keywords }}&location={{ $json.location }}\"\n} "
},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "ff3193e5-cd22-40f4-8180-b76ad32055b3",
"name": "分离输出",
"type": "n8n-nodes-base.splitOut",
"position": [
516,
115
],
"parameters": {
"options": {},
"fieldToSplitOut": "output"
},
"typeVersion": 1
},
{
"id": "cd1fcbd8-acf3-4a91-8158-f664aaa839e7",
"name": "循环内用于职位提取的 Bright Data MCP 客户端",
"type": "n8n-nodes-mcp.mcpClient",
"notes": "Scrape a single webpage URL with advanced options for content extraction and get back the results in MarkDown language.",
"position": [
956,
-10
],
"parameters": {
"toolName": "scrape_as_html",
"operation": "executeTool",
"toolParameters": "={\n \"url\": \"{{ $json.output }}\"\n} "
},
"credentials": {
"mcpClientApi": {
"id": "JtatFSfA2kkwctYa",
"name": "MCP Client (STDIO) account"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "d9f78a12-9eaa-4d9b-9e5c-5150d6e40e95",
"name": "职位描述信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
1176,
-10
],
"parameters": {
"text": "=Extract the job description in a textual format\n\nHere's the content: {{ $json.result.content[0].text }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "job_description",
"description": "Job Description"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "4636d7e9-8d13-4f57-95f9-936f6d8bbf1d",
"name": "AI 职位匹配",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1552,
-10
],
"parameters": {
"text": "=Hi, you are a helpful job matcher, you analyze the given resume and job description and providing a job matching skills and score in a JSON format.\n\nHere's the Resume:\n{{ $('Set the Input fields').item.json.resume }}\n\nHere's the Job Desc:\n\n{{ $json.output.job_description }}",
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.6
},
{
"id": "51b5d9dd-b0c8-4aaf-b789-f96e94519b94",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1720,
200
],
"parameters": {
"jsonSchemaExample": "{\n \"job_match_analysis\": {\n \"resume_summary\": \"Senior Python Developer with 9+ years of experience.\",\n \"job_description_summary\": \"Seeking a developer with expertise in Sagemaker, Python, and LLM. The role involves client interaction, requirements understanding, design review, architecture validation, and team leadership.\",\n \"skill_match\": [\n {\n \"skill\": \"python\",\n \"resume\": \"Strong match - explicitly mentioned as core skill.\",\n \"job_description\": \"Strong match - listed as a primary skill.\",\n \"score\": 100\n },\n {\n \"skill\": \"sagemaker\",\n \"resume\": \"No match - not mentioned in the resume.\",\n \"job_description\": \"Strong match - listed as a primary skill.\",\n \"score\": 0\n },\n {\n \"skill\": \"llm\",\n \"resume\": \"No match - not mentioned in the resume.\",\n \"job_description\": \"Strong match - listed as a primary skill.\",\n \"score\": 0\n },\n {\n \"skill\": \"leadership\",\n \"resume\": \"Implicit match - Senior role implies leadership experience.\",\n \"job_description\": \"Explicit match - requires leading and guiding teams.\",\n \"score\": 75\n },\n {\n \"skill\": \"client_interaction\",\n \"resume\": \"No explicit mention, inferred from senior role.\",\n \"job_description\": \"Explicit match - requires interfacing with clients.\",\n \"score\": 50\n }\n ],\n \"overall_match_score\": 45,\n \"rationale\": \"The candidate's core skill (Python) is a strong match. The resume implies leadership skills, aligning with the job's team leadership requirements. However, the absence of Sagemaker and LLM experience significantly lowers the overall score. The candidate needs to demonstrate experience in these areas for a higher match.\",\n \"recommendations\": [\n \"Highlight any experience (even if limited) with Sagemaker or LLMs in the resume.\",\n \"Quantify Python experience with specific projects and technologies used.\",\n \"Emphasize any client-facing experience or responsibilities in previous roles.\",\n \"Showcase leadership experience with specific examples (e.g., mentoring junior developers, leading project teams).\"\n ]\n }\n}\n"
},
"typeVersion": 1.2
},
{
"id": "1dcb1ca7-e4e9-4775-9eb8-94c9e1f89e64",
"name": "为 AI 职位匹配创建二进制数据",
"type": "n8n-nodes-base.function",
"position": [
1928,
-60
],
"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": "da19ddc2-5e0f-4a4a-b524-1086b59c511f",
"name": "AI 职位匹配的 Webhook 通知",
"type": "n8n-nodes-base.httpRequest",
"position": [
1928,
215
],
"parameters": {
"url": "https://webhook.site/7b5380a0-0544-48dc-be43-0116cb2d52c2",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "job_match_response",
"value": "={{ $json.output.job_match_analysis.toJsonString() }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "0561839e-9ca9-4c18-9a9e-98b9a1f796fc",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-320
],
"parameters": {
"width": 440,
"height": 120,
"content": "## 免责声明"
},
"typeVersion": 1
},
{
"id": "d68fd51a-d74f-4236-89e1-6144f9e80943",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
-140
],
"parameters": {
"color": 5,
"width": 440,
"height": 220,
"content": "## LLM 使用情况"
},
"typeVersion": 1
},
{
"id": "29342cc1-10dd-490c-b274-fd5a82dbae1e",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-160
],
"parameters": {
"color": 3,
"width": 1660,
"height": 620,
"content": "## 通过职位列表进行 Bright Data MCP 职位提取"
},
"typeVersion": 1
},
{
"id": "25d7b451-0f5e-4694-a821-ea7fe93b7d6f",
"name": "便利贴5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
-700
],
"parameters": {
"color": 7,
"width": 400,
"height": 400,
"content": "## 徽标"
},
"typeVersion": 1
},
{
"id": "02e69f64-f7b4-4a0d-828c-3fcea324268e",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
-240
],
"parameters": {
"width": 400,
"height": 320,
"content": "## 注意"
},
"typeVersion": 1
},
{
"id": "cb84eebb-4215-4bb3-91f6-bf7897a8ddf6",
"name": "用于职位描述提取的 OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1264,
210
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "vPKynKbDzJ5ZU4cU",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "4d14c3a1-5402-4f27-beda-dba41c1aa912",
"name": "用于 AI 职位匹配的 OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1560,
200
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "vPKynKbDzJ5ZU4cU",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "2aec37e7-a67b-47b1-b3b2-7ea7e114bfff",
"name": "将 AI 职位匹配响应写入磁盘",
"type": "n8n-nodes-base.readWriteFile",
"position": [
2148,
-60
],
"parameters": {
"options": {},
"fileName": "=d:\\Job-Match-{{$now.toSeconds()}}.json",
"operation": "write"
},
"typeVersion": 1
},
{
"id": "af980102-85d0-4f90-842f-196605f6bcd6",
"name": "分页职位数据提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
140,
115
],
"parameters": {
"text": "=Extract all the job links from the provided content. \n\nHere's the content: {{ $json.result.content[0].text }}",
"options": {},
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"array\",\n\t\"properties\": {\n\t\t\"link\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "cb8e32c9-c1ac-4441-a42a-42e6b0d78970",
"name": "用于分页职位提取的 OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
228,
335
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "vPKynKbDzJ5ZU4cU",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "b366450e-b10e-412e-b442-a0827ca430bb",
"connections": {
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"AI Job Match": {
"main": [
[
{
"node": "Create a binary data for AI Job Match",
"type": "main",
"index": 0
},
{
"node": "Webhook Notification for AI Job Match",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Bright Data MCP Client For Jobs Extraction within a Loop",
"type": "main",
"index": 0
}
]
]
},
"Set the Input fields": {
"main": [
[
{
"node": "Bright Data MCP Client For Jobs Extraction",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Job Match",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Paginated Job Data Extractor": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Job Desc Information Extractor": {
"main": [
[
{
"node": "AI Job Match",
"type": "main",
"index": 0
}
]
]
},
"List all tools for Bright Data": {
"main": [
[
{
"node": "Set the Input fields",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "List all tools for Bright Data",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model for AI Job Match": {
"ai_languageModel": [
[
{
"node": "AI Job Match",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Create a binary data for AI Job Match": {
"main": [
[
{
"node": "Write the AI job matched response to disk",
"type": "main",
"index": 0
}
]
]
},
"Webhook Notification for AI Job Match": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model for Job Desc Extract": {
"ai_languageModel": [
[
{
"node": "Job Desc Information Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Write the AI job matched response to disk": {
"main": [
[]
]
},
"Bright Data MCP Client For Jobs Extraction": {
"main": [
[
{
"node": "Paginated Job Data Extractor",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model for Paginated Job Extract": {
"ai_languageModel": [
[
{
"node": "Paginated Job Data Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Bright Data MCP Client For Jobs Extraction within a Loop": {
"main": [
[
{
"node": "Job Desc Information Extractor",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Bright Data MCP 和 OpenAI 的食谱推荐引擎
基于 Bright Data MCP 和 OpenAI 4o mini 的食谱推荐引擎
Set
Code
Wait
+10
23 节点Ranjan Dailata
其他
通过Bright Data MCP和OpenAI 4o mini实时提取职位描述与薪资详情
使用Bright Data MCP和OpenAI 4o mini实时提取职位描述与薪资详情
Set
Merge
Function
+9
19 节点Ranjan Dailata
人力资源
使用 Bright Data 抓取和 Google Gemini 自动化 Etsy 数据挖掘
使用 Bright Data 抓取和 Google Gemini 实现 Etsy 数据挖掘自动化
Set
Function
Split Out
+8
19 节点Ranjan Dailata
产品
使用Bright Data和OpenAI 4o mini进行DNB公司搜索与提取
基于Bright Data和OpenAI 4o mini的DNB公司搜索与提取
Set
Function
Mcp Client
+7
18 节点Ranjan Dailata
产品
通过Bright Data提取、总结和分析亚马逊产品降价情况
使用Bright Data和Google Gemini提取、总结和分析亚马逊降价信息
Set
Wait
Merge
+14
26 节点Ranjan Dailata
人工智能
法律案例研究提取器,使用Bright Data MCP和Google Gemini的数据挖掘器
法律案例研究提取器,使用Bright Data MCP和Google Gemini的数据挖掘器
Set
Code
Wait
+10
22 节点Ranjan Dailata
人工智能
工作流信息
难度等级
高级
节点数量22
分类2
节点类型13
作者
Ranjan Dailata
@ranjancseA Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com
外部链接
在 n8n.io 查看 →
分享此工作流