Resume Matcher 用你选择的 AI 模型,针对每份职位描述定制你的简历。本页按你会遇到的顺序介绍每项功能:添加主简历、针对职位定制、在简历生成器里润色、生成配套材料,以及追踪申请。如果还没接入模型,先看自带 AI 密钥。
你的主简历永远不会被覆盖。每个定制版本都会另存为一份独立的简历,并关联到它所基于的主简历和它所针对的职位。
仪表板

仪表板是你的大本营。它显示:
- 你的主简历(蓝色卡片)。如果定制从它开始,会标记为默认,并显示处理状态。
- + 添加主简历方向,用来再添加一份主简历,总共最多五份。
- 每份定制简历一张卡片,标题为「职位 @ 公司」,显示状态和最后编辑日期。
- 创建简历,打开定制页面,生成一个新的定制版本。
- 页脚的定制队列、申请追踪和设置,下面还有几个链接:在 GitHub 上关注项目、点 Star、赞助、加入 Discord,以及认识贡献者。
点击任意卡片会打开那份简历的页面。你可以在那里预览、下载、复制它,用编辑简历在简历生成器里打开它;如果是主简历,还可以运行增强简历。
如果还没有配置 AI 模型,页面顶部会有一条横幅,带你去设置页面。
主简历
主简历是你完整、未经定制的简历:所有工作、项目和技能都在一处。每个定制版本都基于某一份主简历生成,而定制从不修改主简历。
上传一份。 拖入不超过 4 MB 的 PDF、DOC 或 DOCX 文件。AI 会读取它,并转换成结构化的板块(个人信息、个人简介、工作经历、教育背景、项目经历、技能),你可以在简历生成器里编辑。原始文本会保留一份副本。扫描件这类纯图片 PDF 没有文本层,会被拒绝;请先用 OCR 处理。如果处理失败,可以在仪表板上重试。
或者用简历向导创建一份。 如果你没有简历文件,向导会一次问你一个问题(最多 15 个),在你回答的同时生成主简历。右侧的实时草稿会显示简历逐渐成形。向导被明确要求绝不编造雇主、职位、日期、学位、证书、指标、工具或技能;所有内容都来自你的回答。

随着你一题题回答,进度条逐渐填满,实时草稿也越来越完整:你的名字和头衔、每段工作及其要点,还有你的技能。

职业方向。 最多保留五份主简历,比如一份投后端岗位,一份投机器学习岗位。
- 恰好有一份是默认简历。随时可以用设为默认把另一份设为默认。
- 用添加主简历方向开始一个新方向,或者复制一份现有简历。
- 在定制页面的选择简历里,挑选要从中选取要点的主简历。默认简历已预先选中。
AI 简历定制
从仪表板的创建简历卡片打开定制页面。

- 选择定制强度:
轻度调整:改动最少,让你现有的经历更贴合职位。关键词增强(默认):融入相关关键词,不改变职位角色或工作范围。完全定制:基于职位描述进行全面定制。
- 设置长度:
- 页数上限:1、2 或 3 页,或者
不限(默认 2 页)。会尽可能从相关性最低的要点开始删减,直到简历符合页数上限。选不限则不做页数调整。 - 每段经历的要点数:
最多 3 条、最多 5 条或全部(默认),即每段工作或每个项目保留的最相关要点数量。
- 页数上限:1、2 或 3 页,或者
- 粘贴职位描述(最多 100,000 个字符)。
- 点击生成定制简历。
默认强度可以在设置的提示词设置里修改。页数上限和每段经历的要点数会记在你的浏览器里。
点击生成之后会发生什么
- 职位分析。 AI 提取公司、职位、必备和加分技能、主要职责以及关键词。结果随职位一起保存,所以之后追踪卡片无需再调用一次 AI,就能拿到公司和职位。
- 要点筛选。 AI 为你的工作经历和项目中的每条要点打分,评估它与职位的相关度。它只打分,不能改写或编造要点。然后由代码按你设定的每段经历的要点数保留最相关的要点,并通过实际渲染页面,从相关性最低的要点开始删减,直到简历符合你的页数上限,每个条目至少保留一条。如果仍然放不下,就保留所有选中的要点,预览里会说明这一点。选择
全部和不限时,这一步会跳过。你的主简历会保留全部要点。 - 技能规划。 AI 提出要突出哪些技能。代码只接受满足以下条件之一的技能:已经在你的简历里、出现在你简历的文本中,或者是在职位描述里逐字出现的必备或加分技能。
- 定向修改。 AI 不会重写整份简历,而是返回一份具体的修改清单,每条都引用它要替换的原文。代码会对照你的简历核实每一处引用,并拒绝针对受保护字段的修改。
- 安全网与润色。 代码会还原你的个人信息和日期,保留所有原有技能,删除一批用滥了的「AI 腔」短语(除非职位描述里用到了它们);如果某行改写引入了原文没有的数字,就撤销这行改写。
整个流程有时间上限(默认四分钟),慢速模型不会让应用卡住。
保存之前先审核

