更新于

用 AI 写简历完整教程(中文)


用 AI 写简历这件事,很多人做错了第一步:直接甩一句”帮我写一份软件工程师简历”,然后把 AI 生成的内容原样复制粘贴。结果往往是一份读起来很”AI”、内容空洞、和目标岗位毫不匹配的简历——HR 一眼就能看出来。

AI 在写简历这件事上真正擅长的,不是”编造经历”,而是把你零散的真实经历,重新组织成招聘方想看到的语言。这篇文章给出一套可以直接照抄的分步流程,把 AI 当成一个能不断追问细节、帮你打磨措辞的编辑,而不是一台自动生成器。

一、开始之前:先做好素材整理

AI 写不出你没告诉它的信息。如果你直接让 AI”编”一段工作经历描述,大概率会得到千篇一律的套话(“负责xx模块的设计与开发,具备良好的团队协作能力”),因为它没有任何具体细节可用。

在打开对话框之前,先花 15-20 分钟整理一份”原始素材清单”,哪怕是流水账也没关系:

  • 每段经历做了什么具体的事(越细越好,比如”把接口响应时间从 800ms 优化到 200ms”,而不是”优化了性能”)
  • 用了什么技术/工具
  • 遇到了什么问题,怎么解决的
  • 有没有可以量化的结果(用户量、性能提升百分比、节省的成本、团队规模)

这份清单不需要写得漂亮,AI 的工作正是把它变漂亮。素材越具体,AI 产出的质量差距越大。

二、分步 Prompt 模板:不要一次性让 AI 写完整份简历

一次性丢给 AI “帮我写份简历”,得到的往往是结构合理但内容空洞的通用模板。更好的做法是把简历拆成几个部分,逐段打磨。

2.1 第一步:把经历改写成 STAR 结构

把你的原始素材逐条丢给 AI,用这个 Prompt:

我要把下面这段工作经历改写成简历里的一条 bullet point,
用 STAR 法则(Situation-Task-Action-Result)组织,
但只需要写出 Action 和 Result 部分,控制在一行以内,
动词开头,避免"负责""参与"这类弱动词,量化结果如果我没提供就留空不要编造:

原始经历:[粘贴你的流水账描述]

关键在最后一句”如果我没提供就留空不要编造”——这是防止 AI 幻觉出虚假数据的关键指令。很多人吃过亏就是因为 AI 会”善意地”帮你编一个看起来合理的数字,面试时被追问细节直接露馅。

2.2 第二步:针对目标岗位做关键词匹配

如果你已经锁定了具体的招聘 JD(Job Description),把 JD 原文和你的经历一起丢给 AI:

这是目标岗位的 JD:
[粘贴 JD 全文]

这是我的一条工作经历(已经过 STAR 改写):
[粘贴上一步的结果]

请指出:
1. 这条经历里哪些技能词和 JD 要求重合,帮我在措辞上更贴近 JD 的原词
2. JD 里提到但我这条经历没体现的关键能力,是否有其他经历可以补充体现
不要改变经历的事实,只调整措辞和强调重点。

这一步的价值是让简历里的词汇尽量和 JD 原文对齐——不是为了”骗过”筛选系统,而是因为招聘方筛简历时确实会用 JD 里的关键词做心理或系统层面的匹配,用词一致能显著提高被注意到的概率。

2.3 第三步:整体润色和精简

单条经历改好后,把整份简历草稿一起丢给 AI 做最后一轮通读:

请通读这份简历草稿,检查:
1. 各条经历之间的动词是否重复(如果多条都用"提升""优化"开头,帮我换成更多样的表达)
2. 是否有信息冗余或可以合并的条目
3. 整体篇幅是否超过一页 A4(软件工程师简历建议控制在一页,5 年以上经验可以到一页半)
不要新增没有依据的内容。

三、常见误区:这几件事 AI 帮不了你,也不该让它帮

3.1 让 AI 编造经历或夸大数据

