用 Coze 做一个简历优化助手:工作流、提示词和 API 源码全流程拆解
Coze 实战案例分享|附源码
在 AI 应用快速落地的过程中,很多团队都会遇到一个共同问题:大模型能力很强,但真正把它变成一个可用、稳定、可运营的业务工具,并没有想象中简单。你不仅需要设计提示词,还需要考虑用户输入、知识库检索、工作流编排、插件调用、数据记录、异常兜底以及后续迭代。
Coze 的出现,降低了 AI Bot 从想法到上线的门槛。它提供了 Bot 搭建、工作流、知识库、插件、变量、数据库、发布渠道等能力,非常适合用来快速验证 AI 产品原型,也可以承载一些轻量级的业务场景。
本文将通过一个完整案例,分享如何使用 Coze 搭建一个「智能简历优化助手」,并附上相关提示词、工作流设计思路以及接口调用源码,帮助你更快理解 Coze 的实战用法。
一、案例背景
很多求职者在投递简历时会遇到几个问题:
- 不知道简历是否突出重点;
- 不清楚岗位 JD 中真正看重哪些能力;
- 简历描述过于口语化,缺少结果导向;
- 不同岗位投递时,没有针对性调整简历;
- 想让 AI 帮忙优化,但普通聊天工具无法形成结构化输出。
因此,我们希望搭建一个 AI 助手,用户只需要输入:
- 目标岗位 JD;
- 当前简历内容;
- 期望优化方向,例如互联网产品经理、Java 后端开发、数据分析师等。
AI 助手能够输出:
- JD 关键词分析;
- 简历匹配度评分;
- 简历问题诊断;
- 优化后的简历版本;
- 面试官可能关注的问题;
- 后续修改建议。
这个应用非常适合作为 Coze 的实战案例,因为它同时涉及:
- 提示词设计;
- 多轮对话;
- 结构化输出;
- 工作流编排;
- 外部接口调用;
- 前端或服务端集成。
二、最终效果预览
用户输入:
目标岗位:AI 产品经理
岗位 JD:
1. 负责 AI 产品规划与需求设计;
2. 熟悉大模型、智能体、知识库等应用场景;
3. 能够与算法、研发、设计团队协作推进项目;
4. 有 SaaS 产品经验优先。
我的简历:
我做过 3 年产品经理,主要负责后台系统和数据报表。参与过一个智能客服项目,负责需求沟通和页面设计。会写 PRD,也会用 Axure。
AI 输出示例:
## 一、岗位关键词分析
该岗位重点关注以下能力:
1. AI 产品规划能力
2. 大模型应用理解
3. 智能体 / 知识库 / 智能客服相关经验
4. 跨团队项目推进能力
5. SaaS 产品经验
6. PRD 与原型设计能力
## 二、简历匹配度评分
综合匹配度:78 / 100
优势:
- 有 3 年产品经理经验;
- 参与过智能客服项目;
- 具备需求沟通、PRD、原型设计基础能力。
不足:
- AI 项目描述不够具体;
- 缺少业务结果数据;
- 没有突出大模型、知识库、智能体相关理解;
- SaaS 经验未体现。
## 三、优化后简历描述
原描述:
参与过一个智能客服项目,负责需求沟通和页面设计。
优化后:
参与企业智能客服系统从 0 到 1 建设,负责需求调研、PRD 编写、原型设计及跨团队推进。围绕用户咨询场景,梳理高频问题知识库结构,设计问题推荐、答案命中、人工转接等核心流程,协同算法与研发团队完成智能问答能力落地,提升客服问题处理效率。
三、Coze Bot 设计思路
在 Coze 中,我们可以把这个助手拆成几个核心模块。
1. Bot 角色设定
Bot 不是简单地“帮我优化简历”,而是要扮演一个专业角色。
推荐角色设定如下:
你是一名资深招聘顾问、职业规划师和简历优化专家,擅长根据岗位 JD 分析企业用人需求,并结合候选人的简历内容,给出专业、具体、可执行的优化建议。
你需要帮助用户完成以下任务:
1. 分析岗位 JD 中的关键能力要求;
2. 判断用户简历与岗位的匹配程度;
3. 找出简历中表达不清晰、不够量化、不够贴合岗位的问题;
4. 在不虚构经历的前提下优化简历表达;
5. 给出面试准备建议。
要求:
- 不得编造用户没有提供的经历;
- 可以基于用户已有经历进行专业化改写;
- 输出内容必须结构清晰;
- 尽量使用结果导向、动作导向的表达;
- 如果信息不足,需要主动提醒用户补充。
这个角色设定的重点是明确边界:可以润色,但不能造假。对于简历类应用来说,这一点非常重要。
四、提示词设计
提示词是 AI 应用质量的核心之一。很多人使用 Coze 时,只写一句“你是简历优化专家”,然后期待模型自动输出稳定内容,这种方式往往不够可靠。
我们可以把提示词设计成固定模板。
系统提示词
你是一名资深简历优化专家,拥有 10 年招聘和职业咨询经验,熟悉互联网、AI、SaaS、产品、研发、运营、数据分析等岗位的招聘标准。
你的任务是根据用户提供的目标岗位 JD 和简历内容,完成简历诊断与优化。
请严格遵守以下原则:
1. 不得虚构用户没有提供的工作经历、项目经历、学历、公司、数据结果;
2. 可以对用户已有经历进行结构化、专业化、结果导向的表达优化;
3. 如果用户提供的信息不足,需要指出缺失信息,并给出补充问题;
4. 输出内容要具体,避免空泛建议;
5. 优化后的简历应更贴合目标岗位关键词;
6. 使用 Markdown 格式输出;
7. 语言风格专业、简洁、有说服力。
输出结构必须包含:
- 岗位关键词分析
- 简历匹配度评分
- 当前简历主要问题
- 简历优化建议
- 优化后的简历版本
- 面试准备建议
- 需要用户补充的信息
用户输入模板
为了让输出更稳定,可以引导用户按照模板输入。
请按照以下格式提供信息:
【目标岗位】
例如:AI 产品经理
【岗位 JD】
请粘贴完整岗位描述。
【当前简历】
请粘贴你希望优化的简历内容,可以是项目经历、工作经历或个人简介。
【优化目标】
例如:更适合大厂、突出 AI 项目经验、提升专业表达、增强数据化结果等。
五、工作流设计
如果只是简单对话,其实不一定需要 Coze 工作流。但为了提升稳定性,我们可以用工作流把任务拆成多个步骤。
推荐工作流如下:
开始
↓
接收用户输入
↓
判断信息是否完整
↓
如果不完整:返回补充问题
↓
如果完整:提取 JD 关键词
↓
分析简历与 JD 匹配度
↓
生成简历问题诊断
↓
生成优化版简历
↓
生成面试准备建议
↓
整合输出
结束
节点一:信息完整性判断
输入:
- target_position
- job_description
- resume_content
- optimize_goal
判断逻辑:
如果岗位 JD 为空,提示用户补充岗位 JD;
如果简历内容为空,提示用户补充简历内容;
如果优化目标为空,可以使用默认目标:提升岗位匹配度和专业表达。
节点二:JD 关键词提取
提示词示例:
请从以下岗位 JD 中提取招聘方最关注的能力关键词。
要求:
1. 提取 8-12 个关键词;
2. 按重要程度排序;
3. 每个关键词后解释其含义;
4. 输出 Markdown 列表。
岗位 JD:
{{job_description}}
节点三:匹配度分析
提示词示例:
请根据岗位 JD 和用户简历,评估简历与岗位的匹配度。
岗位 JD:
{{job_description}}
用户简历:
{{resume_content}}
请输出:
1. 综合匹配度评分,满分 100;
2. 匹配优势;
3. 明显短板;
4. 可优化空间;
5. 不得虚构简历中没有的信息。
节点四:简历优化
提示词示例:
请基于用户原始简历内容进行优化。
目标岗位:
{{target_position}}
岗位 JD:
{{job_description}}
用户原始简历:
{{resume_content}}
优化目标:
{{optimize_goal}}
要求:
1. 只基于用户提供的真实经历进行改写;
2. 使用更专业、更结果导向的表达;
3. 尽量突出与目标岗位相关的能力;
4. 如果缺少量化结果,不要编造数字,可以用“可补充:xxx”提示;
5. 输出优化后的简历版本。
六、变量设计
在 Coze 中,为了方便后续工作流调用,可以设计以下变量:
| 变量名 | 类型 | 说明 |
|---|---|---|
| target_position | String | 目标岗位 |
| job_description | String | 岗位 JD |
| resume_content | String | 用户简历 |
| optimize_goal | String | 优化目标 |
| jd_keywords | String | JD 关键词分析结果 |
| match_score | String | 匹配度分析结果 |
| resume_diagnosis | String | 简历诊断结果 |
| optimized_resume | String | 优化后的简历 |
| interview_tips | String | 面试建议 |
这样做的好处是后续可以很方便地把结果拆分展示。例如前端页面可以分别展示“评分”“诊断”“优化版本”等模块,而不是只显示一大段文本。
七、知识库设计
如果只是通用简历优化,知识库不是必须的。但如果你希望这个 Bot 更专业,可以增加一个简历优化知识库。
知识库可以包含以下内容:
- 不同行业岗位能力模型;
- 产品经理简历写作模板;
- Java 后端工程师简历模板;
- 数据分析师项目经历表达方式;
- STAR 法则说明;
- 简历常见问题清单;
- 互联网大厂岗位关键词库;
- 面试官筛选简历的逻辑。
例如,在知识库中放入一段 STAR 法则说明:
# STAR 法则
STAR 是 Situation、Task、Action、Result 的缩写,常用于项目经历和工作经历表达。
- Situation:背景,说明项目发生的业务场景;
- Task:任务,说明你负责什么目标;
- Action:行动,说明你具体做了什么;
- Result:结果,说明最终产生了什么价值。
简历项目经历建议按照:
在什么背景下,为了解决什么问题,我负责了什么工作,采取了哪些行动,最终取得了什么结果。
当用户输入项目经历比较模糊时,Bot 可以基于知识库内容提示用户按照 STAR 法则补充。
八、发布方式
Coze 支持多种发布方式,可以根据需求选择:
1. 发布到聊天页面
适合个人使用或小范围测试,配置简单。
2. 嵌入网站
适合将 Bot 放到个人博客、招聘服务网站、职业咨询页面中。
3. API 接入
适合需要将 Coze 能力接入自有产品系统的场景。例如你有一个简历优化网站,用户提交表单后,由后端调用 Coze API 获取优化结果,再返回给前端展示。
下面重点分享 API 接入方式。
九、服务端调用 Coze API 示例源码
说明:以下代码为 Node.js 示例,请根据你实际使用的 Coze API 地址、Bot ID、Token 等信息进行替换。不同版本 API 字段可能略有差异,实际以官方文档为准。
1. 项目结构
coze-resume-demo
├── package.json
├── .env
└── src
├── index.js
└── cozeClient.js
2. package.json
{
"name": "coze-resume-demo",
"version": "1.0.0",
"description": "Coze resume optimization demo",
"main": "src/index.js",
"type": "module",
"scripts": {
"dev": "node src/index.js"
},
"dependencies": {
"axios": "^1.6.8",
"dotenv": "^16.4.5",
"express": "^4.18.3"
}
}
3. .env
COZE_API_TOKEN=your_coze_api_token
COZE_BOT_ID=your_bot_id
COZE_API_BASE=https://api.coze.com
PORT=3000
如果你使用的是国内版或其他区域的 Coze 服务,请将 COZE_API_BASE 替换为对应地址。
4. src/cozeClient.js
import axios from "axios";
const COZE_API_TOKEN = process.env.COZE_API_TOKEN;
const COZE_BOT_ID = process.env.COZE_BOT_ID;
const COZE_API_BASE = process.env.COZE_API_BASE;
export async function callCozeResumeBot({
userId,
targetPosition,
jobDescription,
resumeContent,
optimizeGoal
}) {
const query = `
【目标岗位】
${targetPosition}
【岗位 JD】
${jobDescription}
【当前简历】
${resumeContent}
【优化目标】
${optimizeGoal || "提升岗位匹配度、增强专业表达、突出项目价值"}
`;
try {
const response = await axios.post(
`${COZE_API_BASE}/v3/chat`,
{
bot_id: COZE_BOT_ID,
user_id: userId,
stream: false,
auto_save_history: true,
additional_messages: [
{
role: "user",
content: query,
content_type: "text"
}
]
},
{
headers: {
Authorization: `Bearer ${COZE_API_TOKEN}`,
"Content-Type": "application/json"
},
timeout: 60000
}
);
return response.data;
} catch (error) {
if (error.response) {
console.error("Coze API Error:", error.response.data);
throw new Error(
error.response.data?.msg || "Coze API request failed"
);
}
console.error("Request Error:", error.message);
throw new Error("Failed to call Coze API");
}
}
5. src/index.js
import express from "express";
import dotenv from "dotenv";
import { callCozeResumeBot } from "./cozeClient.js";
dotenv.config();
const app = express();
app.use(express.json({ limit: "2mb" }));
app.post("/api/resume/optimize", async (req, res) => {
try {
const {
userId,
targetPosition,
jobDescription,
resumeContent,
optimizeGoal
} = req.body;
if (!userId) {
return res.status(400).json({
success: false,
message: "userId is required"
});
}
if (!targetPosition) {
return res.status(400).json({
success: false,
message: "targetPosition is required"
});
}
if (!jobDescription) {
return res.status(400).json({
success: false,
message: "jobDescription is required"
});
}
if (!resumeContent) {
return res.status(400).json({
success: false,
message: "resumeContent is required"
});
}
const result = await callCozeResumeBot({
userId,
targetPosition,
jobDescription,
resumeContent,
optimizeGoal
});
return res.json({
success: true,
data: result
});
} catch (error) {
console.error("Optimize Resume Error:", error);
return res.status(500).json({
success: false,
message: error.message || "Internal Server Error"
});
}
});
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
6. 启动项目
npm install
npm run dev
7. 测试接口
可以使用 curl 测试:
curl -X POST http://localhost:3000/api/resume/optimize \
-H "Content-Type: application/json" \
-d '{
"userId": "user_001",
"targetPosition": "AI 产品经理",
"jobDescription": "负责 AI 产品规划与需求设计,熟悉大模型、智能体、知识库等应用场景,能够与算法、研发、设计团队协作推进项目,有 SaaS 产品经验优先。",
"resumeContent": "我做过 3 年产品经理,主要负责后台系统和数据报表。参与过一个智能客服项目,负责需求沟通和页面设计。会写 PRD,也会用 Axure。",
"optimizeGoal": "突出 AI 项目经验,更适合 AI 产品经理岗位"
}'
十、前端调用示例
如果你希望快速做一个简单页面,可以使用以下 HTML 示例。
智能简历优化助手
智能简历优化助手
优化结果
十一、实际落地中的优化建议
1. 不要让用户一次性输入太多无结构内容
如果用户随便粘贴一大段文字,模型仍然能处理,但效果不够稳定。建议前端把输入拆成多个字段:
- 目标岗位;
- 岗位 JD;
- 工作经历;
- 项目经历;
- 技能栈;
- 优化目标。
结构化输入越明确,输出质量越稳定。
2. 对输出格式做约束
如果你希望前端能够模块化展示结果,可以要求 Bot 输出 JSON,例如:
{
"keywords": [],
"score": 0,
"advantages": [],
"weaknesses": [],
"optimized_resume": "",
"interview_questions": []
}
不过要注意,模型输出 JSON 时偶尔可能出现格式不合法的问题。实际生产中可以增加 JSON 修复逻辑,或者使用 Coze 工作流中的结构化节点来提升稳定性。
3. 增加敏感信息提醒
简历中可能包含手机号、邮箱、身份证号、家庭住址等隐私信息。建议在 Bot 开头提醒用户:
请勿上传身份证号、银行卡号、详细家庭住址等敏感信息。
服务端也可以做简单脱敏处理。
4. 避免过度承诺
AI 简历优化工具只能提升表达质量,不能保证拿到面试或 offer。因此在产品文案中应该避免类似“保证进大厂”“100% 通过筛选”这类夸大表述。
5. 建立反馈闭环
可以让用户对优化结果进行评分:
- 很有帮助;
- 一般;
- 不准确;
- 存在编造;
- 格式不满意。
这些反馈可以用于后续优化提示词、知识库和工作流。
十二、常见问题
Q1:Coze 适合做生产级应用吗?
适合做轻量级和中等复杂度的 AI 应用,尤其适合快速验证产品原型。如果是强合规、高并发、深度定制的企业级系统,建议结合自有后端、权限系统、日志系统和数据安全策略一起使用。
Q2:知识库一定要配置吗?
不一定。如果是通用问答或简单文本生成,可以不配置知识库。但如果你希望 Bot 具备稳定的行业知识、企业制度知识或内部资料问答能力,知识库会非常有价值。
Q3:工作流是不是越复杂越好?
不是。工作流的目标是提升稳定性和可控性,而不是堆复杂度。对于简单任务,一个优质提示词就够了;对于多步骤任务,才建议拆成工作流。
Q4:如何避免 AI 编造经历?
可以从三个层面控制:
- 系统提示词中明确禁止编造;
- 工作流中增加“事实边界检查”节点;
- 输出时要求标注“基于已有信息”和“建议补充信息”。
例如:
如果用户没有提供具体数据,不要生成虚假的百分比、金额、人数、增长率等数字,只能提示用户补充。
十三、案例总结
通过这个「智能简历优化助手」案例,我们可以看到,Coze 不只是一个聊天机器人搭建工具,更适合用来快速构建有业务流程的 AI 应用。
这个案例的核心价值在于:
- 使用角色设定明确 Bot 专业身份;
- 使用结构化提示词稳定输出质量;
- 使用工作流拆解复杂任务;
- 使用变量管理不同阶段结果;
- 使用知识库增强专业能力;
- 使用 API 接入自有系统;
- 使用反馈机制持续优化应用。
如果你是产品经理、开发者、运营人员或独立创业者,Coze 是一个非常适合入门 AI 应用开发的平台。你可以从一个简单 Bot 开始,逐步加入知识库、工作流、插件和 API 集成,最终把想法变成真正可用的产品。
对于 AI 应用来说,真正的难点并不只是“调用大模型”,而是如何把模型能力嵌入到具体业务场景中,并让用户持续获得稳定、可信、可执行的结果。Coze 提供了一个低门槛但足够灵活的工具箱,而接下来能做出什么样的应用,取决于我们对场景的理解和产品设计能力。