预览会显示:
- 变更摘要:新增和删除的技能、新增的证书、修改的描述,以及高风险变更。
- 要点筛选的结果,例如「已保留 14 条要点中的 8 条(每个职位或项目最多 3 条)· 为符合页数上限又删减了 4 条」。
- 高风险警告:当 AI 添加了内容(通常是取自职位描述的技能)时显示,方便你确认它对你来说属实。
- 修改前后对比:个人简介、技能和每条改动过的要点。
选择确认并保存保留结果,或者选择拒绝并重新生成丢弃结果并重试。这个决定针对整个预览。请读完每一处修改:护栏能拦住编造的数字、雇主和日期,但措辞仍可能夸大你的角色,你是最后一道检查。
生成预览时,表单下方会出现一张 ATS Score Breakdown(ATS 评分明细)卡片,关闭预览后它仍会留在那里。它是一个由代码计算的加权启发式评分:关键词匹配占 40%,职位技能的覆盖率占 20%,职位名称匹配占 15%,板块完整度占 15%,日期格式一致性占 10%。它不是对任何真实申请人跟踪系统的模拟。确认后,它会随定制简历一起保存;参见 ATS 评分。
确认之后
- 定制简历会另存为一份新简历,标题为「职位 @ 公司」,并关联到它的主简历和职位,同时保存它的 ATS 评分。
- 它的卡片会出现在申请追踪看板的已投递列。
- 如果你在设置里开启了相应开关,还会同时生成求职信、联系邮件和面试准备。
- 定制简历和其他简历一样打开:所有内容都可以在简历生成器里继续编辑。
一次定制多个职位:定制队列
同时申请好几个职位?把它们加入队列,Resume Matcher 会逐一定制。从仪表板的定制队列按钮,或者定制页面上的按钮打开队列。

