Drive到ClickUp简历自动化
高级
这是一个HR, AI Summarization领域的自动化工作流,包含 16 个节点。主要使用 Code, ClickUp, GoogleDrive, GoogleSheets, Agent 等节点。 使用GPT-4o和Google表格从Google Drive处理简历到ClickUp
前置要求
- •Google Drive API 凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (16)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "uoTYOXDUavQ2tQew",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Drive to clickup resume automation",
"tags": [],
"nodes": [
{
"id": "64d82c9f-f5aa-478d-9c0c-f190a30832d0",
"name": "Save Candidate to Database",
"type": "n8n-nodes-base.googleSheets",
"position": [
1920,
1408
],
"parameters": {
"options": {},
"fieldsUi": {
"values": [
{
"column": "Email",
"fieldValue": "={{ $json.email }}"
},
{
"column": "Phone ",
"fieldValue": "={{ $json.phone }}"
},
{
"column": "Years of experience",
"fieldValue": "={{ $json.experience_years }}"
},
{
"column": "skills",
"fieldValue": "={{ $json.skills }}"
},
{
"column": "curent role",
"fieldValue": "={{ $json.current_role }}"
},
{
"column": "education",
"fieldValue": "={{ $json.education }}"
}
]
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit?usp=drivesdk",
"cachedResultName": "Resume store"
},
"valueToMatchOn": "={{ $json.name }}",
"columnToMatchOn": "Name"
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "s4dP1fNuVZ2gWvs3",
"name": "Google Sheets account"
}
},
"typeVersion": 3
},
{
"id": "08397c1b-0ea9-4327-a520-7d52128f8ec7",
"name": "AI Resume Analyzer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1296,
1408
],
"parameters": {
"text": "=Extract the following fields from the resume text below and return them as JSON only:\n\n{\n \"name\": \"\",\n \"email\": \"\",\n \"phone\": \"\",\n \"experience_years\": \"\",\n \"skills\": [],\n \"current_role\": \"\",\n \"education\": \"\"\n}\n\nResume text:\n{{$json[\"text\"]}}\n\n",
"options": {},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "586d9851-1966-4f38-bf36-0f19398ceda3",
"name": "AI Language Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
1392,
1632
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "9f08c682-2991-40a4-9951-b39e34d1bb63",
"name": "Download Resume File",
"type": "n8n-nodes-base.googleDrive",
"position": [
848,
1408
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "gQtjXVGUgZru29qC",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "cee0376c-3385-4125-8e1f-57caeeecf78a",
"name": "Convert PDF to Text",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1072,
1408
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "40a097eb-dd40-4f56-8962-1c024849fb00",
"name": "Clean AI Response",
"type": "n8n-nodes-base.code",
"position": [
1696,
1408
],
"parameters": {
"jsCode": "return items.map(item => {\n let text = item.json.output;\n\n // Remove code fences like ```json ... ```\n text = text.replace(/```json|```/g, \"\").trim();\n\n let parsed = {};\n try {\n parsed = JSON.parse(text);\n } catch (err) {\n parsed = { error: \"Failed to parse JSON\", raw: text };\n }\n\n return { json: parsed };\n});"
},
"typeVersion": 2
},
{
"id": "90f8d384-9923-45bb-bef4-a00b04245e2b",
"name": "Watch for New Resumes",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
624,
1408
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
"cachedResultUrl": "https://drive.google.com/drive/folders/1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
"cachedResultName": "Resume_store"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "gQtjXVGUgZru29qC",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "55ecd2df-08d0-4130-beab-1c90676a2b68",
"name": "Create Hiring Task",
"type": "n8n-nodes-base.clickUp",
"position": [
2144,
1408
],
"parameters": {
"list": "901610812551",
"name": "={{ $json.name }} Hiring process",
"team": "9016683627",
"space": "90162844741",
"folder": "90164394824",
"additionalFields": {
"assignees": [
95074494
]
}
},
"credentials": {
"clickUpApi": {
"id": "FwrdqPtvlxnMFvdx",
"name": "ClickUp account-Anuj"
}
},
"typeVersion": 1
},
{
"id": "745375f6-d00c-45cf-bbd6-add9d82a942d",
"name": "Sticky Note - Trigger",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
1248
],
"parameters": {
"width": 400,
"height": 332,
"content": "## 🚀 WORKFLOW START\n**Watch for New Resumes**\n\n🔍 **What it does:**\n- Monitors Google Drive folder every minute\n- Automatically detects new resume uploads\n- Triggers the entire workflow when new files arrive\n\n⚙️ **Settings:**\n- Checks folder: Resume_store\n- Frequency: Every 1 minute\n- Event: New file created\n\n💡 **User Tip:** Just upload a resume to the watched folder and the automation starts!"
},
"typeVersion": 1
},
{
"id": "1b150921-0403-48f5-b8a9-2f17a6223fe7",
"name": "Sticky Note - Download",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
1072
],
"parameters": {
"width": 432,
"height": 316,
"content": "## 📥 STEP 1\n**Download Resume File**\n\n🔍 **What it does:**\n- Downloads the new resume file from Google Drive\n- Retrieves the actual PDF document\n- Prepares file for text extraction\n\n⚙️ **Process:**\n- Gets file ID from trigger\n- Downloads complete file content\n- Passes to next step\n\n💡 **User Tip:** Supports PDF format resumes"
},
"typeVersion": 1
},
{
"id": "2a282f96-895f-415b-9bc3-4d53df11d445",
"name": "Sticky Note - Extract",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
1568
],
"parameters": {
"width": 400,
"height": 348,
"content": "## 📄 STEP 2\n**Convert PDF to Text**\n\n🔍 **What it does:**\n- Extracts all text content from PDF resume\n- Converts document to readable text format\n- Preserves formatting and structure\n\n⚙️ **Process:**\n- Processes PDF files only\n- Extracts complete text content\n- Outputs clean text for AI analysis\n\n💡 **User Tip:** Works best with text-based PDFs (not scanned images)"
},
"typeVersion": 1
},
{
"id": "ab566a24-0be9-4527-aef4-6e79c6a3fbdf",
"name": "Sticky Note - AI Analysis",
"type": "n8n-nodes-base.stickyNote",
"position": [
1136,
1008
],
"parameters": {
"width": 400,
"height": 380,
"content": "## 🤖 STEP 3\n**AI Resume Analyzer**\n\n🔍 **What it does:**\n- Uses advanced AI to read resume content\n- Extracts structured candidate information\n- Returns standardized JSON format\n\n📋 **Extracts:**\n- Name, Email, Phone\n- Years of experience\n- Current role & Skills\n- Education details\n\n💡 **User Tip:** AI is smart enough to find info even in different resume formats!"
},
"typeVersion": 1
},
{
"id": "081608b5-fbfd-4994-adb7-5180e2b61702",
"name": "Sticky Note - Clean Data",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
1024
],
"parameters": {
"width": 400,
"height": 348,
"content": "## 🔧 STEP 4\n**Clean AI Response**\n\n🔍 **What it does:**\n- Cleans up AI output for database storage\n- Removes formatting characters\n- Validates JSON structure\n\n⚙️ **Process:**\n- Removes code blocks (```json```)\n- Parses JSON safely\n- Handles errors gracefully\n\n💡 **User Tip:** Ensures data is properly formatted before saving"
},
"typeVersion": 1
},
{
"id": "7a7cc437-c52f-47f0-8469-d279f3055caf",
"name": "Sticky Note - Database",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
1616
],
"parameters": {
"width": 400,
"height": 348,
"content": "## 💾 STEP 5\n**Save Candidate to Database**\n\n🔍 **What it does:**\n- Saves candidate info to Google Sheets\n- Updates existing records or creates new ones\n- Maintains central candidate database\n\n📊 **Saves:**\n- All extracted candidate details\n- Organized in spreadsheet rows\n- Searchable and sortable data\n\n💡 **User Tip:** Creates permanent record for HR team reference"
},
"typeVersion": 1
},
{
"id": "0e74e62b-70dd-4ed6-9cb0-cac50ea7e278",
"name": "Sticky Note - Task Creation",
"type": "n8n-nodes-base.stickyNote",
"position": [
2112,
1024
],
"parameters": {
"width": 400,
"height": 348,
"content": "## ✅ STEP 6 - FINAL\n**Create Hiring Task**\n\n🔍 **What it does:**\n- Creates new task in ClickUp project management\n- Assigns task to hiring team member\n- Starts formal hiring process\n\n📋 **Task Details:**\n- Title: \"[Candidate Name] Hiring Process\"\n- Assigned to recruiting team\n- Ready for interview scheduling\n\n💡 **User Tip:** Seamlessly connects recruitment pipeline with project management!"
},
"typeVersion": 1
},
{
"id": "bfb8ee2c-53ec-42cb-a1c6-8c20baf9e13b",
"name": "Sticky Note - Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
1856
],
"parameters": {
"width": 600,
"height": 528,
"content": "## 🔥 COMPLETE AUTOMATION WORKFLOW\n**Drive to ClickUp Resume Processing**\n\n🎯 **Purpose:** \nAutomatically process new resume uploads and create hiring tasks\n\n📈 **Benefits:**\n✅ Zero manual data entry\n✅ Instant candidate database updates \n✅ Automatic task assignment\n✅ Faster hiring process\n✅ No missed candidates\n\n🔄 **Process Flow:**\n1. Upload resume → 2. Download → 3. Extract text → 4. AI analysis → 5. Save data → 6. Create task\n\n⏱️ **Speed:** Complete processing in under 2 minutes!\n\n🛠️ **Setup Required:**\n- Google Drive folder access\n- Google Sheets database\n- ClickUp project access\n- AI service credentials"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "c59e15c8-f1d1-4730-981b-f034c69da321",
"connections": {
"AI Language Model": {
"ai_languageModel": [
[
{
"node": "AI Resume Analyzer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Clean AI Response": {
"main": [
[
{
"node": "Save Candidate to Database",
"type": "main",
"index": 0
}
]
]
},
"AI Resume Analyzer": {
"main": [
[
{
"node": "Clean AI Response",
"type": "main",
"index": 0
}
]
]
},
"Convert PDF to Text": {
"main": [
[
{
"node": "AI Resume Analyzer",
"type": "main",
"index": 0
}
]
]
},
"Download Resume File": {
"main": [
[
{
"node": "Convert PDF to Text",
"type": "main",
"index": 0
}
]
]
},
"Watch for New Resumes": {
"main": [
[
{
"node": "Download Resume File",
"type": "main",
"index": 0
}
]
]
},
"Save Candidate to Database": {
"main": [
[
{
"node": "Create Hiring Task",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
恢复收件箱到表格自动化
从Gmail解析简历至Google Sheets - 使用Azure OpenAI GPT-4o
Code
Gmail
Google Drive
+6
18 节点Rahul Joshi
人力资源
JD匹配分数
使用 Google Drive、Google Sheets 和 GPT-4o 评估简历与职位描述的匹配度
Code
Google Drive
Google Sheets
+5
37 节点Rahul Joshi
人力资源
面试官简报包
使用Google表格和GPT-4o从简历生成AI驱动的面试简报
Code
Gmail
Google Drive
+6
16 节点Rahul Joshi
人力资源
技能矩阵提取器
使用Google Drive和GPT-4o将技能矩阵提取至Google表格
Code
Google Drive
Google Sheets
+5
17 节点Rahul Joshi
杂项
结构化面试反馈收集
使用GPT-4o-mini、Gmail和ClickUp任务跟踪自动化候选人拒绝
If
Code
Gmail
+6
18 节点Rahul Joshi
人力资源
个性化拒绝/下一步邮件
使用Google Sheets、GPT-4o-mini、Gmail和ClickUp自动化候选人拒绝
If
Set
Code
+7
38 节点Rahul Joshi
人力资源
工作流信息
难度等级
高级
节点数量16
分类2
节点类型9
作者
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
外部链接
在 n8n.io 查看 →
分享此工作流