AI语音面试官
中级
这是一个Personal Productivity, AI Chatbot领域的自动化工作流,包含 15 个节点。主要使用 If, Set, Merge, Webhook, RespondToWebhook 等节点。 使用基于语音的Google Gemini AI面试官练习求职面试
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "8N6ckeC2TziirGLt",
"meta": {
"instanceId": "e37465823f6ec6359565a2d8959871ac9f31984acb057f2daf8d42b2a65baea0",
"templateCredsSetupCompleted": true
},
"name": "AI语音面试官",
"tags": [],
"nodes": [
{
"id": "3a21db35-9973-472a-93f9-b8a2ba3175f2",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-368,
-16
],
"webhookId": "df27691d-564e-4207-8d9f-26a239f7a410",
"parameters": {
"path": "df27691d-564e-4207-8d9f-26a239f7a410",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "71fe1f4b-bb7e-4cd1-be2a-4e3988a172e7",
"name": "如果",
"type": "n8n-nodes-base.if",
"position": [
-48,
-64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fb60c269-8e2f-4ba7-a278-4a0f7e8eb598",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.body.conversationHistory }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8ed1f967-bc1a-4c47-bca9-bf3750d68dea",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
688,
-48
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "79c3c250-b974-4094-af8c-a8c472071c8c",
"name": "基础LLM链",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
912,
-176
],
"parameters": {
"text": "={{ $json.prompt }}",
"batching": {},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "874576cc-a94c-491f-a398-55821de46c6d",
"name": "Google Gemini 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
928,
112
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "a3qmkEPuRAKXTstM",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "29bf80c7-84d2-40de-a56f-ddf82b659273",
"name": "响应 Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1616,
-176
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{ ({\n \"question\": $json.newQuestion,\n \"conversationHistory\": $json.updatedHistory\n}) }}"
},
"typeVersion": 1.4
},
{
"id": "b533e3ac-7b58-4520-9e47-60ee8d3c01c3",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-432,
-144
],
"parameters": {
"width": 304,
"height": 256,
"content": "从这里开始"
},
"typeVersion": 1
},
{
"id": "c23be228-ded4-4b64-a69c-c73ddb5b1b26",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
208,
-400
],
"parameters": {
"color": 3,
"content": "1. 第一个问题"
},
"typeVersion": 1
},
{
"id": "139ab288-03bb-40cf-bbe7-a95f57776d80",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
224
],
"parameters": {
"color": 5,
"width": 352,
"content": "2. 后续问题"
},
"typeVersion": 1
},
{
"id": "e7752791-23d2-43df-8393-6f8268e6a901",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
928,
-336
],
"parameters": {
"content": "3. AI大脑 (Google Gemini)"
},
"typeVersion": 1
},
{
"id": "a8de54ce-397d-4ed4-aea1-f70baf730d05",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
192
],
"parameters": {
"color": 4,
"content": "4. 发送响应"
},
"typeVersion": 1
},
{
"id": "6bc9a581-195d-46dc-88b4-b2721d088cc2",
"name": "创建初始提示",
"type": "n8n-nodes-base.set",
"position": [
272,
-240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "876f5f51-40d9-4f78-a820-f89e319389ec",
"name": "prompt",
"type": "string",
"value": "=You are an expert technical recruiter named 'Alex'. You are conducting an interview for the position of '{{ $json.body.jobTitle }}'. Your task is to conduct a professional interview based *only* on the provided resume and job description.\n\nHere is the job description:\n\"\"\"\n{{ $json.body.jobDescription }}\n\"\"\"\n\nHere is the candidate's resume text:\n\"\"\"\n{{ $json.body.resumeText }}\n\"\"\"\n\nAsk the single, most impactful opening question. Ask only one question. Do not add any conversational filler.\n"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f5ed22be-16b7-4bdc-b6c4-1310521110fa",
"name": "创建后续提示",
"type": "n8n-nodes-base.set",
"position": [
288,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6de8f022-862c-4630-8a0f-bbddbe9681b3",
"name": "prompt",
"type": "string",
"value": "=You are an expert technical recruiter named 'Alex', continuing an interview for '{{ $json.body.jobTitle }}'. The conversation history is below. Ask the next logical follow-up question based on the user's last answer. Do not repeat questions. Ask only one question. CONVERSATION HISTORY: {{ $json.body.conversationHistory }}AI: {{ $json.body.lastQuestion }} User: {{ $json.body.answer }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "70021fa4-0326-4ee6-a5bf-518e6ecb030d",
"name": "准备响应数据",
"type": "n8n-nodes-base.set",
"position": [
1344,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6599f767-1863-47df-b4b3-3a3d4999a287",
"name": "newQuestion",
"type": "string",
"value": "={{ $('Basic LLM Chain').item.json.text }}"
},
{
"id": "b6955598-7a22-4e67-ad57-b4c000872d74",
"name": "updatedHistory",
"type": "string",
"value": "={{ $('Webhook').item.json.body.conversationHistory || '' }}AI: {{ $json.newQuestion }}\\nUser:"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b9162dfe-4159-472f-a928-665d2146fdf1",
"name": "便签 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
-576
],
"parameters": {
"color": 5,
"width": 528,
"height": 832,
"content": "此工作流有什么功能?"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "18020fc0-129a-4b7c-8c57-175011e4a81f",
"connections": {
"If": {
"main": [
[
{
"node": "Create Initial Prompt",
"type": "main",
"index": 0
}
],
[
{
"node": "Create Follow-up Prompt",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Prepare Response Data",
"type": "main",
"index": 0
}
]
]
},
"Create Initial Prompt": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Prepare Response Data": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Create Follow-up Prompt": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 个人效率, AI 聊天机器人
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用Gemini、语音和图像生成构建多模态Telegram AI助手
使用Gemini、语音和图像生成构建多模态Telegram AI助手
If
Set
Code
+19
95 节点Iniyavan JC
个人效率
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
来自多个招聘网站的求职自动化
使用 5 个招聘平台和 AI 简历生成器自动化求职与申请
If
Set
Code
+14
34 节点Gerald Denor
个人效率
构建带记忆、Google套件和多AI研究成像的WhatsApp助手
构建带记忆、Google套件和多AI研究成像的WhatsApp助手
If
Set
Code
+27
71 节点Iniyavan JC
AI 聊天机器人
使用Redis缓存和嵌入式视频播放器创建YouTube视频RSS订阅源
使用Redis缓存和嵌入式视频播放器创建YouTube视频RSS订阅源
If
Set
Code
+11
31 节点Quinten Alexander
个人效率
AI驱动的Grok-3健康预警系统(含家属通知功能)
基于Grok-3 AI分析的健康监测系统,含家属/医生邮件警报
If
Set
Merge
+7
17 节点Cheng Siong Chin
个人效率