AI 驱动的招聘:使用 Jotform 进行简历筛选和候选人路由
高级
这是一个自动化工作流,包含 20 个节点。主要使用 If, Set, Code, Gmail, Slack 等节点。 简历筛选与候选人路由,使用GPT-4o-mini、Jotform和Google Sheets
前置要求
- •Google 账号和 Gmail API 凭证
- •Slack Bot Token 或 Webhook URL
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (20)
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "AU3wTmjcDjBhtGH4",
"meta": {
"instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8"
},
"name": "AI 驱动的招聘:使用 Jotform 进行简历筛选和候选人路由",
"tags": [
{
"id": "CWardZYJBmejoyC4",
"name": "under review",
"createdAt": "2025-10-09T18:43:37.031Z",
"updatedAt": "2025-10-09T18:43:37.031Z"
}
],
"nodes": [
{
"id": "d549b930-1e35-4bcd-a7d7-8806c6990170",
"name": "提取申请数据",
"type": "n8n-nodes-base.set",
"position": [
-2752,
688
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "candidate_name",
"name": "candidate_name",
"type": "string",
"value": "={{ $json.q3_fullName?.first || '' }} {{ $json.q3_fullName?.last || '' }}"
},
{
"id": "candidate_email",
"name": "candidate_email",
"type": "string",
"value": "={{ $json.q4_email }}"
},
{
"id": "candidate_phone",
"name": "candidate_phone",
"type": "string",
"value": "={{ $json.q5_phone }}"
},
{
"id": "position_applied",
"name": "position_applied",
"type": "string",
"value": "={{ $json.q6_position }}"
},
{
"id": "years_experience",
"name": "years_experience",
"type": "string",
"value": "={{ $json.q7_experience }}"
},
{
"id": "linkedin_url",
"name": "linkedin_url",
"type": "string",
"value": "={{ $json.q8_linkedin || 'Not provided' }}"
},
{
"id": "portfolio_url",
"name": "portfolio_url",
"type": "string",
"value": "={{ $json.q9_portfolio || 'Not provided' }}"
},
{
"id": "resume_url",
"name": "resume_url",
"type": "string",
"value": "={{ $json.q10_resume?.[0] || '' }}"
},
{
"id": "cover_letter",
"name": "cover_letter",
"type": "string",
"value": "={{ $json.q11_coverLetter || 'Not provided' }}"
},
{
"id": "application_id",
"name": "application_id",
"type": "string",
"value": "=APP-{{ $json.submissionID }}-{{ Date.now() }}"
},
{
"id": "application_date",
"name": "application_date",
"type": "string",
"value": "={{ new Date().toISOString() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "01591f1c-25da-4d0a-b627-0814d817d785",
"name": "下载简历",
"type": "n8n-nodes-base.httpRequest",
"position": [
-2528,
672
],
"parameters": {
"url": "={{ $json.resume_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "3af3677e-0537-417e-9249-a51af94e4fe6",
"name": "处理简历",
"type": "n8n-nodes-base.code",
"position": [
-2224,
688
],
"parameters": {
"jsCode": "const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n try {\n // Get resume binary data\n const resumeData = item.binary?.data;\n \n if (resumeData) {\n // Convert binary to base64 for AI processing\n const base64Resume = resumeData.data;\n \n results.push({\n json: {\n ...item.json,\n resume_base64: base64Resume,\n resume_available: true\n }\n });\n } else {\n results.push({\n json: {\n ...item.json,\n resume_available: false,\n resume_text: 'Resume not available for parsing'\n }\n });\n }\n } catch (error) {\n results.push({\n json: {\n ...item.json,\n resume_available: false,\n resume_text: 'Error processing resume',\n error: error.message\n }\n });\n }\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "0a82dda9-b144-41f5-8903-579947f536c8",
"name": "AI 简历解析器",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-2032,
688
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {},
"messages": {
"values": [
{
"content": "=You are an expert technical recruiter and resume parser. Extract structured information from this job application.\n\n**Candidate Name:** {{ $('Extract Application Data').item.json.candidate_name }}\n**Position Applied:** {{ $('Extract Application Data').item.json.position_applied }}\n**Years of Experience:** {{ $('Extract Application Data').item.json.years_experience }}\n**LinkedIn:** {{ $('Extract Application Data').item.json.linkedin_url }}\n**Portfolio:** {{ $('Extract Application Data').item.json.portfolio_url }}\n\n**Cover Letter:**\n{{ $('Extract Application Data').item.json.cover_letter }}\n\n**Resume:** (Attached or provided separately)\n\nPlease extract and structure the following information in markdown format:\n\n## Professional Summary\n[Write a 2-3 sentence summary of the candidate]\n\n## Key Skills\n- List all technical skills mentioned\n- Programming languages\n- Frameworks and tools\n- Soft skills\n\n## Work Experience\n[Summarize their work history with companies, roles, and key achievements]\n\n## Education\n[Degrees, certifications, institutions]\n\n## Notable Projects\n[Any significant projects mentioned]\n\n## Red Flags or Concerns\n[Job hopping, gaps, inconsistencies, or none]\n\n## Standout Qualities\n[What makes this candidate unique or impressive]"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "8IkhtT3EbXygnvcr",
"name": "Klinsman OpenAI"
}
},
"typeVersion": 1.8
},
{
"id": "c071c207-e09d-4ca5-90b9-d4d300476dde",
"name": "AI 候选人筛选器",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1424,
720
],
"parameters": {
"text": "=You are an expert hiring manager evaluating candidates for our company. Your job is to thoroughly assess this candidate against our job requirements and provide a detailed, structured analysis.\n\n---\n\n## JOB REQUIREMENTS\n\n**Position:** Senior Full-Stack Engineer\n\n**Required Skills:**\n- 5+ years of professional software development experience\n- Strong proficiency in React, Node.js, and TypeScript\n- Experience with PostgreSQL or similar relational databases\n- RESTful API design and development\n- Git version control and collaborative development\n- Experience with cloud platforms (AWS, GCP, or Azure)\n- Strong problem-solving and debugging skills\n\n**Preferred Skills:**\n- Experience with Next.js or similar meta-frameworks\n- GraphQL API development\n- Docker and container orchestration\n- CI/CD pipeline setup and maintenance\n- Experience with testing frameworks (Jest, Cypress)\n- Open source contributions\n- Startup experience\n\n**Soft Skills:**\n- Excellent communication skills\n- Self-motivated and able to work independently\n- Collaborative team player\n- Passion for learning new technologies\n- Strong attention to detail\n\n**Red Flags to Watch For:**\n- Job hopping (multiple jobs under 1 year)\n- Unexplained employment gaps\n- Lack of progression in career\n- Generic or copied cover letters\n- Overly inflated claims without evidence\n- Poor communication in application materials\n\n---\n\n## CANDIDATE INFORMATION\n\n**Name:** {{ $('Extract Application Data').item.json.candidate_name }}\n**Email:** {{ $('Extract Application Data').item.json.candidate_email }}\n**Position Applied:** {{ $('Extract Application Data').item.json.position_applied }}\n**Years of Experience:** {{ $('Extract Application Data').item.json.years_experience }}\n**LinkedIn:** {{ $('Extract Application Data').item.json.linkedin_url }}\n**Portfolio:** {{ $('Extract Application Data').item.json.portfolio_url }}\n\n**Parsed Resume Summary:**\n{{ $json.message.content }}\n\n**Cover Letter:**\n{{ $('Extract Application Data').item.json.cover_letter }}\n\n---\n\n## YOUR TASK\n\nProvide a comprehensive evaluation with the following structure:\n\n1. **Overall Assessment** - High-level verdict on candidate quality\n\n2. **Skills Match Analysis** - Compare their skills against requirements:\n - Required skills they have\n - Required skills they're missing\n - Preferred skills they have\n - Unique skills they bring\n\n3. **Experience Evaluation** - Assess their work history quality and relevance\n\n4. **Standout Qualities** - What makes them impressive or unique\n\n5. **Concerns or Red Flags** - Any potential issues identified\n\n6. **Cultural Fit Indicators** - Based on communication style, values alignment\n\n7. **Interview Focus Areas** - What to dig deeper on in interviews\n\n8. **Salary Expectations** - Estimated range based on experience level\n\nProvide detailed reasoning for all assessments. Be honest about weaknesses but also highlight genuine strengths.",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "7e3e68f1-7ab2-42aa-811b-52bf2984c90b",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1456,
976
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8IkhtT3EbXygnvcr",
"name": "Klinsman OpenAI"
}
},
"typeVersion": 1.2
},
{
"id": "34f9050d-fac1-4501-8742-719d589e7d5c",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-1200,
992
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"required\": [\n \"overall_score\",\n \"recommendation\",\n \"skills_match_score\",\n \"experience_score\",\n \"cultural_fit_score\",\n \"required_skills_present\",\n \"required_skills_missing\",\n \"preferred_skills_present\",\n \"standout_qualities\",\n \"concerns_or_red_flags\",\n \"interview_focus_areas\",\n \"estimated_salary_range\",\n \"detailed_assessment_markdown\"\n ],\n \"properties\": {\n \"overall_score\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 100,\n \"description\": \"Overall candidate score out of 100\"\n },\n \"recommendation\": {\n \"type\": \"string\",\n \"enum\": [\"strong_yes\", \"yes\", \"maybe\", \"no\", \"strong_no\"],\n \"description\": \"Hiring recommendation\"\n },\n \"skills_match_score\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"experience_score\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"cultural_fit_score\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"required_skills_present\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"required_skills_missing\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"preferred_skills_present\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"standout_qualities\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"concerns_or_red_flags\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"interview_focus_areas\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"estimated_salary_range\": {\n \"type\": \"string\",\n \"description\": \"Estimated salary range like $120k-$150k\"\n },\n \"detailed_assessment_markdown\": {\n \"type\": \"string\",\n \"description\": \"Full assessment in markdown format\"\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "8f0f2d89-2164-4f31-b6cb-b8e71ebbda57",
"name": "强烈推荐?",
"type": "n8n-nodes-base.if",
"position": [
-784,
704
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true
},
"combinator": "or",
"conditions": [
{
"id": "strong-yes-condition",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.recommendation }}",
"rightValue": "strong_yes"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "867d5a96-aaaf-4bce-a9e7-a1a8e3737713",
"name": "可能或推荐?",
"type": "n8n-nodes-base.if",
"position": [
-784,
944
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true
},
"combinator": "or",
"conditions": [
{
"id": "yes-maybe-condition",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.recommendation }}",
"rightValue": "yes"
},
{
"id": "maybe-condition",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.recommendation }}",
"rightValue": "maybe"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4b90f9bd-a0b3-42a2-8aa9-ef308563c1cb",
"name": "发送面试邀请",
"type": "n8n-nodes-base.gmail",
"position": [
-192,
544
],
"webhookId": "967e0270-dce4-4a1a-a5b2-880e04abc484",
"parameters": {
"sendTo": "={{ $('Extract Application Data').item.json.candidate_email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:30px 20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#f8f9fa;padding:30px 20px;border:1px solid #e9ecef;border-top:none}\n.cta-button{display:inline-block;background:#667eea;color:#fff;padding:14px 28px;text-decoration:none;border-radius:6px;font-weight:600;margin:20px 0}\n.footer{margin-top:20px;padding-top:20px;border-top:1px solid #dee2e6;font-size:14px;color:#6c757d}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h1 style=\"margin:0;font-size:24px\">Great News, {{ $('Extract Application Data').item.json.candidate_name.split(' ')[0] }}! 🎉</h1>\n</div>\n<div class=\"content\">\n<p>Thank you for applying for the <strong>{{ $('Extract Application Data').item.json.position_applied }}</strong> position at [Your Company].</p>\n\n<p>We've reviewed your application and we're impressed! Your experience and skills align really well with what we're looking for, and we'd love to learn more about you.</p>\n\n<p><strong>Next Steps:</strong></p>\n<ul>\n<li>We'll be reaching out within 1-2 business days to schedule a technical screening call (30-45 minutes)</li>\n<li>This will be a casual conversation about your experience and technical background</li>\n<li>You'll also get to learn more about our team, tech stack, and culture</li>\n</ul>\n\n<p>In the meantime, feel free to check out our <a href=\"https://yourcompany.com/engineering\">engineering blog</a> or explore our <a href=\"https://github.com/yourcompany\">open source projects</a>.</p>\n\n<p>Looking forward to speaking with you soon!</p>\n\n<p>Best regards,<br>\n<strong>Hiring Team</strong><br>\n[Your Company]</p>\n</div>\n<div class=\"footer\">\n<p>Application ID: {{ $('Extract Application Data').item.json.application_id }}</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=Next Steps - {{ $('Extract Application Data').item.json.position_applied }} at [Your Company]"
},
"typeVersion": 2.1
},
{
"id": "3f187791-5c7a-4292-a623-f7e005db0da2",
"name": "请求经理审核",
"type": "n8n-nodes-base.gmail",
"position": [
-512,
800
],
"webhookId": "hiring-approval-webhook",
"parameters": {
"sendTo": "hiring-manager@yourcompany.com",
"message": "=<!DOCTYPE html>\n<html>\n<head><style>body{font-family:Arial,sans-serif;line-height:1.6;color:#333}.container{max-width:700px;margin:0 auto;padding:20px}.header{background:#f8f9fa;padding:20px;border-left:4px solid #ffc107;margin-bottom:20px}.score-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:20px 0}.score-box{background:#f8f9fa;padding:15px;text-align:center;border-radius:5px}.score-box strong{display:block;font-size:24px;color:#667eea}.list-section{margin:15px 0}.list-section h3{color:#667eea;margin-bottom:10px}.badge{display:inline-block;padding:4px 8px;border-radius:3px;font-size:12px;font-weight:600}.badge-yes{background:#d4edda;color:#155724}.badge-maybe{background:#fff3cd;color:#856404}.cta{background:#667eea;color:#fff;padding:15px 30px;text-decoration:none;border-radius:5px;display:inline-block;margin:20px 0}</style></head>\n<body>\n<div class=\"container\">\n<div class=\"header\">\n<h2 style=\"margin:0\">📋 Candidate Review Required</h2>\n<p style=\"margin:5px 0 0 0\"><span class=\"badge badge-maybe\">NEEDS REVIEW</span></p>\n</div>\n\n<p><strong>Candidate:</strong> {{ $('Extract Application Data').item.json.candidate_name }}<br>\n<strong>Position:</strong> {{ $('Extract Application Data').item.json.position_applied }}<br>\n<strong>Email:</strong> {{ $('Extract Application Data').item.json.candidate_email }}<br>\n<strong>Application ID:</strong> {{ $('Extract Application Data').item.json.application_id }}</p>\n\n<div class=\"score-grid\">\n<div class=\"score-box\"><strong>{{ $('AI Candidate Screener').item.json.output.overall_score }}</strong>Overall Score</div>\n<div class=\"score-box\"><strong>{{ $('AI Candidate Screener').item.json.output.skills_match_score }}%</strong>Skills Match</div>\n<div class=\"score-box\"><strong>{{ $('AI Candidate Screener').item.json.output.experience_score }}%</strong>Experience</div>\n</div>\n\n<div class=\"list-section\">\n<h3>✅ Strengths</h3>\n<ul>\n{{ $('AI Candidate Screener').item.json.output.standout_qualities.map(q => '<li>' + q + '</li>').join('') }}\n</ul>\n</div>\n\n<div class=\"list-section\">\n<h3>⚠️ Concerns</h3>\n<ul>\n{{ $('AI Candidate Screener').item.json.output.concerns_or_red_flags.length > 0 ? $('AI Candidate Screener').item.json.output.concerns_or_red_flags.map(c => '<li>' + c + '</li>').join('') : '<li>No major concerns identified</li>' }}\n</ul>\n</div>\n\n<div class=\"list-section\">\n<h3>💰 Estimated Salary</h3>\n<p>{{ $('AI Candidate Screener').item.json.output.estimated_salary_range }}</p>\n</div>\n\n<p><strong>AI Recommendation:</strong> {{ $('AI Candidate Screener').item.json.output.recommendation.toUpperCase().replace('_', ' ') }}</p>\n\n<p><strong>Your decision is needed:</strong> Should we move forward with this candidate?</p>\n\n<p><em>Click below to approve or reject this application.</em></p>\n\n</div>\n</body>\n</html>",
"options": {},
"subject": "=Review Candidate - {{ $('Extract Application Data').item.json.candidate_name }}",
"operation": "sendAndWait"
},
"credentials": {
"gmailOAuth2": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "5dbe1e3b-b603-4e38-ac36-19e800f042c7",
"name": "发送拒绝邮件",
"type": "n8n-nodes-base.gmail",
"position": [
-480,
1104
],
"webhookId": "53053a7b-a0a4-4641-b1b2-2ca76c20c462",
"parameters": {
"sendTo": "={{ $('Extract Application Data').item.json.candidate_email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:#667eea;color:#fff;padding:30px 20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px 20px;border:1px solid #e9ecef;border-top:none}\n.footer{margin-top:20px;padding-top:20px;border-top:1px solid #dee2e6;font-size:14px;color:#6c757d}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h1 style=\"margin:0;font-size:24px\">Thank You for Applying</h1>\n</div>\n<div class=\"content\">\n<p>Hi {{ $('Extract Application Data').item.json.candidate_name.split(' ')[0] }},</p>\n\n<p>Thank you for taking the time to apply for the <strong>{{ $('Extract Application Data').item.json.position_applied }}</strong> position at [Your Company]. We genuinely appreciate your interest in joining our team.</p>\n\n<p>After carefully reviewing your application and experience, we've decided to move forward with candidates whose backgrounds more closely align with our current needs for this specific role.</p>\n\n<p>This was a competitive process, and we were impressed by many aspects of your background. We encourage you to:</p>\n<ul>\n<li>Check our <a href=\"https://yourcompany.com/careers\">careers page</a> for other opportunities that might be a better fit</li>\n<li>Connect with us on <a href=\"https://linkedin.com/company/yourcompany\">LinkedIn</a> to stay updated on future openings</li>\n<li>Reapply in the future as your career develops</li>\n</ul>\n\n<p>We wish you all the best in your job search and future career endeavors.</p>\n\n<p>Best regards,<br>\n<strong>Talent Acquisition Team</strong><br>\n[Your Company]</p>\n</div>\n<div class=\"footer\">\n<p>Application ID: {{ $('Extract Application Data').item.json.application_id }}</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=Update on Your {{ $('Extract Application Data').item.json.position_applied }} Application"
},
"credentials": {
"gmailOAuth2": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "7e75f755-7d07-4a34-a91e-5a33ae27696b",
"name": "记录到招聘数据库",
"type": "n8n-nodes-base.googleSheets",
"position": [
336,
784
],
"parameters": {
"columns": {
"value": {
"status": "={{ $json.status || 'Processed' }}",
"linkedin": "={{ $('Extract Application Data').item.json.linkedin_url }}",
"portfolio": "={{ $('Extract Application Data').item.json.portfolio_url }}",
"cultural_fit": "={{ $('AI Candidate Screener').item.json.output.cultural_fit_score }}",
"skills_match": "={{ $('AI Candidate Screener').item.json.output.skills_match_score }}",
"overall_score": "={{ $('AI Candidate Screener').item.json.output.overall_score }}",
"application_id": "={{ $('Extract Application Data').item.json.application_id }}",
"candidate_name": "={{ $('Extract Application Data').item.json.candidate_name }}",
"recommendation": "={{ $('AI Candidate Screener').item.json.output.recommendation }}",
"candidate_email": "={{ $('Extract Application Data').item.json.candidate_email }}",
"candidate_phone": "={{ $('Extract Application Data').item.json.candidate_phone }}",
"salary_estimate": "={{ $('AI Candidate Screener').item.json.output.estimated_salary_range }}",
"application_date": "={{ $('Extract Application Data').item.json.application_date }}",
"experience_score": "={{ $('AI Candidate Screener').item.json.output.experience_score }}",
"position_applied": "={{ $('Extract Application Data').item.json.position_applied }}",
"years_experience": "={{ $('Extract Application Data').item.json.years_experience }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.5
},
{
"id": "baadadfd-335e-44fb-84d0-0ef98335c76e",
"name": "便签 - 信息收集",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3008,
336
],
"parameters": {
"color": 5,
"width": 640,
"height": 576,
"content": "## 📝 申请接收"
},
"typeVersion": 1
},
{
"id": "54f7865d-5b0f-4dac-8f32-fcf7aeac882e",
"name": "便签 - 解析",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2272,
192
],
"parameters": {
"color": 4,
"width": 562,
"height": 724,
"content": "## 🤖 AI 简历分析"
},
"typeVersion": 1
},
{
"id": "4ba29b67-1c31-4793-bed8-ac0f39033c30",
"name": "便签 - 筛选",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1552,
80
],
"parameters": {
"color": 6,
"width": 500,
"height": 1116,
"content": "## 🎯 智能候选人筛选"
},
"typeVersion": 1
},
{
"id": "efc3e4dc-a5eb-4b6a-9b24-e863af4838c5",
"name": "便签 - 路由",
"type": "n8n-nodes-base.stickyNote",
"position": [
-896,
-96
],
"parameters": {
"color": 3,
"width": 892,
"height": 1388,
"content": "## 🚦 智能路由与操作"
},
"typeVersion": 1
},
{
"id": "bde3090f-306e-47c0-96c1-5d2737952475",
"name": "便签 - 分析",
"type": "n8n-nodes-base.stickyNote",
"position": [
144,
288
],
"parameters": {
"color": 7,
"width": 496,
"height": 672,
"content": "## 📊 招聘分析中心"
},
"typeVersion": 1
},
{
"id": "b0ec920b-97b7-425e-a0fa-f30f91a70f31",
"name": "JotForm 触发器",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-2960,
656
],
"webhookId": "403cee80-bf01-4587-b783-6476e4230454",
"parameters": {
"form": "252815294070456"
},
"credentials": {
"jotFormApi": {
"id": "cOSh16Q5l4e0EB1A",
"name": "Jotform jitesh@mediajade.com"
}
},
"typeVersion": 1
},
{
"id": "48ef417e-9b90-4fc9-9693-09a0ed4c0e1d",
"name": "发送消息",
"type": "n8n-nodes-base.slack",
"position": [
-480,
560
],
"webhookId": "1deb1c6e-1b9c-420c-9262-62441e4261cb",
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": ""
},
"otherOptions": {}
},
"typeVersion": 2.3
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2637963a-dfda-43a0-967c-21b249f4d5c9",
"connections": {
"Strong Yes?": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Maybe or Yes?": {
"main": [
[
{
"node": "Request Manager Review",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Rejection Email",
"type": "main",
"index": 0
}
]
]
},
"Process Resume": {
"main": [
[
{
"node": "AI Resume Parser",
"type": "main",
"index": 0
}
]
]
},
"Send a message": {
"main": [
[
{
"node": "Send Interview Invitation",
"type": "main",
"index": 0
}
]
]
},
"Download Resume": {
"main": [
[
{
"node": "Process Resume",
"type": "main",
"index": 0
}
]
]
},
"JotForm Trigger": {
"main": [
[
{
"node": "Extract Application Data",
"type": "main",
"index": 0
}
]
]
},
"AI Resume Parser": {
"main": [
[
{
"node": "AI Candidate Screener",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Candidate Screener",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Send Rejection Email": {
"main": [
[
{
"node": "Log to Hiring Database",
"type": "main",
"index": 0
}
]
]
},
"AI Candidate Screener": {
"main": [
[
{
"node": "Strong Yes?",
"type": "main",
"index": 0
},
{
"node": "Maybe or Yes?",
"type": "main",
"index": 0
}
]
]
},
"Request Manager Review": {
"main": [
[
{
"node": "Log to Hiring Database",
"type": "main",
"index": 0
}
]
]
},
"Extract Application Data": {
"main": [
[
{
"node": "Download Resume",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Candidate Screener",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Send Interview Invitation": {
"main": [
[
{
"node": "Log to Hiring Database",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
有发票附件?
使用 GPT-4o 欺诈检测和 QuickBooks 自动提取并审批发票
If
Code
Gmail
+9
22 节点Jitesh Dugar
AI招生审核:论文分析、综合评分与候选人排名
GPT-4o驱动的招生审核:论文分析、综合评分与候选人排名
If
Set
Gmail
+8
22 节点Jitesh Dugar
AI医疗分诊:智能分诊、医生简报和紧急情况检测
基于GPT-4和JotForm的医疗分诊与预约自动化
If
Set
Code
+8
22 节点Jitesh Dugar
使用 GPT-4 分析和 JotForm 离职面谈自动化员工离职流程
使用 GPT-4 分析和 JotForm 离职面谈实现员工离职流程自动化
If
Set
Code
+6
20 节点Jitesh Dugar
使用 JotForm、GPT-4o-mini 和 Google Workspace 自动化员工入职
使用 JotForm、GPT-4o-mini 和 Google Workspace 实现员工入职自动化
If
Set
Code
+6
14 节点Jitesh Dugar
使用 OpenAI 进行潜在客户分析与个性化邮件生成
使用 Jotform、GPT 和 Gmail 自动进行潜在客户资格认定与个性化触达
If
Code
Gmail
+7
16 节点Jitesh Dugar
工作流信息
难度等级
高级
节点数量20
分类-
节点类型13
作者
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
外部链接
在 n8n.io 查看 →
分享此工作流