简喵 03:产品流程——一份简历如何从"能写"变成"能投"


功能可以少,但路径必须清楚。功能多但路径乱,用户只会在页面里迷路。功能少但路径顺,用户至少能走到最后一步。

我设想过一个最典型的使用场景。

晚上 10 点 40,用户刷到一个后端开发实习 JD,投递截止写着今晚 12 点。

他手里有一份简历。问题不是这份简历完全不能用,而是他不知道它现在能不能投。要不要先改项目经历?技能栈够不够?JD 里的 Redis、部署经验、AI 应用经验有没有对应上?还是先导出再说?

如果这个时候,一个简历工具上来先让他在”AI 评分””JD 匹配””模板中心””版本管理”几个入口里自己找路,那它已经输了。

因为用户缺的不是一堆功能按钮,而是一条清楚的路径:

从打开工具,到拿到一份自己敢投出去的简历,中间到底应该走哪几步。

这篇文章讲的就是这条路径,以及我为什么把简喵 V1 的产品流程设计成现在这样。

一、上一篇压成了 10 步,这一篇把它展开

上一篇需求分析里,我把简喵 V1 的核心链路压成了 10 步:

进入简喵 → 创建或导入简历 → 填写基础信息 → AI 评分 → 查看诊断
→ 优化表达 → 粘贴 JD 匹配 → 生成建议 → 确认修改 → 导出 PDF

这一篇不重新发明流程,而是把这 10 步拆开。

每一步只回答四个问题:

用户看到什么?
系统在背后做什么?
AI 在什么时候介入?
这一步失败了,怎么办?

我设计这条流程时,心里有一个很简单的判断:

功能可以少,但路径必须清楚。

功能多但路径乱,用户只会在页面里迷路。功能少但路径顺,用户至少能走到最后一步。

简喵 V1 不应该一开始就做成一个大而全的求职平台。它的第一目标不是覆盖所有求职场景,而是让用户完成一件具体的事:

把一份普通简历改成一份可以投递的简历。

二、入口:为什么是三个,而且第一个不是”上传 PDF”

简喵 V1 的入口,我只保留三个:

手动创建简历。
GitHub 导入项目。
继续优化已有简历。

这三个入口对应三类用户。

手动创建,适合没有现成简历,或者想从头整理内容的人。
GitHub 导入,适合有项目仓库,但不会写项目经历的计算机学生。
继续优化,适合之前已经建过简历,现在想针对新岗位修改的人。

这里有一个我反复纠结过的取舍:

要不要把”上传 PDF / Word,自动解析简历”放在第一入口?

上传解析当然要做。它也是简喵最初设想过的入口之一。

但我不想把它当成 V1 唯一主入口。

原因很现实:简历 PDF 的格式太杂。有的有表格,有的有分栏,有的用了图标,有的文字顺序和视觉顺序对不上。强行解析,很容易出现字段错位、模块识别错误、内容丢失。

一旦用户看到自己的”教育经历”被塞进了”项目经历”,他对后面所有 AI 分析都会失去信任。

所以我的排序是:

V1 先把结构化编辑和 GitHub 导入做稳。
PDF / Word 解析可以作为辅助入口。
等核心链路跑通后,再逐步提高文件解析准确率。

这不是说解析不重要,而是它不应该在第一版里压过主线。

简喵第一版最重要的不是”用户能不能一键上传所有格式的简历”,而是”用户能不能稳定完成一次简历优化流程”。

三、GitHub 导入:它不是所有人的入口,但它是差异化入口

GitHub 导入不是所有用户都会用。

转码用户、非技术岗位用户、已经有工作经历的人,可能不需要这个入口。但对计算机学生来说,它很关键。

很多学生不是没项目,而是项目躺在 GitHub 里,简历上写不出来。

他可能做过课程项目、练手项目、小工具、博客系统、管理后台、爬虫脚本。但一写进简历,就只剩一句:

负责前后端开发。

这句话太空了。

所以 GitHub 导入要解决三个问题:

第一,找到用户的公开仓库。
第二,判断哪些仓库可能适合写进简历。
第三,把项目内容整理成简历项目经历。

一个合理的 GitHub 导入流程应该是:

输入 GitHub 用户名
  ↓
获取公开仓库列表
  ↓
读取仓库名称、简介、README、主要语言、更新时间
  ↓