- 选择定制强度并粘贴职位描述。职位、公司和职位编号会直接从文本中识别,无需调用 AI;如有错误,可以修改。
- 设置间隔,也就是每个职位完成后的暂停时间(默认 5 秒,最长 60 秒),降低触发服务商速率限制的风险。
- 点击加入队列,然后对下一个职位重复以上步骤。
职位按加入的先后顺序运行,状态分别为排队中、定制中、已完成或失败。已完成的职位有一个查看简历按钮。失败的职位(比如运行超过了时间上限)不会重试,需要重新添加。队列保存在数据库里,所以刷新页面或重启后依然存在。清除已完成会把已完成的职位移出列表,全部清除会移除除正在定制的那个之外的所有职位;两者都不会删除简历。
队列中的职位会跳过审核步骤。 每个职位都会执行和定制页面相同的定向修改和安全网,然后直接保存为定制简历,同时在已投递列生成追踪卡片、保存 ATS 评分,并生成你在设置里开启的求职信、联系邮件或面试准备。队列不使用页数上限和每段经历的要点数:它会保留所有要点。发送之前,请在简历生成器里打开每份结果,读一遍。
AI 能改什么,不能改什么
定制的设计目标是改写,而不是编造。这些规则由代码强制执行,而不只是在提示词里提出要求:
| AI 可以 | AI 不可以 |
|---|---|
| 用职位描述的措辞改写你的个人简介和要点 | 修改你的姓名、邮箱、电话、所在地或链接 |
| 重新排序并突出技能 | 修改雇主、职位名称或日期 |
| 选择保留哪些要点,不超出你设定的页数上限和每段经历的要点数 | 修改学校、学位或教育经历的日期 |
| 添加职位要求的技能,前提是它在职位描述里逐字出现(会被标记为高风险) | 添加原文里没有的数字、百分比或指标 |
| 删除你已有的技能、证书、语言或奖项 | |
| 添加新的工作、学校或项目 | |
| 改动你的自定义板块 |
简历生成器
每份简历,无论是主简历还是定制简历,都在简历生成器里打开:左侧是编辑器,右侧是分页的实时预览。

编辑
- 直接编辑每个板块:个人信息、个人简介、工作经历、教育背景、项目经历,以及技能与荣誉。
- 给要点文本设置粗体、斜体、下划线和链接,并逐行切换项目符号。
- 添加工作、学校、项目和要点;复制或删除条目。
- 重命名、隐藏、显示板块并调整顺序,可以用上移/下移或拖放。
- 添加三种自定义板块:自由文本、条目列表(类似工作经历)或简单的字符串列表。
预览工具
- 放大和缩小,切换页边距显示,查看实时页数。
- 简历、求职信、联系邮件、面试准备、JD 匹配和 ATS 检查标签页。面试准备和 JD 匹配需要定制简历;ATS 检查适用于任何已保存的简历。
操作
- AI 重新生成:用你自己的指令重写选中的条目(参见 AI 增强与 AI 重新生成)。
- 重置:回到上次保存的版本。
- 保存:立即保存。简历生成器也会在你编辑时自动保存。
- 下载:按当前模板设置把简历导出为 PDF。
简历模板
Resume Matcher 内置七套模板:
| 模板 | 布局 | 强调色 | 适合 |
|---|---|---|---|
| 单栏 | 传统单栏布局(默认) | 无 | 通用求职申请 |
| 双栏 | 分栏布局,辅助信息放在侧栏 | 无 | 需要兼顾经历和技能的求职者 |
| 现代 | 现代风格的单栏布局 | 有 | 更清爽、更具现代感的视觉呈现 |
| 现代双栏 | 现代风格的分栏布局 | 有 | 内容密集、但仍需要视觉结构的简历 |
| LaTeX | 经典 LaTeX 风格,单栏(导出 PDF,不是 .tex 文件) |
无 | 工程师和学术人员 |
| 简洁 | 极简单栏 | 无 | 简单、疏朗的外观 |
| 鲜明 | 双栏 | 有 | 视觉效果更突出的简历 |
双栏模板在阅读顺序上把主要内容放在前面,因此文本提取工具会先读到你的工作经历,再读侧栏。PDF 模板里有每套模板的预览。
排版控件
简历生成器里的模板与排版面板控制 PDF 输出:
| 控件 | 选项 |
|---|---|
| 纸张尺寸 | A4、美式信纸(US Letter) |
| 页边距 | 每边 5 到 25 mm(默认 10 mm) |
| 间距 | 板块、条目和行间距,分五档 |
| 字号 | 正文字号,以及姓名和板块标题的缩放比例 |
| 字体 | 衬线、无衬线或等宽,标题和正文分别选择 |
| 紧凑模式 | 开关 |
| 联系方式图标 | 开关 |
| 强调色 | 蓝色、绿色、橙色或红色,适用于现代、现代双栏和鲜明模板 |
恢复默认设置随时可以把所有控件恢复原样。
JD 匹配
在定制简历上,JD 匹配标签页把职位描述和你的简历并排显示,并用黄色高亮你的简历中已经包含的每个职位描述关键词。

