上一篇 下一篇 分享链接 返回 返回顶部

用 Coze 做一个简历优化助手:工作流、提示词和 API 源码全流程拆解

发布人:慈云数据-客服中心 发布时间:18小时前 阅读量:4

Coze 实战案例分享|附源码

在 AI 应用快速落地的过程中,很多团队都会遇到一个共同问题:大模型能力很强,但真正把它变成一个可用、稳定、可运营的业务工具,并没有想象中简单。你不仅需要设计提示词,还需要考虑用户输入、知识库检索、工作流编排、插件调用、数据记录、异常兜底以及后续迭代。

Coze 的出现,降低了 AI Bot 从想法到上线的门槛。它提供了 Bot 搭建、工作流、知识库、插件、变量、数据库、发布渠道等能力,非常适合用来快速验证 AI 产品原型,也可以承载一些轻量级的业务场景。

本文将通过一个完整案例,分享如何使用 Coze 搭建一个「智能简历优化助手」,并附上相关提示词、工作流设计思路以及接口调用源码,帮助你更快理解 Coze 的实战用法。


一、案例背景

很多求职者在投递简历时会遇到几个问题:

  1. 不知道简历是否突出重点;
  2. 不清楚岗位 JD 中真正看重哪些能力;
  3. 简历描述过于口语化,缺少结果导向;
  4. 不同岗位投递时,没有针对性调整简历;
  5. 想让 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 更专业,可以增加一个简历优化知识库。

知识库可以包含以下内容:

  1. 不同行业岗位能力模型;
  2. 产品经理简历写作模板;
  3. Java 后端工程师简历模板;
  4. 数据分析师项目经历表达方式;
  5. STAR 法则说明;
  6. 简历常见问题清单;
  7. 互联网大厂岗位关键词库;
  8. 面试官筛选简历的逻辑。

例如,在知识库中放入一段 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 编造经历?

可以从三个层面控制:

  1. 系统提示词中明确禁止编造;
  2. 工作流中增加“事实边界检查”节点;
  3. 输出时要求标注“基于已有信息”和“建议补充信息”。

例如:

如果用户没有提供具体数据,不要生成虚假的百分比、金额、人数、增长率等数字,只能提示用户补充。

十三、案例总结

通过这个「智能简历优化助手」案例,我们可以看到,Coze 不只是一个聊天机器人搭建工具,更适合用来快速构建有业务流程的 AI 应用。

这个案例的核心价值在于:

  1. 使用角色设定明确 Bot 专业身份;
  2. 使用结构化提示词稳定输出质量;
  3. 使用工作流拆解复杂任务;
  4. 使用变量管理不同阶段结果;
  5. 使用知识库增强专业能力;
  6. 使用 API 接入自有系统;
  7. 使用反馈机制持续优化应用。

如果你是产品经理、开发者、运营人员或独立创业者,Coze 是一个非常适合入门 AI 应用开发的平台。你可以从一个简单 Bot 开始,逐步加入知识库、工作流、插件和 API 集成,最终把想法变成真正可用的产品。

对于 AI 应用来说,真正的难点并不只是“调用大模型”,而是如何把模型能力嵌入到具体业务场景中,并让用户持续获得稳定、可信、可执行的结果。Coze 提供了一个低门槛但足够灵活的工具箱,而接下来能做出什么样的应用,取决于我们对场景的理解和产品设计能力。

目录结构
全文