智能面试助手:基于简历、职位描述和轮次的定制问题
高级
这是一个HR, Multimodal AI领域的自动化工作流,包含 26 个节点。主要使用 Set, Code, Merge, EmailSend, FormTrigger 等节点。 基于简历、职位描述和轮次使用GPT-4生成定制面试问题
前置要求
- •Google Drive API 凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (26)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "zbggnEhKUnzCjVEY",
"meta": {
"instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
"templateId": "5453",
"templateCredsSetupCompleted": true
},
"name": "智能面试助手:基于简历、职位描述和轮次的定制问题",
"tags": [
{
"id": "OcQfoQT2ejtrpKfF",
"name": "HR Workflow",
"createdAt": "2025-07-30T05:57:04.113Z",
"updatedAt": "2025-07-30T05:57:04.113Z"
}
],
"nodes": [
{
"id": "951cb8f8-c122-42fb-929a-7008fd545e5c",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
1856
],
"parameters": {
"width": 748,
"height": 176,
"content": "## 1. 招聘经理选择候选人资料、申请职位和面试轮次"
},
"typeVersion": 1
},
{
"id": "02b35afe-c7ee-425f-95d7-5e22489d4445",
"name": "申请表",
"type": "n8n-nodes-base.formTrigger",
"position": [
-560,
2112
],
"webhookId": "f29214cd-588d-4116-8d56-7d0f91cfda9d",
"parameters": {
"options": {
"customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #0000FF; /* Changed to blue */\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}\n",
"appendAttribution": false
},
"formTitle": "Smart Interview Prep Assistant",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "CV",
"multipleFiles": false,
"requiredField": true,
"acceptFileTypes": ".pdf"
},
{
"fieldType": "dropdown",
"fieldLabel": "Job Role",
"fieldOptions": {
"values": [
{
"option": "Talent acquisition Specialist (Intermediate)"
},
{
"option": "Senior Tester/QC (Web Apps, Mobile, API, Database)"
},
{
"option": "Lead Full-stack Developer (.NET, Angular/React.js)"
},
{
"option": "Manual Tester/QC (Senior level)"
}
]
},
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Interview Round",
"fieldOptions": {
"values": [
{
"option": "Initial Screening"
},
{
"option": "Technical/Functional Interview"
},
{
"option": "Managerial/Team Fit Interview"
},
{
"option": "Final Interview"
}
]
}
}
]
},
"formDescription": "Effortlessly generate tailored interview questions based on the candidate’s resume, job description, and interview round. Perfect for recruiters, hiring managers, and interviewers who want to save time while staying sharp and relevant."
},
"typeVersion": 2.2
},
{
"id": "fede7d7a-9e6b-4f41-8faa-11bc18385a1e",
"name": "提取资料",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-144,
1776
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "CV"
},
"typeVersion": 1
},
{
"id": "89b76cb0-9ac8-40c5-a305-cee3914be9dc",
"name": "JSON 解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
304,
1968
],
"parameters": {
"jsonSchemaExample": "{\n \"full_name\": \"\",\n \"job_title\": \"\",\n \"summary\": \"\",\n \"contact\": {\n \"email\": \"\",\n \"phone\": \"\",\n \"address\": \"\",\n \"linkedin\": \"\",\n \"website\": \"\"\n },\n \"education\": [\n {\n \"degree\": \"\",\n \"field_of_study\": \"\",\n \"institution\": \"\",\n \"location\": \"\",\n \"start_year\": \"\",\n \"end_year\": \"\"\n }\n ],\n \"certifications\": [\n {\n \"name\": \"\",\n \"issuer\": \"\",\n \"date_obtained\": \"\",\n \"expiration_date\": \"\"\n }\n ],\n \"work_experience\": [\n {\n \"company\": \"\",\n \"position\": \"\",\n \"location\": \"\",\n \"start_date\": \"\",\n \"end_date\": \"\",\n \"responsibilities\": [\n \"\"\n ],\n \"achievements\": [\n \"\"\n ]\n }\n ],\n \"skills\": {\n \"technical_skills\": [\n \"\"\n ],\n \"soft_skills\": [\n \"\"\n ],\n \"languages\": [\n {\n \"language\": \"\",\n \"proficiency\": \"\"\n }\n ],\n \"tools_and_technologies\": [\n \"\"\n ]\n },\n \"projects\": [\n {\n \"name\": \"\",\n \"description\": \"\",\n \"technologies_used\": [\n \"\"\n ],\n \"role\": \"\",\n \"duration\": \"\"\n }\n ],\n \"awards\": [\n {\n \"title\": \"\",\n \"issuer\": \"\",\n \"date\": \"\",\n \"description\": \"\"\n }\n ],\n \"volunteer_experience\": [\n {\n \"organization\": \"\",\n \"role\": \"\",\n \"description\": \"\",\n \"start_date\": \"\",\n \"end_date\": \"\"\n }\n ],\n \"additional_information\": {\n \"availability\": \"\",\n \"preferred_location\": \"\",\n \"salary_expectation\": \"\",\n \"work_authorization\": \"\",\n \"other_notes\": \"\"\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "bdab7446-ab5a-4bde-9f05-5d9eea6c392d",
"name": "gpt4-1 模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
112,
1968
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "PPSwAKeLQYgAPobT",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "e81e164b-2f0a-44be-ae52-66b1de95a0f2",
"name": "获取职位 JD",
"type": "n8n-nodes-base.googleSheets",
"position": [
-304,
2256
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $('Application form').item.json['Job Role'] }}",
"lookupColumn": "Job Role"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA/edit?usp=drivesdk",
"cachedResultName": "Positions"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "L670Nly6gZGo71br",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "8ef88c1b-16d1-4984-87a2-3fe10d98646c",
"name": "下载文件",
"type": "n8n-nodes-base.googleDrive",
"position": [
-80,
2256
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "url",
"value": "={{ $json['Job Description'] }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "fC471es5gk5Mm900",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "b9d5fe39-af88-419e-bdf8-4646a324f892",
"name": "提取职位描述",
"type": "n8n-nodes-base.extractFromFile",
"position": [
240,
2256
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "d9c3fd9b-ca77-4c39-b4fe-1e5f51d0aebf",
"name": "资料分析器代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
112,
1776
],
"parameters": {
"text": "=Please extract all relevant information from this candiadte:\nCV Content:\n===\n{{ $json[\"text\"] }}\n===",
"options": {
"systemMessage": ""
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "d2e82f1b-7d55-4588-8f5b-28f6fef8ed48",
"name": "gpt-4-1 模型 2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1376,
2272
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "PPSwAKeLQYgAPobT",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ceaca356-c885-44ed-8976-291f29550f7c",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2512,
928
],
"parameters": {
"width": 1312,
"height": 2896,
"content": "# 🤖 智能面试助手:基于简历、职位描述和轮次的定制问题"
},
"typeVersion": 1
},
{
"id": "0c6aa881-8155-444f-9cb2-0a5ba0ea968e",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
2048
],
"parameters": {
"width": 556,
"height": 708,
"content": ""
},
"typeVersion": 1
},
{
"id": "0833bd6f-9ea5-450e-9818-628082b8b762",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
2464
],
"parameters": {
"width": 736,
"height": 128,
"content": ""
},
"typeVersion": 1
},
{
"id": "7ae138fa-8739-4eee-80c0-91e357e40054",
"name": "面试轮次元数据",
"type": "n8n-nodes-base.set",
"position": [
992,
2112
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "caac3f3e-06a2-4095-91e3-41910f80b1ea",
"name": "Initial Screening",
"type": "string",
"value": "Purpose: Quickly assess whether the candidate meets the basic qualifications and is a potential fit for the role and company culture. Conducted by: Recruiter or Talent Acquisition (TA) Specialist. Focus Areas: \t•\tResume walkthrough and career summary \t•\tMotivation for applying \t•\tSalary expectations and availability \t•\tBasic qualification and communication skills \t•\tClarifying job responsibilities and candidate’s interest Goal for Agent: Generate light, conversational questions that verify resume claims, screen for red flags, and confirm role alignment."
},
{
"id": "9baaec07-ddaa-4d10-a80f-33a0dd200fcc",
"name": "Technical/Functional Interview",
"type": "string",
"value": "Purpose: Evaluate the candidate’s core technical or functional skills required for the job. Conducted by: Team members, senior engineers, or functional managers. Focus Areas: \t•\tRole-specific skills (e.g., coding, data analysis, sales strategy) \t•\tProblem-solving and past project experience \t•\tUnderstanding of tools, frameworks, or domain knowledge \t•\tScenario-based or behavioral questions related to their role Goal for Agent: Generate targeted, skill-assessing questions with a mix of practical scenarios and behavioral prompts."
},
{
"id": "672e2623-81b8-4e2a-959d-3e1ec9886cf8",
"name": "Managerial/Team Fit Interview",
"type": "string",
"value": "Purpose: Assess collaboration skills, ownership, team dynamics, and alignment with team culture. Conducted by: Hiring Manager or Team Lead. Focus Areas: \t•\tCommunication and stakeholder management \t•\tDecision-making and conflict resolution \t•\tPast team experiences and leadership style \t•\tCareer growth and adaptability Goal for Agent: Generate behavioral and situational questions that test emotional intelligence, leadership, and problem ownership."
},
{
"id": "516ca9b8-de86-41a8-b398-f14e746ed414",
"name": "Final Interview (Executive/Leadership Round)",
"type": "string",
"value": "Purpose: Validate overall fit with company values, long-term potential, and alignment with business goals. May include negotiation. Conducted by: Director, VP, or C-level executives. Focus Areas: \t•\tVision alignment and strategic thinking \t•\tLong-term career goals and role alignment \t•\tBusiness acumen and cross-functional collaboration \t•\tSalary/compensation discussion (if applicable) Goal for Agent: Generate questions around strategic vision, values alignment, and leadership potential."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9634847d-288d-4c09-824d-b0a391ace376",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
544,
2112
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "5867643e-e996-43bd-b025-ba4ad6308289",
"name": "转换输出",
"type": "n8n-nodes-base.code",
"position": [
768,
2112
],
"parameters": {
"jsCode": "// Raw merged input (first N items are candidate profiles, last item is JD)\nconst items = $input.all();\n\n// Extract job description (assuming it's the last element)\nconst jdItem = items[items.length - 1];\nconst job_description = jdItem.json.text;\n// Prepare output array\nconst results = [];\n\n// Loop through all items except the last one (JD)\nfor (let i = 0; i < items.length - 1; i++) {\n const candidate = items[i].json.output;\n results.push({\n json: {\n candidate_profile: candidate,\n job_description: job_description,\n applied_position: $('Application form').first().json['Job Role'],\n interview_round: $('Application form').first().json['Interview Round']\n }\n });\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "61e4c089-30a5-4b93-af09-75f2c68d6fb6",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1568,
2288
],
"parameters": {
"jsonSchemaExample": "{\n \"candidate_summary\": {\n \"name\": \"string\",\n \"position_applied\": \"string\",\n \"years_of_experience\": \"number\",\n \"key_skills\": [\"string\"],\n \"highlights\": \"string\"\n },\n \"job_description_summary\": {\n \"role_title\": \"string\",\n \"team\": \"string\",\n \"core_requirements\": [\"string\"]\n },\n \"interview_round\": {\n \"round_type\": \"string\",\n \"round_purpose\": \"string\",\n \"conducted_by\": \"string\",\n \"focus_areas\": [\"string\"]\n },\n \"interview_questions\": [\n {\n \"question\": \"string\",\n \"expected_answer\": \"string\"\n }\n ]\n}"
},
"typeVersion": 1.3
},
{
"id": "530851ff-f0c3-47a1-abdd-01d13f1875e4",
"name": "构建面试准备报告",
"type": "n8n-nodes-base.code",
"position": [
1984,
2112
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const data = $json.output;\n\nconst candidate = data.candidate_summary;\nconst jd = data.job_description_summary;\nconst round = data.interview_round;\nconst questions = data.interview_questions;\n\nlet html = `\n <html>\n <head>\n <style>\n body { font-family: Arial, sans-serif; line-height: 1.5; padding: 20px; }\n h1, h2 { color: #2c3e50; }\n h3 { color: #34495e; }\n ul { padding-left: 20px; }\n .section { margin-bottom: 25px; }\n .question { margin-bottom: 15px; }\n .q-label { font-weight: bold; color: #2c3e50; }\n .a-label { font-style: italic; color: #7f8c8d; }\n </style>\n </head>\n <body>\n <h1>Interview Prep Report</h1>\n\n <div class=\"section\">\n <h2>Candidate Summary</h2>\n <p><strong>Name:</strong> ${candidate.name}</p>\n <p><strong>Position Applied:</strong> ${candidate.position_applied}</p>\n <p><strong>Experience:</strong> ${candidate.years_of_experience}</p>\n <p><strong>Highlights:</strong> ${candidate.highlights}</p>\n <p><strong>Key Skills:</strong></p>\n <ul>${candidate.key_skills.map(skill => `<li>${skill}</li>`).join('')}</ul>\n </div>\n\n <div class=\"section\">\n <h2>Job Description Summary</h2>\n <p><strong>Role:</strong> ${jd.role_title}</p>\n <p><strong>Team:</strong> ${jd.team}</p>\n <p><strong>Requirements:</strong></p>\n <ul>${jd.core_requirements.map(req => `<li>${req}</li>`).join('')}</ul>\n </div>\n\n <div class=\"section\">\n <h2>Interview Round</h2>\n <p><strong>Round Type:</strong> ${round.round_type}</p>\n <p><strong>Purpose:</strong> ${round.round_purpose}</p>\n <p><strong>Conducted By:</strong> ${round.conducted_by}</p>\n <p><strong>Focus Areas:</strong></p>\n <ul>${round.focus_areas.map(item => `<li>${item}</li>`).join('')}</ul>\n </div>\n\n <div class=\"section\">\n <h2>Interview Questions</h2>\n ${questions.map((q, index) => `\n <div class=\"question\">\n <p class=\"q-label\">Q${index + 1}: ${q.question}</p>\n <p class=\"a-label\">Expected Answer: ${q.expected_answer}</p>\n </div>\n `).join('')}\n </div>\n </body>\n </html>\n`;\n\nreturn { json: { html }}"
},
"typeVersion": 2
},
{
"id": "2e188bfa-db80-4493-9ec3-6853ead3e3c1",
"name": "发送面试准备报告给招聘团队",
"type": "n8n-nodes-base.emailSend",
"position": [
2208,
2112
],
"webhookId": "bb7abbfe-9fd9-495c-8a6c-89701389b4d6",
"parameters": {
"html": "={{ $json.html }}",
"options": {},
"subject": "=Interview Preparation Guide for [{{ $('Interview Expert Agent').item.json.output.candidate_summary.name }}] – [{{ $('Interview Expert Agent').item.json.output.candidate_summary.position_applied }}]",
"toEmail": "hiring-team@example.com",
"fromEmail": "no-reply@example.com"
},
"credentials": {
"smtp": {
"id": "Cqc9p9Z5PHj2MHzn",
"name": "SMTP account"
}
},
"typeVersion": 2.1
},
{
"id": "3e49e6fa-0dab-4f73-bd7f-8f6473d0559c",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
2128
],
"parameters": {
"width": 780,
"height": 304,
"content": "## 2.2. 下载选定的职位描述"
},
"typeVersion": 1
},
{
"id": "aabd3e08-605e-4fe2-b687-78eccefc1103",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
1648
],
"parameters": {
"width": 780,
"height": 432,
"content": "## 2.1. 候选人资料分析器"
},
"typeVersion": 1
},
{
"id": "17f5f597-3bf3-4314-82a8-67fc654ac144",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
1952
],
"parameters": {
"width": 652,
"height": 336,
"content": "## 3. 为面试专家代理准备材料"
},
"typeVersion": 1
},
{
"id": "84d88fdb-f333-45c9-94ae-eb5545b2087c",
"name": "面试专家代理",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1376,
2112
],
"parameters": {
"text": "=Generate interview prep document based on the following:\n- Applied Position: {{ $('Transform output').item.json.applied_position }}\n- Job Description: {{ $('Transform output').item.json.job_description }}\n- Candidate Profile: {{ $('Transform output').item.json.candidate_profile.toJsonString() }}\n- Interview Round: {{ $('Transform output').item.json.interview_round }}\n- Interview Round Description: {{ $json[$('Transform output').item.json.interview_round] }}",
"messages": {
"messageValues": [
{
"message": "You are an AI Interview Prep Assistant supporting Talent Acquisition (TA) teams. Your job is to generate relevant, role-specific interview questions based on three inputs: the candidate’s profile, the job description (JD), and the selected interview round. You must first analyze the candidate profile to understand key skills, experiences, and career highlights. Then extract the core requirements and responsibilities from the JD. Based on the specified interview round, adjust the tone, focus, and style of your questions appropriately. Your output must include: \t•\tA summary of the candidate and applied position, including name, role, years of experience, and notable skills or achievements. \t•\tA summary of the job description, highlighting the core role requirements and expectations. \t•\tThe interview round type, along with its purpose and focus areas. \t•\tA list of 5 to 8 high-quality interview questions, each with a brief explanation of the expected answer or evaluation criteria. Questions should reflect the intent of the selected round: \t•\tFor screening rounds, keep them light and conversational to verify fit and clarify resume details. \t•\tFor technical or functional rounds, generate questions that evaluate skill depth and practical knowledge. \t•\tFor managerial or leadership rounds, focus on behavior, decision-making, and collaboration. \t•\tFor executive rounds, assess strategic thinking, long-term alignment, and business perspective."
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "64389790-9976-4905-a09b-416dbc445588",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1216,
1952
],
"parameters": {
"width": 652,
"height": 496,
"content": "## 4. 面试专家代理生成面试准备报告"
},
"typeVersion": 1
},
{
"id": "f0f1a9f5-92a6-4ac4-8c4c-fc65cbb4d32a",
"name": "便签8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1904,
2048
],
"parameters": {
"width": 572,
"height": 224,
"content": "## 5. 解析输出并发送电子邮件给招聘团队"
},
"typeVersion": 1
},
{
"id": "ebf2fcc0-19bd-4d7e-aa49-875952463f52",
"name": "便签9",
"type": "n8n-nodes-base.stickyNote",
"position": [
2512,
1776
],
"parameters": {
"width": 736,
"height": 768,
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "eb364707-bf93-475b-abd4-5105515732a1",
"connections": {
"Merge": {
"main": [
[
{
"node": "Transform output",
"type": "main",
"index": 0
}
]
]
},
"json parser": {
"ai_outputParser": [
[
{
"node": "Profile Analyzer Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"gpt4-1 model": {
"ai_languageModel": [
[
{
"node": "Profile Analyzer Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Download file": {
"main": [
[
{
"node": "Extract Job Description",
"type": "main",
"index": 0
}
]
]
},
"Extract profile": {
"main": [
[
{
"node": "Profile Analyzer Agent",
"type": "main",
"index": 0
}
]
]
},
"Get position JD": {
"main": [
[
{
"node": "Download file",
"type": "main",
"index": 0
}
]
]
},
"gpt-4-1 model 2": {
"ai_languageModel": [
[
{
"node": "Interview Expert Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Application form": {
"main": [
[
{
"node": "Get position JD",
"type": "main",
"index": 0
},
{
"node": "Extract profile",
"type": "main",
"index": 0
}
]
]
},
"Transform output": {
"main": [
[
{
"node": "Interview round metadata",
"type": "main",
"index": 0
}
]
]
},
"Interview Expert Agent": {
"main": [
[
{
"node": "Build interview prep report",
"type": "main",
"index": 0
}
]
]
},
"Profile Analyzer Agent": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Extract Job Description": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Interview round metadata": {
"main": [
[
{
"node": "Interview Expert Agent",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Interview Expert Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Build interview prep report": {
"main": [
[
{
"node": "Send interview prep report to hiring team",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
TalentFlow AI - 批量简历筛选与职位描述匹配
使用GPT-4为HR团队进行批量简历筛选与职位描述匹配
If
Code
Merge
+12
30 节点Trung Tran
人力资源
HireMind – AI驱动的简历智能处理流程
HR AI简历筛选与评估:GPT-4和Google Workspace
If
Code
Slack
+10
26 节点Trung Tran
人力资源
用于更智能BRD(业务需求文档)编写的多Agent RAG系统
使用多Agent GPT和Google Workspace生成业务需求文档
Set
Code
Merge
+14
37 节点Trung Tran
AI RAG 检索增强
构建用于Slack候选人评估的AI驱动聊天机器人
AI简历分析与候选人评估:Slack和Google表格集成
If
Code
Slack
+12
29 节点Trung Tran
AI 聊天机器人
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+27
125 节点Daniel Ng
内容创作
自动化差旅费用报销工作流
使用GPT-4.1-mini从差旅收据中提取数据,结合Google Sheets和邮件通知
Code
Email Send
Form Trigger
+7
20 节点Trung Tran
发票处理
工作流信息
难度等级
高级
节点数量26
分类2
节点类型13
作者
Trung Tran
@trungtranHelps small and medium businesses grow with intelligent automation and practical AI tools, no heavy tech team needed.
外部链接
在 n8n.io 查看 →
分享此工作流