筛选可能适合写进简历的项目
  ↓
用户手动勾选项目
  ↓
AI 生成项目经历初稿
  ↓
用户确认并修改

这里最关键的一点是:

不能让 AI 全自动决定哪些项目一定要写进简历。

因为 AI 不知道哪个仓库是课程作业,哪个是跟教程敲的 Demo,哪个是 fork 来的,哪个是用户真正投入较多的项目。

系统可以做推荐,但最终选择权必须交给用户。

比如系统可以提示:

这个仓库 README 较完整。
这个仓库最近有更新。
这个仓库主要语言和目标岗位相关。
这个仓库可能是 fork 项目,需要确认本人贡献。
这个仓库描述过短,建议手动补充项目功能和个人职责。

这样更安全。

AI 可以帮用户整理真实信息,但不能替用户认领经历。

这是我给 GitHub 导入划的红线。

四、结构化整理:所有”废话建议”都来自这一步没做好

不管用户是手动创建,还是从 GitHub 导入,进入 AI 分析之前,都要先做一件事:

把简历拆成明确的结构化模块。

比如:

{
  "projects"
    {
      "name"
      "techStack"
      "description"
        "负责简历编辑、AI 评分、JD 匹配等核心模块开发"
      ]
    }
  ]
  "skills"
}

这一步看起来像技术细节,但其实是产品体验的基础。

如果系统不知道哪一段是项目经历,哪一段是技能栈,哪一段是教育经历,它就只能对整篇文本做泛泛分析。

于是用户会收到这种建议:

建议增强项目亮点。
建议补充量化数据。
建议优化表达方式。

这些建议看起来正确,但没有执行价值。

真正有用的建议应该是:

项目「简喵 AI 简历优化系统」第 2 条描述缺少量化结果,建议补充评分维度数量、接口数量、导出耗时或真实用户反馈等指标。

这两种建议的差别很大。

前者像废话。
后者能直接指导用户修改。

后者成立的前提,是系统知道这条建议对应的是哪个模块、哪个项目、哪一条描述。

所以结构化不是为了让数据看起来整齐,而是为了让 AI 建议能落到具体位置。

五、AI 评分:为什么不是只给一个总分

结构化整理完成后,用户最想知道的问题是:

我这份简历现在到底怎么样?

如果系统只给一个总分,比如:

你的简历得分:78 分。

这个结果其实没什么用。

用户不知道为什么是 78 分,也不知道怎么从 78 分改到 85 分。

所以简喵的评分不能只给总分,而要拆成多个维度。

维度看什么
内容完整度基本信息、教育经历、项目经历、技能栈是否完整
表达清晰度是否存在口语化、空泛、重复表达
项目含金量项目是否体现技术栈、业务场景和个人贡献
量化表达是否有数据、规模、性能、数量等证明
岗位相关性简历内容是否和目标岗位匹配
结构合理性模块顺序、重点分布是否适合阅读
面试可解释性简历内容是否经得起追问

拆成七个维度,用户才能看到自己具体弱在哪里。

有的人内容很完整,但表达很空。
有的人技术栈写了一长串,但项目经历没有展开。
有的人项目不错,但没有任何量化数据。
有的人简历看起来很丰富,但和目标岗位关系不强。
有的人简历写得很漂亮,但里面的技术点自己讲不清楚。

这些问题不是同一种病,不能用一个总分糊过去。

简历优化的目标也不是单纯把分数顶上去,而是让用户知道:

下一步应该改哪里。

六、JD 匹配:用户要的是行动清单,不是 AI 读后感

评分之后,流程会进入一个分岔:

不粘贴 JD → 做通用简历优化
粘贴 JD → 做岗位匹配分析

这两条路径都要保留。

因为不是所有用户一开始都有明确岗位。有的人只是想先把基础简历改好。

但对准备投递的人来说,JD 匹配才是更高价值的路径。

用户粘贴 JD 后,系统要做的不只是提取关键词,而是完成四件事:

第一,识别岗位类型。
比如后端开发、前端开发、AI 应用开发、测试开发等。

第二,提取核心技能。
比如 Spring Boot、MySQL、Redis、Vue3、TypeScript、Docker、RAG、Prompt 等。

第三,判断能力要求。
比如是否要求项目经验、部署经验、性能优化经验、团队协作经验、AI 应用落地经验。