匹配率怎么算。 就是简单的算术,不涉及 AI:
- 取职位描述中的词,去掉常见英文词和招聘启事里的套话(比如「team」、「role」和「experience」),保留三个字母及以上的词。
- 对你的简历做同样的处理。
- 匹配率 = 简历中出现的职位描述关键词数 ÷ 职位描述关键词总数。
匹配率在 50% 及以上时显示绿色,30% 起显示琥珀色,低于 30% 显示红色。因为它会统计招聘启事中每个有意义的词,包括公司背景介绍,一份很强的简历也常常落在 30% 到 50% 之间。用它来找出缺失的技能和术语,不要把它当作及格线。目前它只统计纯 a–z 字母组成的词,所以带重音符号的词以及中文、日文和韩文文本都不会被计入。
ATS 评分
在定制简历上,JD 匹配标签页还会显示这份简历的 ATS Score Breakdown(ATS 评分明细),评分依据是它所针对的职位。

- 评分满分 100,由五部分相加:关键词匹配(40%)、技能覆盖(20%)、职位名称匹配(15%)、板块完整度(15%)和日期格式一致性(10%)。无法评分的部分(比如招聘启事里没有职位名称时的职位名称匹配)会被排除,其余部分重新分配权重。
- 缺失关键词:既不在这份简历里、也不在你的主简历里的职位关键词。
- 可安全添加(主简历中已有):你的主简历里有、但这份定制版本里没有的职位关键词,所以加上它们不算编造。
- 建议:基于规则的提示,比如在头衔里使用招聘启事中的确切职位名称。
评分完全由代码计算。它使用分析职位时 AI 提取的关键词,所以重新计算不会调用 AI。评分随简历一起保存:编辑之后先保存,再点击重新计算(有未保存的修改时,这个按钮不可用)。和 JD 匹配一样,它只是启发式评分,不能预测雇主的软件会给你怎样的排名。
Resume Matcher 靠捐助维持运转。
已有超过 20 万求职者用过它:免费,没有广告,也没有付费墙。如果它帮你省了时间,或帮你拿到了面试,赞助或请我喝杯咖啡能让它一直免费。
ATS 检查
ATS 检查标签页测试软件能否读取你简历的 PDF。它用你当前的模板和设置渲染最近一次保存的版本,也就是下载得到的那份 PDF,然后像普通 ATS 文本提取器那样把文本读回来。整个过程不涉及 AI,适用于任何已保存的简历,无论是主简历还是定制简历。

它会报告:
- 可解析性和内容,各自满分 100。未通过或有警告的检查项会扣分,问题越严重,扣得越多。
- 文本提取:完整、部分或无。
- 检查项,每项标为通过、警告或失败:可选中文本、字符编码、文本与图片、单一阅读顺序、页眉和页脚、图片、篇幅(超过两页会警告)、联系方式、板块标题(工作经历、教育背景、技能)和日期。
- 往返对比:你简历里的数据有多少能从 PDF 中读回来(每个字段标为已找到、乱码或缺失),以及阅读顺序是否保持不变。它衡量的是这次渲染能被多忠实地读回,而不是任何特定 ATS 的准确度。
在双栏模板上,阅读顺序检查会建议你在投递依赖 ATS 的职位时改用单栏模板。未保存的修改不会包含在内,所以请先保存;修改任何内容后,点击重新检查。检查结果不会保存。和 PDF 导出一样,这项检查需要前端处于运行状态,并需要 Chromium(参见 PDF 导出)。
配套申请材料
Resume Matcher 还会为每份定制简历生成配套的申请材料。它们和定制用的是同一份简历和职位描述,所以你的申请材料前后一致。随时可以在简历生成器里对应的标签页生成。如果想在每次确认定制简历时自动生成,到设置 > 内容生成里开启(三者默认都关闭)。
求职信