这是最常见也最危险的误区。AI 生成内容时有天然的”填空”倾向——如果你的原始素材里没有具体数字,它很可能自己编一个看起来合理的百分比。任何数字类描述,都要回头核实是不是你自己提供的原始信息,面试环节被追问细节答不上来,比简历平淡更致命。

3.2 千篇一律的”AI 味”措辞

如果你发现简历里反复出现”赋能""抓手""闭环""高质量完成”这类空洞词汇,大概率是 AI 默认风格的产物。解决办法很简单:在 Prompt 里明确要求”避免使用抽象的管理黑话,用具体的技术动作描述”,效果立竿见影。

3.3 完全照搬 AI 生成的自我评价段落

“自我评价”这一段是重灾区,AI 写出来的往往是任何人都能套用的正确废话(“具备较强的学习能力和团队协作精神”)。这段建议要么删掉(对技术岗位来说价值不大),要么让 AI 基于你简历里已有的具体经历,反推出 2-3 句真正有区分度的总结,而不是泛泛而谈。

四、ATS 关键词优化:机器筛选这一关怎么过

不少公司的招聘流程里有 ATS(Applicant Tracking System,申请人跟踪系统)做第一轮自动筛选,用关键词匹配决定简历是否进入人工阅读。优化要点:

检查项说明
关键词覆盖JD 里反复出现的技术名词(如具体的编程语言、框架、方法论)尽量在简历里原词出现,而不是用同义词替代
格式简洁避免用表格、文本框、图标承载关键信息,部分 ATS 解析不了这些元素,会导致信息丢失
文件格式优先投递 PDF(保证排版不错乱),除非 JD 明确要求 Word 格式
标准化标题用”工作经历""教育背景""技能”这类标准标题,不要用有创意但 ATS 识别不了的自定义标题

可以让 AI 帮你做最后的 ATS 检查:把 JD 和简历一起丢给它,让它列出 JD 中出现但简历里缺失的高频关键词,你再判断这些词是否真实适用于你的经历。

五、如果你想批量投递不同岗位:用 API 自动化这套流程

如果你在同时投递多个方向的岗位(比如既投后端也投算法岗),针对每个 JD 手动走一遍上面的流程会很耗时。这种场景其实可以用 API 脚本化:把”STAR 改写""关键词匹配""ATS 检查”这三步分别做成三个 Prompt 模板,写一个小脚本批量调用模型 API,针对不同 JD 自动生成对应版本的简历草稿,你只需要人工做最后的事实核对和微调。

import openai

def tailor_resume_bullet(raw_experience, jd_text):
    prompt = f"""
    这是目标岗位 JD:{jd_text}
    这是我的工作经历:{raw_experience}
    请按 STAR 法则改写,贴近 JD 用词,不要编造数据。
    """
    response = openai.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": prompt}],
    )
    return response.choices[0].message.content

这类小工具国内直接调用 OpenAI/Claude 官方 API 经常遇到网络不通或者 Key 无法直接支付的问题,用 YoTradeApi 这样的 API 中转可以省去这部分折腾,专注在 Prompt 逻辑本身。关于国内开发者接入这类 AI 工具的付款和网络问题,也可以参考 国内开发者 AI 工具付款全攻略

六、最后一步:人工通读,找回”你的声音”

AI 改写完的简历,投递前一定要自己完整读一遍,确认:

  • 每一句描述你都能在面试时脱口而出具体细节,没有任何”AI 编的部分”
  • 整体语气和你本人的表达习惯不会差异过大(面试时反差太大会显得简历不真实)
  • 没有遗漏你认为最重要但 AI 判断”不够亮眼”而删掉的经历

AI 是很好的编辑和润色工具,但简历最终代表的是你自己,最后的把关必须由你来做。

七、相关阅读

如果你想把这套简历改写流程自动化成批量处理脚本,用 YoTradeApi 中转调用 OpenAI/Claude API 可以免去国内网络和支付的折腾,专注打磨 Prompt。