第四,对比用户简历。
判断哪些已经覆盖,哪些表达不足,哪些完全缺失。

最后给用户看的,不应该是一大段话,而应该是一张行动表。

JD 要求简历匹配情况建议
熟悉 Spring Boot已匹配项目中已有体现,可以保留
熟悉 MySQL部分匹配技能栈有出现,但项目经历没有展开表设计
了解 Redis部分匹配建议补充缓存使用场景
有部署经验缺失如果项目已上线,应补充服务器部署和域名配置
有 AI 应用经验已匹配建议放到项目亮点前两条

这种展示方式比一句”你的简历与岗位匹配度较高,但仍需补充部分技能描述”有用得多。

用户需要的是行动清单,不是 AI 读后感。

七、优化建议:必须具体到”哪一条该怎么改”

AI 评分和 JD 匹配之后,才进入真正的优化建议阶段。

这里我给自己定了一条铁律:

优化建议必须具体到位置。

不能只说:

项目经历表达不够专业。

这句话太泛了,用户不知道改哪里。

一条合格的建议,至少要包含四个部分:

问题是什么。
出现在什么位置。
为什么需要改。
可以怎么改。

例如:

问题:项目描述过于空泛
位置:项目经历 > 简喵 AI 简历优化系统 > 第 1 条
原因:只写"完成 AI 简历优化功能",没有体现技术实现和业务价值
建议:改为"基于 Spring Boot 接入大模型 API,实现简历评分、项目经历润色
和 JD 匹配诊断;通过结构化 Prompt 约束输出格式,并对 AI 返回结果进行字段
校验和异常兜底"

这样的建议,用户才能判断它到底有没有用。

他能看出来:

这个问题是不是准确。
这个建议是不是符合真实经历。
这句话能不能直接用。
有没有需要自己降级或修改的地方。

简喵不能只做”AI 帮你改完”。

更合理的方式是:

AI 给出建议,用户确认后应用。

因为简历是用户自己的,最终责任也在用户自己身上。

八、Before / After:让用户看到”为什么变好了”

用户最关心的不是 AI 说了什么,而是改完到底有没有变好。

所以每条优化建议都应该提供 Before / After 对比。

优化前优化后
负责后端接口开发基于 Spring Boot 设计用户登录、简历管理、AI 评分等核心接口,使用 JWT 完成身份认证,并通过统一异常处理和参数校验提升接口稳定性
用 Redis 做缓存引入 Redis 缓存热点查询结果,减少重复数据库查询,并为后续限流和任务状态管理提供基础能力
使用 AI 优化简历接入大模型 API 实现简历评分、项目经历润色和 JD 匹配诊断,通过结构化 Prompt 和 JSON 校验提升输出稳定性

这个对比很重要。

因为用户可以直观看到差距:

优化前太短。
优化前太泛。
优化前没有技术动作。
优化前没有业务场景。
优化前没有结果证明。
优化前没有岗位关键词。

优化后的目标不是把句子变长,而是补齐信息密度。

说清楚做了什么。
说清楚用了什么技术。
说清楚解决了什么问题。
说清楚结果或价值。
说清楚和岗位有什么关系。

这才是简喵真正要做的事情。

九、确认应用:AI 给方向,用户守底线

AI 生成建议后,不能直接覆盖用户原文。

每条建议应该给用户三个选择:

应用。
编辑后应用。
忽略。

其中”编辑后应用”最重要。

因为 AI 经常会出现一种情况:方向是对的,但措辞过了。

比如它可能建议用户写:

设计高并发缓存架构,显著提升系统吞吐能力。

但如果用户只是给一个课程项目加了 Redis 缓存,这句话就明显过头了。

更真实的写法应该是:

引入 Redis 缓存热点查询结果,减少重复数据库查询,为后续接口性能优化提供基础。

这就是用户确认的价值。

AI 不知道用户真实的参与程度。
AI 不能确认所有数据是否真实。
AI 不知道某个技术点用户到底能不能讲清楚。
AI 有时会把普通项目包装得过于高级。

所以简喵宁可多一步确认,也不能把用户推向过度包装。

简历可以优化,但不能虚构。
表达可以专业,但不能失真。

这条边界很重要。

如果一个 AI 简历工具只追求”看起来更强”,它很容易把用户送进面试风险里。面试官顺着简历一问,用户讲不清楚,反而更糟。