- 一封简短的信(100 到 150 词),根据你的简历针对具体职位撰写。提示词要求模型不编造简历里没有的任何内容。
- 在左侧编辑;右侧显示带有你的联系方式和日期的打印版式。
- 保存你的修改,重新生成新的草稿,或者下载为 PDF。
联系邮件
一封 70 到 100 词的冷邮件或 LinkedIn 消息,针对同一职位、根据你的简历撰写。在联系邮件标签页里,你可以编辑、重新生成它,并复制到剪贴板。
你可以在设置 > 内容生成里,把默认的求职信和联系邮件提示词换成你自己的。自定义提示词必须保留 {job_description}、{resume_data} 和 {output_language} 占位符。
面试准备

对每份定制简历,面试准备会生成:
- 岗位匹配分析:你的经历与职位吻合的地方,以及需要弥补的差距。
- 基于简历的问题:面试官可能就你的简历提出的问题,每个都附有关注点和建议回答要点。
- 项目追问:关于你的项目的深入问题。
- 技能差距:职位要求的技能、为什么重要,以及如何准备。这些是准备目标,不会作为技能加进你的简历。
- 沟通要点:可以反复回到的简短主题。
在面试准备标签页生成,随时可以重新生成。
AI 增强与 AI 重新生成
AI 增强(主简历)。 打开主简历的页面,点击增强简历。AI 会找出内容单薄的工作经历和项目条目,并就这些条目问你最多六个问题。它根据你的回答为每个条目写出两到四条新要点,你审核(「保留」与「新增」对照)之后再点击添加到简历。它只使用你提供的细节,不会编造指标。
AI 重新生成(任何简历)。 在简历生成器里点击 AI 重新生成,选择要重写的工作经历、项目或技能,并写一条指令,比如「使用更有力的行动动词」或「突出领导力」。在应用任何改动之前,你会看到修改前后的预览。提示词禁止添加新的事实、指标、日期、公司、职位或成就。
AI 重新生成不同于定制预览里的拒绝并重新生成:后者会丢弃整份定制草稿,重新运行定制。
申请追踪
申请追踪是一个用于求职的看板。你确认的每份定制简历都会自动生成一张卡片;对于还没定制简历的职位,你也可以手动添加卡片。
![]()
七个阶段: 已保存、已投递、无回复、有回复、面试、已录用和已拒绝。
卡片显示公司、职位和投递日期;如果同一份主简历用于不止一项申请,还会显示共享简历标记。卡片在「已保存」以外的任何阶段创建时,或第一次移出「已保存」时,会自动记下日期。
使用看板
- 拖放卡片,可以在列内调整顺序,或移到另一个阶段。
- 用箭头按钮滚动,或者用底部的阶段标签直接跳转到某个阶段。
- 用复选框选择多张卡片,然后一起移动(移动到……),或者一次性删除。
- 管理可以隐藏你用不到的阶段。至少会保留一个阶段可见。
卡片详情。 点击卡片可以查看完整的职位描述、写备注,并打开你投递时用的那份简历(编辑简历会带你进入简历生成器)。如果那份简历之后被删除了,卡片仍能打开,并会提示你。
![]()
手动添加申请。 点击添加申请,选择一份简历,粘贴职位描述,并选择起始阶段,比如为打算以后再定制的职位选已保存。公司和职位是可选项:留空的话,AI 会从职位描述中提取。
多语言支持
Resume Matcher 支持七种语言:
- 英语
- 西班牙语
- 简体中文
- 日语
- 葡萄牙语(巴西)
- 法语
- 韩语
界面语言决定界面显示的语言。内容语言是 AI 写作所用的语言,用于定制简历、求职信、联系邮件和面试准备。两者在设置里分开设置,所以你可以用英文界面,同时写一份日文简历。PDF 内置了 Noto Sans 字体,用于中文、日文和韩文文本。参见国际化。
PDF 导出
简历和求职信导出为 PDF。应用会打开一个无头 Chromium 浏览器,载入简历的纯打印版本并打印出来,因此:
- PDF 里是真实的文本,不是文字的图片。每个字都可以被选中、复制,也能被软件读取。
- 标题是真正的标题,双栏布局在阅读顺序上保持主要内容优先。
- 与简历生成器一致,模板、字体、间距和纸张尺寸都是你选的那些。
PDF 导出需要前端处于运行状态,因为 Chromium 打印的是前端的打印页面。本地运行时,安装 Playwright 的 Chromium(uv run playwright install chromium),或者装好 Chrome 或 Edge;Docker 镜像已包含所需的一切。
AI 服务商与隐私
支持的服务商:
- OpenAI
- Anthropic
- OpenRouter
- Google Gemini
- DeepSeek
- Groq
- Azure AI Foundry
- Ollama
- 任何兼容 OpenAI 接口的服务(llama.cpp、vLLM、LM Studio)
- ChatGPT 订阅:用你的 ChatGPT Plus 或 Pro 账号登录,无需 API 密钥
- Claude 订阅:运行你自己的 Claude Code CLI,它已登录你的 Claude 账号
配置方法,以及两种订阅方式的注意事项,参见自带 AI 密钥。
存在你电脑上的。 所有数据都在一个文件夹里,即 apps/backend/data/,或者在 Docker 卷里:
resume_matcher.db:SQLite 数据库,存有你的简历、职位描述、定制版本、追踪看板和定制队列。它无需任何配置;想改用 PostgreSQL,参见用 PostgreSQL 代替 SQLite。config.json:非机密设置- API 密钥:静态加密存储,加密用的密钥文件只有你的用户账号能读取;如果你使用 ChatGPT 订阅,它的登录令牌也以同样的方式加密保存
离开你电脑的。 只有你触发的 AI 请求,发给你选定的服务商。使用云端服务商时,发送的内容包括你的简历(连同你的联系方式)和职位描述。应用不含任何分析或追踪代码。启动时,AI 库(LiteLLM)会获取一份公开的模型价格表,这个请求不带你的任何数据。
完全本地。 使用 Ollama 或其他本地模型服务,你的简历、职位描述和所有 AI 输出都留在你的电脑上。
危险区域。 在设置里,清除 API 密钥会删除所有已保存的密钥,重置数据库会删除所有简历、职位、生成的内容和定制队列。两者都无法撤销。
在 Claude Code 中使用(MCP)
Resume Matcher 还附带一个 MCP 服务器,所以 Claude Code、Claude Desktop、Cursor、Codex 或其他 MCP 客户端可以直接处理你的简历。内容由客户端的模型撰写;Resume Matcher 负责存储、校验、评分和渲染,数据存在和网页应用相同的数据库里,它自己也不需要 AI 密钥。它适用于本地安装,不支持 Docker。参见在 Claude Code 和 Claude Desktop 中使用 Resume Matcher(MCP)。
Resume Matcher 不做什么
- 它不是托管网站。 你自己运行它,在本地或者 Docker 里。它为单个用户设计。
- 它不会替你投递申请,也不连接招聘网站或雇主的系统。追踪看板只是你自己的记录。
- 它不能预测 ATS 会给你怎样的排名。 ATS 检查测试的是文本能否从 Resume Matcher 自己生成的 PDF 中读回来,ATS 评分和 JD 匹配则是关键词和板块的启发式计算。它们都不模拟任何雇主的申请人跟踪系统。
- 它不会凭空写简历。 它基于你上传的简历,或你在向导里的回答。
- 它读不了扫描版 PDF。 文件需要有文本层。
- 它只导出 PDF。 Word 文件只能作为输入,不能作为输出。