简历与职位描述匹配
高级
这是一个HR, AI Summarization领域的自动化工作流,包含 22 个节点。主要使用 Wait, Gmail, Merge, Notion, Switch 等节点。 Gemini LLM、Gmail和Notion职位档案的自动化简历评分
前置要求
- •Google 账号和 Gmail API 凭证
- •Notion API Key
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •Google Gemini API Key
使用的节点 (22)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "mvUbYpf0JBicQBvw",
"meta": {
"instanceId": "960fb3b08286aa4d231664ed11cfa22544684c3c5788b81bc7101c7dcd4adecb",
"templateCredsSetupCompleted": true
},
"name": "简历与职位描述匹配",
"tags": [],
"nodes": [
{
"id": "db2d8b58-0e38-4129-a763-2ce5c6eddff9",
"name": "上传至 LlamaParse",
"type": "n8n-nodes-base.httpRequest",
"position": [
1120,
1340
],
"parameters": {
"url": "https://api.cloud.llamaindex.ai/api/parsing/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "attachment_0"
}
]
},
"genericAuthType": "httpBearerAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "1aidDYljVFwlmY1g",
"name": "Bearer Auth account"
},
"httpHeaderAuth": {
"id": "12QV36GqgwZcy2MP",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "e85dfcc0-a7be-4fc5-af9a-7d3851f868e9",
"name": "获取处理状态",
"type": "n8n-nodes-base.httpRequest",
"position": [
1420,
1345.5
],
"parameters": {
"url": "=https://api.cloud.llamaindex.ai/api/parsing/job/{{ $json.id }}",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "1aidDYljVFwlmY1g",
"name": "Bearer Auth account"
},
"httpHeaderAuth": {
"id": "12QV36GqgwZcy2MP",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "88766e05-f6a9-4408-ae96-ff6de11d9bfd",
"name": "等待以遵守服务限制",
"type": "n8n-nodes-base.wait",
"position": [
1860,
1445.5
],
"webhookId": "17a96ed6-b5ff-47bb-a8a2-39c1eb40185a",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "49019c47-61a5-4ed0-acd8-14e65899f997",
"name": "任务是否就绪?",
"type": "n8n-nodes-base.switch",
"position": [
1640,
1239
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "SUCCESS",
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "300fce8c-b19a-4d0c-86e8-f62853c70ce2",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "SUCCESS"
}
]
},
"renameOutput": true
},
{
"outputKey": "ERROR",
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e6058aa0-a3e2-4ce3-9bed-6ff41a5be052",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "ERROR"
}
]
},
"renameOutput": true
},
{
"outputKey": "CANCELED",
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ceb6338f-4261-40ac-be11-91f61c7302ba",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "CANCELED"
}
]
},
"renameOutput": true
},
{
"outputKey": "PENDING",
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0fa97d86-432a-409a-917e-5f1a002b1ab9",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "PENDING"
}
]
},
"renameOutput": true
}
]
},
"options": {
"allMatchingOutputs": true
}
},
"typeVersion": 3
},
{
"id": "6c7d7c3a-abd0-48d2-8ca6-3856269ce36e",
"name": "Google Gemini 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
2200,
1600
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-flash-preview-05-20"
},
"credentials": {
"googlePalmApi": {
"id": "2acTCAXL9coFtXyg",
"name": "Google Gemini(PaLM) Api account 3"
}
},
"typeVersion": 1
},
{
"id": "5f7fd100-5bf2-448c-863d-3b24e3158446",
"name": "Gmail 触发器",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
860,
1340
],
"parameters": {
"simple": false,
"filters": {
"q": "subject: Job application for SDR, has:attachment"
},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "wQLC9c4oM8ni2QfW",
"name": "Gmail account"
}
},
"typeVersion": 1.2
},
{
"id": "673bb220-7207-43a7-af7e-62a49e7c9916",
"name": "个人信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
2180,
1380
],
"parameters": {
"text": "={{ $('Get Parsed Resume').item.json.markdown }}",
"options": {
"systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value."
},
"attributes": {
"attributes": [
{
"name": "MObile No.",
"type": "number",
"required": true,
"description": "Extract Mobile Number / Telephone no."
},
{
"name": "City",
"description": "Extract the city in which candidate is currently residing"
},
{
"name": "Full Name",
"required": true,
"description": "Extract the full name of candidate"
},
{
"name": "Email",
"required": true,
"description": "Extract the email of the candidate only."
}
]
}
},
"typeVersion": 1.2
},
{
"id": "89486e38-a7f7-42f2-8330-a3c4a2d3eab4",
"name": "职业信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
2180,
1060
],
"parameters": {
"text": "={{ $json.markdown }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "Job History",
"required": true,
"description": "Work history summary, mentioning all companies and duration worked, focusing major impactful achievements and work done. "
},
{
"name": "Skills",
"required": true,
"description": "Extract the candidate’s technical skills. What software, frameworks, functional, business skills they are proficient in. Make a bulleted list."
},
{
"name": "Title & Employer",
"required": true,
"description": "Extract all Job Title and Employer with working years. For Example Job Title- Account Executive , Employer - SAP, Working Years - 2 Year, Job Title- Account Manager , Employer - Salesforce, Working Years - 3 Year. Combine the experience by Employer."
},
{
"name": "Work Experience",
"required": true,
"description": "Extract years of experience and group experience by job function or role type. Format Example: Total Years Exp: 7 - Account Executive: 2 years - Sales Development Representative: 2 years - Account Manager: 3 years"
},
{
"name": "Promotions Checker",
"type": "number",
"description": "For an employees, check if candidates designation has changed. Count total number of senior changes (i.e advancement in position) across the entire working experience."
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a8071415-31f1-4aba-950b-b8088f09abea",
"name": "教育信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
2180,
1220
],
"parameters": {
"text": "={{ $('Get Parsed Resume').item.json.markdown }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "Education Information",
"required": true,
"description": "Create a tabular list of colleges, schools attended along with graduation degree, certification, passing year and any notable achievement in education."
}
]
}
},
"typeVersion": 1.2
},
{
"id": "b61314b4-0ba0-4384-8ec7-1260ca19501a",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
2560,
1140
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "54be9de2-e9e6-4b7f-8724-8e66af7c2fc0",
"name": "合并1",
"type": "n8n-nodes-base.merge",
"position": [
2560,
1360
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "2a990238-9bbf-4f23-ac81-a53dbf69e803",
"name": "获取解析后的简历",
"type": "n8n-nodes-base.httpRequest",
"position": [
1860,
1210
],
"parameters": {
"url": "=https://api.cloud.llamaindex.ai/api/parsing/job/{{ $json.id }}/result/markdown",
"options": {
"redirect": {
"redirect": {}
}
},
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "1aidDYljVFwlmY1g",
"name": "Bearer Auth account"
},
"httpHeaderAuth": {
"id": "12QV36GqgwZcy2MP",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "58d87539-c87a-49d2-a5a9-7e621e735e1b",
"name": "获取职位档案",
"type": "n8n-nodes-base.notion",
"position": [
2780,
1360
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/JD-Sales-Development-Representative-21fba38fe659800dbf53e3ec004bc1e9"
},
"simple": false,
"resource": "databasePage",
"operation": "get"
},
"credentials": {
"notionApi": {
"id": "O2jGBscGwnyj3Yjr",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "0ecebc39-e817-4919-8f9b-b21ebef11883",
"name": "HR 专家 LLM",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2960,
1360
],
"parameters": {
"text": "=Job Profile: {{ $json.url }}\n\nCandidate Profile: {{ $('Merge1').item.json.output['Job History'] }},{{ $('Merge1').item.json.output.Skills }},{{ $('Merge1').item.json.output['Title & Employer'] }},{{ $('Merge1').item.json.output['Work Experience'] }},{{ $('Merge1').item.json.output['Education Information'] }},{{ $('Merge1').item.json.output['Full Name'] }},{{ $('Merge1').item.json.output.City }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "You are an HR expert and you need to understand if the candidate profile aligns with the job profile sought by the company. You must give a overall score from 1 to 10, where 1 means the candidate does not align with what is required, while 10 means they are the ideal candidate because they fully reflect the desired profile. Also, score on education qualification requirement, skills required and role and responsibility match from 1 to 10, where 1 means the lowest match. Furthermore, in the 'consideration' field, explain the reasoning behind your score in 100 words. "
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "b0a0decd-27f4-4b19-a5fc-e9da07c2efe0",
"name": "更新 Google 表格",
"type": "n8n-nodes-base.googleSheets",
"position": [
3320,
1360
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyName",
"type": "string",
"display": true,
"required": false,
"displayName": "companyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyLinkedinUrl",
"type": "string",
"display": true,
"required": false,
"displayName": "companyLinkedinUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "location",
"type": "string",
"display": true,
"required": false,
"displayName": "location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "poster name",
"type": "string",
"display": true,
"required": false,
"displayName": "poster name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "poster url",
"type": "string",
"display": true,
"required": false,
"displayName": "poster url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "sector",
"type": "string",
"display": true,
"required": false,
"displayName": "sector",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "application count",
"type": "string",
"display": true,
"required": false,
"displayName": "application count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "standardizedTitle",
"type": "string",
"display": true,
"required": false,
"displayName": "standardizedTitle",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "applyUrl",
"type": "string",
"display": true,
"required": false,
"displayName": "applyUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "descriptionText",
"type": "string",
"display": true,
"required": false,
"displayName": "descriptionText",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postedAtTimestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "postedAtTimestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "addressLocality",
"type": "string",
"display": true,
"required": false,
"displayName": "addressLocality",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyWebsite",
"type": "string",
"display": true,
"required": false,
"displayName": "companyWebsite",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sFuU0RA8_8t_lW24WW7jyxRzMol6RRURiWZNKbjgrxU/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sFuU0RA8_8t_lW24WW7jyxRzMol6RRURiWZNKbjgrxU",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sFuU0RA8_8t_lW24WW7jyxRzMol6RRURiWZNKbjgrxU/edit?usp=drivesdk",
"cachedResultName": "LinkedIn Jobs Data"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "eWs1RMjXkZkFdfyn",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "15cbd22a-485f-4cb0-8413-e1abc6d08ac2",
"name": "为消息添加标签",
"type": "n8n-nodes-base.gmail",
"position": [
3540,
1360
],
"webhookId": "ffe66cbb-aca3-4c8f-bc2e-982682773420",
"parameters": {
"labelIds": [
"Label_9"
],
"messageId": "={{ $('Gmail Trigger').item.json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"id": "wQLC9c4oM8ni2QfW",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "a0781eee-c1c9-44b2-b2f5-a446530c4592",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
1180
],
"parameters": {
"height": 340,
"content": "## 步骤 1:等待简历"
},
"typeVersion": 1
},
{
"id": "3431e185-71f9-4134-a6b4-4f8952e3fcc4",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1080,
1180
],
"parameters": {
"color": 4,
"width": 980,
"height": 480,
"content": "## 步骤 2:解析简历"
},
"typeVersion": 1
},
{
"id": "5c39a357-41eb-4c6d-8ee5-6fbde1fbc961",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2100,
960
],
"parameters": {
"color": 6,
"width": 640,
"height": 780,
"content": "## 从简历中提取数据"
},
"typeVersion": 1
},
{
"id": "e697c583-9e7d-4c33-9b89-d2543c9ad23c",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2940,
1240
],
"parameters": {
"color": 3,
"width": 300,
"height": 300,
"content": "## HR 专家评估候选人匹配度"
},
"typeVersion": 1
},
{
"id": "1454a95d-bc5f-4bb9-9c14-8e196a9daee8",
"name": "便签说明4",
"type": "n8n-nodes-base.stickyNote",
"position": [
3280,
1180
],
"parameters": {
"width": 400,
"height": 360,
"content": "## 更新 Google 表格并添加标签以避免重复"
},
"typeVersion": 1
},
{
"id": "d62a78c5-55b0-42c4-9f28-1f7a38f68977",
"name": "便签说明5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2760,
1280
],
"parameters": {
"color": 2,
"width": 160,
"height": 260,
"content": "## 获取职位档案"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "08cd1c65-c18d-4105-b7fb-84ae97caaa45",
"connections": {
"Merge": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Get Job Profile",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Upload to LlamaParse",
"type": "main",
"index": 0
}
]
]
},
"HR Expert LLM": {
"main": [
[
{
"node": "Update Gsheet",
"type": "main",
"index": 0
}
]
]
},
"Is Job Ready?": {
"main": [
[
{
"node": "Get Parsed Resume",
"type": "main",
"index": 0
}
],
[],
[],
[
{
"node": "Wait to stay within service limits",
"type": "main",
"index": 0
}
]
]
},
"Update Gsheet": {
"main": [
[
{
"node": "Add label to message",
"type": "main",
"index": 0
}
]
]
},
"Get Job Profile": {
"main": [
[
{
"node": "HR Expert LLM",
"type": "main",
"index": 0
}
]
]
},
"Get Parsed Resume": {
"main": [
[
{
"node": "Professional Information Extractor",
"type": "main",
"index": 0
},
{
"node": "Educational Information Extractor",
"type": "main",
"index": 0
},
{
"node": "Personal Information Extractor",
"type": "main",
"index": 0
}
]
]
},
"Upload to LlamaParse": {
"main": [
[
{
"node": "Get Processing Status",
"type": "main",
"index": 0
}
]
]
},
"Get Processing Status": {
"main": [
[
{
"node": "Is Job Ready?",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Personal Information Extractor",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Professional Information Extractor",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Educational Information Extractor",
"type": "ai_languageModel",
"index": 0
},
{
"node": "HR Expert LLM",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Personal Information Extractor": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Educational Information Extractor": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Professional Information Extractor": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Wait to stay within service limits": {
"main": [
[
{
"node": "Get Processing Status",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Gemini、Elevenlabs 和 Notion ATS 恢复筛选与行为面试 副本
简历筛选与行为面试,使用Gemini、Elevenlabs和Notion ATS
Set
Wait
Merge
+16
67 节点Brian Coyle
人力资源
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
第一轮 Telegram 和 LinkedIn 快速通道 AI 招聘助手
AI候选人筛选流程:LinkedIn到Telegram,集成Gemini与Apify
If
Set
Code
+15
55 节点Dean Pike
人力资源
使用AI自动化从Gmail到Airtable的简历筛选和申请人评分
使用AI自动化从Gmail到Airtable的简历筛选和申请人评分
Set
Merge
Airtable
+7
16 节点Fahmi Fahreza
人力资源
使用Gemini AI和Decodo爬虫自动匹配简历与职位
使用Gemini AI和Decodo爬虫自动匹配简历与职位
Set
Gmail
Merge
+9
20 节点Fahmi Fahreza
人力资源
人力资源筛选系统社区1
简历筛选与评估系统,使用Gemini AI、Google Sheets和Drive,面向人力资源
Merge
Form Trigger
Google Drive
+8
19 节点Tharwat Mohamed
人力资源
工作流信息
难度等级
高级
节点数量22
分类2
节点类型12
作者
Agentick AI
@arpanjain29At Agentick AI we are passionate about building automation systems that drive efficiency and unlock scale for individuals and businesses. With a deep interest how n8n can power smarter decisions and reduce manual effort. We work solving real-world problems with structured automation, creating scalable solutions, and pushing the boundaries of what’s possible through N8N. Constantly learning, testing, and iterating.
外部链接
在 n8n.io 查看 →
分享此工作流