简喵要做的是帮助用户表达真实经历,而不是制造虚假能力。

十、再次评分:闭环比”一键生成”更重要

很多 AI 工具的问题是:给完建议就结束了。

但真实的简历修改从来不是一次完成的。

用户通常会经历这样的过程:

第一次评分
  ↓
发现项目经历太空
  ↓
应用几条建议
  ↓
再次评分
  ↓
发现 JD 匹配还不够
  ↓
补充岗位关键词
  ↓
再次评分
  ↓
调整表达和顺序
  ↓
导出 PDF

所以每次用户应用建议后,系统应该支持重新分析,并展示变化。

例如:

指标优化前优化后
总分7281
表达清晰度6578
JD 匹配度6276
量化表达4558

这里的数字只是示意,真正重要的是反馈机制。

没有反馈的修改,很容易变成反复纠结。
有反馈的修改,用户才知道刚才那次调整有没有用。

这也是简喵和普通简历工具的区别。

普通简历工具是静态编辑器。
简喵应该是带反馈的优化系统。

它的核心不是”一键生成完美简历”,而是陪用户一轮轮把简历改清楚。

十一、版本管理:不要让用户输给”最终最终版”

真实投递不是只投一个岗位。

同一个人可能同时投后端、前端、AI 应用开发、测试开发。不同岗位关注的重点不同,所以简历版本也应该不同。

如果没有版本管理,用户很快就会在文件夹里看到这种东西:

简历-最新版.pdf
简历-最终版.pdf
简历-最终最终版.pdf
简历-字节版.pdf
简历-字节修改版.pdf
简历-字节真的最终版.pdf

这不是用户不自律,而是投递场景本身就需要多版本。

所以针对某个岗位完成一轮优化后,系统应该保存一个版本。

版本命名可以来自三个信息:

公司名称。
岗位名称。
创建时间。

例如:

基础版简历
腾讯-后端开发实习-2026.05.21
字节-AI应用开发实习-2026.05.22
阿里-前端开发实习-2026.05.23

但 V1 的版本管理不需要做得很复杂。

第一版只要支持:

复制基础简历生成新版本。
针对某个 JD 保存优化版本。
查看不同版本的修改时间和目标岗位。
导出指定版本 PDF。

这就够了。

不要一开始就做复杂的版本对比、协同编辑、权限共享、访问统计。

那些功能有价值,但不是 V1 的核心。

十二、导出 PDF:流程最后必须落到”能投”

前面所有评分、匹配、优化、版本管理,最后都要落到一份能投递的 PDF 上。

这里我守两条原则。

第一,导出不卡付费弹窗

这是简喵最初的动机之一。

用户花了半天编辑和优化简历,最后一步才告诉他”导出要付费”,这种体验我自己受够了。

工具可以有使用次数限制。
AI 功能可以有成本控制。
未来也可以思考更清晰的商业模式。

但不应该靠最后一步拦截导出来制造沉没成本。

第二,版式要稳定

简历 PDF 不需要花哨,但必须清楚、整齐、稳定。

V1 不需要做几十套模板,两套就够:

简约专业版。
技术强化版。

简约专业版适合大多数普通岗位投递。
技术强化版适合技术项目比较多的用户,把项目经历和技术栈展示得更突出。

拖拽式自由排版看起来很强,但开发成本高,也容易让用户把注意力浪费在调样式上。

简喵的重点是内容优化,不是做一个简历版 Photoshop。

十三、异常路径:不能只设计理想情况

产品流程不能只设计理想路径。

真实用户一定会遇到各种问题。

GitHub 用户名输错。
仓库为空。
README 太少,AI 无法判断项目内容。
JD 太短,无法提取有效要求。
用户没有填写项目经历。
AI 返回结果格式异常。
网络中断,分析失败。
导出 PDF 时内容超出一页。

这些情况如果不处理,用户立刻会觉得产品”不靠谱”。

所以每个关键节点都要有异常兜底。

比如 GitHub 导入失败时,不应该只显示:

系统错误。

而应该告诉用户:

没有找到这个 GitHub 用户,请检查用户名是否正确。你也可以直接手动创建简历。

如果仓库 README 太少,可以提示:

该仓库 README 内容较少,AI 可能无法准确生成项目描述。建议你手动补充项目功能、技术栈和个人职责。

如果 JD 太短,可以提示:

