💥 AI驱动的人力资源工作流:从Gmail到Sheets的简历分析与评估 - 视频
高级
这是一个HR、AI Summarization领域的自动化工作流,包含 18 个节点。主要使用 Switch、GmailTool、GoogleDrive、GmailTrigger、GoogleSheets 等节点。 使用GPT-4o-mini自动化简历筛选:从Gmail到Google Sheets的人力资源评估系统
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Drive API 凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (18 个)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "z7quMO0WgEu3Kkyv",
"meta": {
"instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
"templateCredsSetupCompleted": true
},
"name": "💥 AI驱动的人力资源工作流:从Gmail到Sheets的简历分析与评估 - 视频",
"tags": [],
"nodes": [
{
"id": "2ebf8f4d-1000-4c40-8d5f-e31fa0ada941",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
2540,
-240
],
"parameters": {
"width": 920,
"height": 400,
"content": "# 🟡 步骤1 — 检测并处理来自邮件的新简历"
},
"typeVersion": 1
},
{
"id": "175a65ff-d1c4-404e-bab1-7805123a0ce9",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2540,
200
],
"parameters": {
"color": 3,
"width": 920,
"height": 500,
"content": "# 🔴 步骤2 — 提取并存储候选人数据"
},
"typeVersion": 1
},
{
"id": "1061bc84-9cb8-4391-a057-04e7d1aac10e",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
200
],
"parameters": {
"color": 6,
"width": 920,
"height": 500,
"content": "# 🟣 步骤3 — 评估并筛选候选人"
},
"typeVersion": 1
},
{
"id": "a6395a4c-3c06-4175-8927-3f80bde21bcc",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
-240
],
"parameters": {
"width": 920,
"height": 400,
"content": "## AI驱动的人力资源工作流:从Gmail到Sheets的简历分析与评估"
},
"typeVersion": 1
},
{
"id": "3575cc8d-18b8-436d-a026-b022814fbd3d",
"name": "Gmail:监控新简历",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
2640,
-140
],
"parameters": {
"simple": false,
"filters": {
"q": "has:attachment",
"labelIds": [
"UNREAD"
],
"readStatus": "unread"
},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyHour",
"minute": 1
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "rKxQHWZ2F5XLJmwF",
"name": "Gmail account"
}
},
"typeVersion": 1.2
},
{
"id": "e1d682f8-9723-4dd6-ad45-e8959a273d32",
"name": "分类邮件类型",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
2860,
-140
],
"parameters": {
"options": {
"systemPromptTemplate": "Classify the user's text into one of the following categories: {categories}.\nFollow the formatting instructions provided below exactly.\nDo not include any explanation — output only the final JSON result."
},
"inputText": "={{ $json.text }}",
"categories": {
"categories": [
{
"category": "Doesn't apply",
"description": "The candidate is not a job application"
},
{
"category": "Apply",
"description": "This is a job application submitted by a candidate applying for a position at our organization, included as an attached file."
}
]
}
},
"typeVersion": 1
},
{
"id": "5f241a19-c30a-4cc4-a2c0-7e9d97711c78",
"name": "OpenAI模型 – 邮件分类器",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2860,
20
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "6h3DfVhNPw9I25nO",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "848188ac-52fa-43b7-953f-b2cd45c727f1",
"name": "跳过(如果不是求职申请)",
"type": "n8n-nodes-base.noOp",
"position": [
3280,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "fe0e8d5c-e3f6-4098-891b-0fb3594b71c8",
"name": "提取简历文本(PDF)",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2900,
520
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "49107c53-eb76-4082-9d52-88d3fc391153",
"name": "保存简历到Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
2900,
300
],
"parameters": {
"name": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1G0KjVS_NAnqbqzYlV93KpX3498G5J8b1",
"cachedResultUrl": "https://drive.google.com/drive/folders/1G0KjVS_NAnqbqzYlV93KpX3498G5J8b1",
"cachedResultName": "CV - HR"
},
"inputDataFieldName": "=attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "gzeHMd64HAz6HBIe",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "b5d472bf-4acf-4e86-aeb7-5d1604ded5ff",
"name": "获取职位详情(Google Sheets)",
"type": "n8n-nodes-base.googleSheets",
"position": [
3280,
520
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"name": "AI Agent:评分简历",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3620,
300
],
"parameters": {
"text": "=Here is the resume:\n{{ $('Extract Resume Text (PDF)').item.json.text }}\n\nAnalyze the current information from the received candidate and score between 0 to 10 the said candidate, 0 meaning not a good fit for the position, 10 being outstanding for the job.\n\nJob Tile : {{ $json['Title offer'] }}\nJob Description: {{ $json.Description }}\n\nReply by Email : \nSend a reply to the candidate to confirm that we have received their application and that we will get back to them as soon as possible.",
"options": {
"systemMessage": "=You are an invaluable assistant. You were given a resume. You have to help me analyze the resume and give it a score based on the details available in the resume. Also, extract the name, email, phone, location and LinkedIn profile from the resume.\n\nReply by Email : \nSend a reply to the candidate to confirm that we have received their application and that we will get back to them as soon as possible."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.8
},
{
"id": "85edf215-bfa3-4b93-8f4f-7cede1132797",
"name": "OpenAI模型 – 简历评分",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3580,
540
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "o4-mini",
"cachedResultName": "o4-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "6h3DfVhNPw9I25nO",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "90da624b-9653-444f-a36b-9bfe6df4922a",
"name": "发送确认电子邮件",
"type": "n8n-nodes-base.gmailTool",
"position": [
3760,
540
],
"webhookId": "b56651a5-a82e-4550-ae4e-ffea0304cd52",
"parameters": {
"sendTo": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "Application Received"
},
"credentials": {
"gmailOAuth2": {
"id": "rKxQHWZ2F5XLJmwF",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "119808cc-82fb-43d2-931f-351f8e2e3267",
"name": "解析简历评估结果",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3900,
540
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"email\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"linkedin\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"score\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"Phone\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"Location\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t\t\n\t}\n}"
},
"typeVersion": 1.2
},
{
"id": "e9d2dfb0-0202-422c-a1f1-8d25a19bacc3",
"name": "保存评分到Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
4120,
300
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.output.name }}",
"Email": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"Phone": "='{{ $json.output.Phone }}",
"Score": "={{ $json.output.score }}",
"LinkedIn": "={{ $json.output.linkedin }}",
"Location": "={{ $json.output.Location }}",
"Resume text": "={{ $('Extract Resume Text (PDF)').item.json.text }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume text",
"type": "string",
"display": true,
"required": false,
"displayName": "Resume text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link CV",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Link CV",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "c931b4a0-a1a4-4c59-85b8-9099064a74d0",
"name": "切换",
"type": "n8n-nodes-base.switch",
"position": [
2640,
400
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e9debd3b-3fa3-425a-bd61-6bf23a3a652b",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "attachment_0",
"rightValue": ""
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f0eabfca-ff5e-4e5d-9b4e-f3f80c7fa5b4",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "attachment_0",
"rightValue": ""
}
]
}
}
]
},
"options": {
"allMatchingOutputs": true
}
},
"typeVersion": 3.2
},
{
"id": "260dae6d-9234-4bab-bb79-d15b4923d801",
"name": "保存简历到Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
3280,
300
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"Link CV": "={{ $('Save Resume to Google Drive').item.json.webViewLink }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume text",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Resume text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link CV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Link CV",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "07121905-4a3c-4301-b88e-e1db76c119e3",
"connections": {
"Switch": {
"main": [
[
{
"node": "Save Resume to Google Drive",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract Resume Text (PDF)",
"type": "main",
"index": 0
}
]
]
},
"Classify Email Type": {
"main": [
[
{
"node": "Skip (If not a job application)",
"type": "main",
"index": 0
}
],
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"AI Agent: Score Resume": {
"main": [
[
{
"node": "Save Score to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Gmail: Watch for new CV": {
"main": [
[
{
"node": "Classify Email Type",
"type": "main",
"index": 0
}
]
]
},
"Send Confirmation Email": {
"ai_tool": [
[
{
"node": "AI Agent: Score Resume",
"type": "ai_tool",
"index": 0
}
]
]
},
"Save CV to Google Sheets": {
"main": [
[]
]
},
"Extract Resume Text (PDF)": {
"main": [
[
{
"node": "Retrieve Job Offer Details (Google Sheets)",
"type": "main",
"index": 0
}
]
]
},
"Save Resume to Google Drive": {
"main": [
[
{
"node": "Save CV to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Parse Resume Evaluation Result": {
"ai_outputParser": [
[
{
"node": "AI Agent: Score Resume",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"OpenAI Model – Resume Scoring": {
"ai_languageModel": [
[
{
"node": "AI Agent: Score Resume",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Model – Email Classifier": {
"ai_languageModel": [
[
{
"node": "Classify Email Type",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Retrieve Job Offer Details (Google Sheets)": {
"main": [
[
{
"node": "AI Agent: Score Resume",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
这是一个高级难度的工作流,适用于HR、AI Summarization等场景。适合高级用户,包含 16+ 个节点的复杂工作流
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
宠物店 4
🐶 宠物店预约 AI 代理
If
Set
Code
+41
187 节点Bruno Dias
AI
智能简历提取器:Google Drive到Sheet + 招聘人员Slack更新
AI驱动简历提取器:GPT-4处理Google Drive到Sheet,Slack通知招聘人员
Code
Slack
Filter
+8
19 节点Trung Tran
HR
TalentFlow AI - 批量简历筛选与职位描述匹配
使用GPT-4为HR团队进行批量简历筛选与职位描述匹配
If
Code
Merge
+12
30 节点Trung Tran
HR
HireMind – AI驱动的简历智能处理流程
HR AI简历筛选与评估:GPT-4和Google Workspace
If
Code
Slack
+10
26 节点Trung Tran
HR
待售人力资源
使用OpenAI GPT-4o、Google Sheets和Gmail筛选简历并发送跟进邮件
Gmail
Form Trigger
Google Sheets
+6
15 节点Abdulaziz
HR
哥伦比亚发票处理
使用Gmail、GPT-4o和Google Workspace提取并整理哥伦比亚发票
Xml
Code
Merge
+15
23 节点Juan Sanchez
Finance
工作流信息
难度等级
高级
节点数量18
分类2
节点类型12
作者
Dr. Firas
@drfirasAutomation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀
外部链接
在 n8n.io 上查看 →
分享此工作流