当前岗位描述信息不足,可能影响匹配结果。建议粘贴完整 JD,包括岗位职责和任职要求。

如果 AI 分析失败,可以提示:

本次 AI 分析失败,你的简历内容已经保存,可以稍后重试。

异常提示的核心不是”报错”,而是告诉用户下一步怎么办。

用户不怕产品偶尔失败。
用户怕的是失败之后不知道该怎么继续。

十四、简喵 V1 的完整流程图

整理下来,简喵 V1 的完整流程可以这样表示:

进入简喵
  ↓
选择开始方式
  ├─ 手动创建简历
  ├─ GitHub 导入项目
  └─ 继续优化已有简历
  ↓
结构化整理简历内容
  ↓
AI 简历评分
  ↓
查看问题诊断
  ↓
是否粘贴目标 JD?
  ├─ 否:生成通用优化建议
  └─ 是:进行 JD 匹配分析
          ↓
      生成岗位化优化建议
  ↓
查看 Before / After 对比
  ↓
用户选择:应用 / 编辑后应用 / 忽略
  ↓
再次评分
  ↓
保存为新版本
  ↓
导出 PDF

这个流程的核心不是”AI 生成一份简历”。

而是:

用户提供真实经历,系统帮他发现问题、看清差距、优化表达,最后导出一份他自己愿意投出去的简历。

这句话才是简喵 V1 的产品主线。

十五、这篇文章真正想说明什么

产品流程不是把功能按顺序排起来。

它要回答的是:

用户第一步做什么?
每一步为什么存在?
系统在背后处理什么?
AI 的建议如何被用户理解?
用户遇到问题时怎么继续?
最后如何形成一份可投递的简历?

对简喵来说,产品流程的核心不是”上传简历,然后 AI 给建议”这么简单。

真正的流程应该是:

输入真实经历。
结构化整理。
发现简历问题。
对比目标岗位。
生成具体建议。
用户确认修改。
再次评分反馈。
保存岗位版本。
导出 PDF 投递。

这是一条带反馈的写作路径。

传统简历工具更像一次性编辑器:填完、排版、导出。

简喵想做的是迭代式优化工具:分析、修改、反馈、再修改,直到用户拿到一份自己愿意投出去的简历。

写在最后

如果说上一篇需求分析是在回答”简喵为什么做这些功能”,那这篇产品流程就是在回答”这些功能应该怎么串起来”。

功能孤立存在时,价值很有限。

AI 评分单独存在,只是一个分数。
JD 匹配单独存在,只是一份分析。
AI 润色单独存在,只是一段改写。
PDF 导出单独存在,只是一个工具按钮。

但当它们被串成一条完整路径时,产品价值才会出现:

输入真实经历 → 发现问题 → 岗位匹配 → 优化表达 → 用户确认 → 导出投递。

这才是简喵 V1 要优先打磨的主线。

用户提供真实经历。
系统帮他发现问题。
AI 给出可执行建议。
用户确认并应用。
系统再次反馈。
最后导出一份能投的 PDF。

流程确定之后,下一步不是继续加功能,而是反过来砍功能。

因为流程越清楚,越能看出哪些功能只是看起来有用,实际上会拖慢第一版。

下一篇,我会写简喵的 MVP 范围:哪些功能第一版必须做,哪些听起来合理但要先砍掉,以及我为什么这么取舍。


文章作者: Ryan Guo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ryan Guo !

评论

有问题欢迎留言,看到都会回~

 上一篇
我让 AI 改代码,它悄悄删了测试、放大了 CI 权限,所以我做了 PatchBrake 我让 AI 改代码,它悄悄删了测试、放大了 CI 权限,所以我做了 PatchBrake
AI 改完代码后,最危险的地方往往不是项目能不能跑,而是这一次 diff 里有没有测试被删、权限被放大、secret 被写进代码。PatchBrake 就是我为这个场景做的提交前本地质检工具。
下一篇 
简喵 02:需求分析——四类用户、四个场景、四个真实痛点 简喵 02:需求分析——四类用户、四个场景、四个真实痛点
在正式做简喵之前,我先做了一轮轻量需求分析。这篇文章回答一个问题:简喵第一版到底应该做什么,又应该坚决不做什么——四类用户、四个场景、四个痛点,以及基于 MoSCoW 的 V1.0 功能取舍。
  目录
 目录