← 返回
未分类

求职助手

求职助手:帮助用户生成/优化简历,基于简历推荐匹配的岗位,提供就业指导与求职策略分析,并支持模拟面试。整合简历撰写、岗位搜索、就业指导和模拟面试四大功能,提供从简历制作到面试准备的完整求职支持。
求职助手:帮助用户生成/优化简历,基于简历推荐匹配的岗位,提供就业指导与求职策略分析,并支持模拟面试。整合简历撰写、岗位搜索、就业指导和模拟面试四大功能,提供从简历制作到面试准备的完整求职支持。
AI小宇宙-知识星球
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 1
Stars
📥 72
下载
💾 0
安装
1
版本
#latest

概述

求职助手 (job-search-assistant)

帮助用户撰写/优化简历,并基于简历推荐匹配的岗位,提供完整的求职支持。

功能概述

本 skill 提供完整的求职流程支持:

  1. 简历阶段:生成新简历或修改现有简历(支持HTML模板 + Playwright转PDF)
  2. 岗位推荐阶段:基于简历自动搜索并推荐匹配的岗位(从腾讯在线表格搜索)
  3. 就业指导阶段:针对目标公司/岗位进行公司分析、岗位解读、薪资行情、技能缺口评估和求职策略建议
  4. 模拟面试阶段:基于简历和目标岗位,进行针对性的模拟面试训练(含评分复盘)

> 数据源查询方式:岗位数据来自腾讯在线表格《2026春招表》,AI通过腾讯文档MCP工具实时查询,不依赖本地缓存。

触发条件

当用户提出以下类型的问题时,应使用此skill:

  • "帮我找找工作" / "我想找工作"
  • "帮我写一份简历" / "帮我修改简历"
  • "根据我的简历推荐一些岗位"
  • "有哪些适合我的工作机会"
  • "帮我生成简历并推荐岗位"
  • "帮我模拟面试" / "我想准备面试" / "练习一下面试"
  • "帮我做就业指导" / "分析一下这家公司" / "这个岗位怎么样"
  • "这个岗位值得投吗" / "帮我评估一下XX公司"
  • "给我一些求职策略" / "这个行业的薪资水平"

使用流程

⚠️ 使用前检查(必须执行)

在开始前,先检查工作目录是否存在旧的JSON数据文件:

  • resume_form_data.json
  • form_data_*.json
  • matched_jobs.json
  • 其他可能包含简历数据或岗位数据的JSON文件

如果发现这些文件

  • 询问用户是否需要备份
  • 建议删除或移动到其他位置
  • 避免旧数据干扰新数据生成

第一阶段:简历生成/优化

⚠️ 第一步:询问用户是否已有简历(必须执行)

在开始时,必须先询问用户:"你现在有现成的简历吗?(PDF或Word格式都可以)"

根据用户回答,进入不同流程:


场景A:用户没有简历(需要从零生成)

第二步:生成HTML表单

  • 运行 scripts/generate_form.py 生成HTML表单页面
  • 命令:python3 scripts/generate_form.py form.html
  • 在预览面板中展示表单,让用户填写
  • 表单包含以下部分:
  • 基本信息(姓名、电话、邮箱、求职意向等)
  • 教育背景(支持添加多个)
  • 工作/实习经历(支持添加多个)
  • 项目经历(支持添加多个)
  • 技能与证书
  • 自我评价

第三步:收集表单数据

  • 用户填写表单并提交
  • 表单提交后,不保存文件,而是在页面上显示JSON数据
  • 提示用户:"请复制下方JSON数据,然后粘贴发给我"
  • AI通过对话接收JSON数据

第四步:选择简历模板

  • 向用户展示3个可选模板:
  1. 简洁商务风(classic):黑白蓝配色,清晰专业,适合大多数岗位
  2. 现代卡片风(modern):渐变背景,卡片布局,时尚现代,适合互联网/创意岗位
  3. 左栏侧边风(sidebar):左侧信息栏+右侧内容区,结构清晰,适合技术岗位
    • 让用户选择一个模板

第五步:生成简历

  • 基于表单数据和用户选择的模板,生成HTML简历
  • 使用 scripts/generate_resume.py 生成HTML和PDF
  • 命令:python3 scripts/generate_resume.py data.json <模板名称> output.pdf
  • 该脚本会:
  1. 读取JSON数据
  2. 根据模板名称加载对应的HTML模板(assets/resume_template_<名称>.html
  3. 将数据填入模板,生成HTML文件
  4. 使用Playwright将HTML转为PDF
    • 生成初版简历(PDF + HTML)

第六步:提供优化版本

  • 分析初版简历,识别可改进点
  • 提供3-5个优化版本,例如:
  • 版本1:STAR法则优化工作经历
  • 版本2:量化成果,增加数据支撑
  • 版本3:调整结构,突出核心优势
  • 版本4:精简内容,提升可读性
  • 版本5:JD关键词优化(如果用户提供了招聘描述)
  • 每个版本可以选择不同的模板
  • 生成每个版本的PDF简历
  • 让用户选择最满意的版本

第七步:询问是否继续优化

  • 用户选择满意版本后,询问:"是否需要继续优化简历?"
  • 如果用户选择"是",则跳转到场景B流程(已有简历,迭代优化)
  • 如果用户选择"否",则进入第二阶段:岗位推荐

场景B:用户已有简历(需要修改优化)

第二步:上传简历

  • 让用户上传现有简历(支持PDF或DOCX格式)
  • 保存上传的文件到工作目录(例如:user_resume.pdfuser_resume.docx

第三步:解析简历(必须执行)

  • 运行解析脚本,自动识别文件格式并提取内容:

```bash

python3 scripts/parse_resume.py <用户简历文件> resume_parsed.json

```

示例:

```bash

python3 scripts/parse_resume.py 张三简历_v1.pdf resume_parsed.json

```

  • 该脚本会:
  1. 自动判断文件格式(PDF或DOCX)
  2. 尝试常规提取(pdfplumber for PDF / python-docx for DOCX)
  3. 如果常规提取失败或文本质量差,自动启用OCR模式
  4. OCR模式使用 Tesseract 识别图片中的文字(支持中文:chi_sim+eng
  5. 自动修复 OCR 识别问题(移除中文字符间的空格)
  6. 提取简历原始文本
  7. 进行基础的结构化信息提取(姓名、电话、邮箱等)
  8. 将结果保存为JSON文件(包含raw_text字段)
  • ⚠️ 如果简历是扫描版PDF,需要启用OCR模式

```bash

python3 scripts/parse_resume.py <用户简历文件> resume_parsed.json --ocr

```

或让脚本自动检测(常规提取失败时会自动启用OCR)

  • OCR 依赖安装(如果提示缺少):

```bash

# macOS

brew install tesseract

brew install tesseract-lang # 安装中文语言包

# Ubuntu/Debian

sudo apt install tesseract-ocr tesseract-ocr-chi-sim

# Windows

# 下载安装:https://github.com/UB-Mannheim/tesseract/wiki

# Python包

pip install pytesseract Pillow

```

  • AI必须读取生成的JSON文件

```python

# AI读取解析后的简历数据

with open('resume_parsed.json', 'r', encoding='utf-8') as f:

resume_data = json.load(f)

# 获取原始文本进行分析

raw_text = resume_data['raw_text']

```

第三步(关键):从raw_text完整提取结构化信息(必须执行)

⚠️ parse_resume.py 提取的结构化字段通常不完整(技能可能只有一部分、项目可能为空等)。

必须运行 convert_resume_format.py 从 raw_text 中完整提取所有信息!

python3 scripts/convert_resume_format.py resume_parsed.json resume_full.json

该脚本会从 raw_text 中提取:

  1. 完整的个人信息(姓名、电话、邮箱、求职意向、地点、语言等)
  2. 完整的技能列表(按分类:AI & Agent、AIGC & 视觉、工程开发、数据分析等)
  3. 完整的项目经历(项目名称、描述、技术栈)
  4. 完整的工作经历(公司、岗位、时间段、描述)
  5. 教育背景(学校、专业、学历)
  6. 自我评价
  7. 保留raw_text作为后备数据源

验证提取结果:脚本会输出提取的统计信息,例如:

✅ 个人信息: 张三
✅ 技能: 30 项,5 个分类
✅ 项目经历: 5 个
✅ 工作经历: 2 段
✅ 教育背景: 1 条
✅ 自我评价: 120 字
✅ 原始文本: 1800 字(已保留作为后备数据源)

⚠️ 重要resume_full.json 是后续所有操作的"数据源"。岗位匹配和简历调整都基于这个完整数据。

不要使用 resume_parsed.jsonresume_converted.json,它们的数据不完整!

  • 基于原始文本,AI分析简历内容,提取完整的结构化信息(教育背景、工作经历、项目经历、技能等)

第四步:分析并提供修改方向

  • 分析简历的优缺点
  • 提供3-5个明确的修改方向,例如:
  • 方向1:使用STAR法则重写工作经历,突出成就
  • 方向2:根据用户提供的JD,优化关键词匹配度
  • 方向3:量化工作成果,添加具体数据和指标
  • 方向4:调整简历结构,突出与目标岗位最相关的经历
  • 方向5:精简内容,将简历控制在一页内
  • 如果用户简历信息不全,通过聊天提问补充

第五步:选择简历模板

  • 向用户展示3个可选模板(同场景A第四步)
  • 让用户选择一个模板(可以为每个修改方向选择不同模板)

第六步:生成修改后的简历

  • 基于用户选择的修改方向和模板,生成修改后的HTML简历
  • 使用 scripts/generate_resume.py 生成HTML和PDF
  • 生成3-5个不同侧重点的版本供用户选择
  • 每个版本对应一个修改方向

第七步:用户确认并迭代优化

  • 展示所有版本
  • 让用户选择最满意的版本
  • 如需进一步修改,根据用户反馈继续优化(回到第三步,迭代改进)
  • 简历确认无误后,询问用户:"是否基于这份简历为你推荐匹配的岗位?"
  • 如果用户确认,则进入第二阶段:岗位推荐

第二阶段:岗位推荐(基于简历)

⚠️ 必须询问用户确认

在简历阶段完成后,必须询问用户"是否基于这份简历为你推荐匹配的岗位?"

只有当用户确认后,才能进入岗位推荐阶段。


⚠️ 前置条件:检查腾讯文档连接状态(必须执行)

在执行岗位搜索前,必须先提醒用户

> "请确保你已经在 WorkBuddy 中连接了腾讯文档(😇→设置→已连接服务→腾讯文档),否则我无法读取岗位数据。"

确认连接后,继续执行以下步骤。


第一步:从简历提取关键词(AI自行处理)

AI 直接根据简历JSON(resume_full.json)提取以下关键信息:

  • 期望城市(如:北京、上海、深圳)
  • 技能列表(如:Python、LangChain、ComfyUI)
  • 目标岗位(如:大模型架构工程师、AI应用开发工程师)
  • 工作经历中的岗位名称

关键词提取逻辑参考 extract_keywords_from_resume() 函数(在 match_resume_to_jobs.py 中)。

生成搜索查询组合:将城市+岗位、城市+技能、纯岗位、纯技能等组合成多个查询对,用于后续搜索。


第二步:AI实时查询腾讯文档表格数据(核心)

AI 通过腾讯文档 MCP 工具实时读取表格数据执行搜索,具体步骤如下:

  1. 确认表格结构

```python

# 使用 get_sheet_info 获取表格信息(file_id 已内置于 skill)

get_sheet_info(file_id="DQUZ5RUdFd2hveXJm")

# 确认子表信息

sheet_info → 子表 "2026春招表"(sheet_id: eno0p4),26列×3633行

```

  1. 分批读取数据并搜索

```python

# 先读取表头行确认列结构(row index 2,即第3行)

get_cell_data(

file_id="DQUZ5RUdFd2hveXJm",

sheet_id="eno0p4",

start_row=2, end_row=2, # 表头

start_col=0, end_col=13,

return_csv=True

)

# 然后从第4行(row index 3)开始分批读取数据

# 每次读取200行,在AI端进行关键词匹配

# 在以下列中搜索:招聘岗位(列6)、公司名称(列1)、工作地点(列8)、行业大类(列4)

搜索逻辑(参考 search_records()):

for 每批数据:

for 每条记录:

for 每个搜索关键词:

在关键列中模糊匹配(不区分大小写)

如果匹配,保留该记录

去重逻辑:

使用 (公司名称, 招聘岗位, 工作地点) 作为唯一标识去重

```

  1. 读取完所有批次后,汇总匹配结果

腾讯文档表格列结构(数据从第3行开始,第1-2行为标题行):

索引列名说明
:----::----:----
0序号记录编号
1公司名称公司全称
2批次春招/秋招
3企业性质央国企/民企/外企等
4行业大类行业分类
5招聘对象面向人群
6招聘岗位岗位名称
7网申状态招聘中/已截止
8工作地点多城市用空格分隔
9更新时间日期
10截止时间截止日期或招满即止
11官方公告公告名称或URL
12投递方式投递链接或描述
13内推码/备注备注信息

第三步:计算匹配度

AI 对匹配到的每个岗位计算匹配度分数(参考 calculate_match_score() 逻辑):

维度分数说明
------------------
城市匹配30分工作地点与期望城市一致
岗位名称匹配25分岗位名称与期望岗位相关
技能匹配25分岗位要求与简历技能匹配
公司类型/行业20分公司类型与期望行业匹配

AI 也可以使用脚本辅助计算:

# 从 match_resume_to_jobs.py 导入 calculate_match_score
# AI将读取到的数据传入脚本
python3 -c "
from match_resume_to_jobs import calculate_match_score
import json
with open('record.json') as f:
    record = json.load(f)
with open('resume_full.json') as f:
    resume = json.load(f)
score = calculate_match_score(record, resume)
print(score)
"

第四步:生成岗位推荐HTML报告

AI 收集到匹配结果后,使用 scripts/generate_job_report.py 生成HTML报告:

python3 scripts/generate_job_report.py resume_full.json matched_jobs.json report.html

该脚本会生成包含以下内容的HTML报告:

  1. 岗位列表(公司、岗位、地点、投递链接、基本信息)
  2. 推荐理由总结(专业匹配、经历匹配、城市匹配、技能匹配)
  3. 下一步建议(优先投递、备选方案、简历优化建议)

第五步:展示报告给用户

在预览面板中展示HTML报告,让用户查看推荐的岗位。


第六步(核心):为所有匹配岗位批量生成不同版本的简历

展示报告后,询问用户:"是否需要为你推荐的每个岗位分别调整简历,让每份简历都最匹配对应岗位?"

展示报告后,询问用户:"是否需要为你推荐的每个岗位分别调整简历,让每份简历都最匹配对应岗位?"

如果用户选择"是"

  1. 批量适配简历:使用 adapt_resume_to_job.py --batch 一次性为所有匹配的岗位生成对应版本
    • 命令:python3 scripts/adapt_resume_to_job.py resume_full.json matched_jobs.json --batch --output-dir ./output
    • 该脚本会为每个岗位:
  2. 保留完整简历数据(不丢失任何字段)
  3. 按岗位相关度重新排序经历、项目、技能
  4. 调整技能分类顺序
  5. 标记目标岗位信息(adapted_for 字段)
  6. 生成独立的调整后简历JSON文件
    • 输出文件命名:adjusted_resume_<公司名>.json
    • 每个版本还生成修改说明:explanation_<公司名>.md
    • 生成批量摘要:batch_adapt_summary.json(包含所有版本的概览)
    • ⚠️ 必须使用 resume_full.json(完整数据),不要用 resume_parsed.json
  1. AI深度优化(关键步骤):这是确保各版本简历"看起来不一样"的核心环节。

脚本只做了排序,AI必须做深度的内容差异化改造——核心原则是"量体裁衣,因企而异"。

⚠️ 常见Bug说明:之前出现过的问题——AI优化后5份简历读起来几乎一模一样,只是个别词有替换。这是因为没有真正做内容差异化。以下规则必须逐条执行,缺一不可。

差异化改造必须执行的8条规则:

项目排序差异化:每个公司最相关的项目必须排在第一位。不同公司的前3个项目组合必须不同。

  • 算法岗:数据分析类项目 > 工程类项目 > 综合项目
  • Agent岗:Agent平台项目 > 工作流项目 > 其他
  • 视觉岗:视觉AI项目 > 综合项目 > Agent项目

项目描述差异化:同一项目在不同公司简历中写不同的角度。例如"某智能客服Agent平台":

  • 对算法工程师:强调模型选型、意图识别准确率、多轮对话优化
  • 对Agent架构师:强调Agent编排流程、全链路设计、工具集成
  • 对视觉工程师:强调视觉理解模块集成、多模态交互能力
  • ⚠️ 不能只换一两个关键词,必须改变整个描述的切入角度

工作经历描述差异化:同一段工作经历(如"某科技公司"),为不同公司写不同的描述重点:

  • 对算法岗:强调算法优化、模型评估、推理加速
  • 对Agent岗:强调多智能体系统、工作流编排、工具集成
  • 对视觉岗:强调视觉模型训练、图像处理管线、AIGC落地
  • 对教学/培训岗:强调课程设计、学员交付、知识体系构建

自我评价完全重写:每个版本必须是全新的自我评价,从不同角度切入:

  • 不能是同一个模板换几个关键词
  • 要像"针对这家公司写的"而不是"通用模板"
  • 不同的句式结构、不同的能力维度排序

技能分类排序调整:在每个技能分类内部,把最匹配目标公司的技能移到最前面。

  • 例如对视觉岗:"视觉/AIGC"分类要排在其他分类之前,内部图像生成>视觉理解>模型微调

项目精选控制:每个版本从原简历中精选4-6个最相关的项目,不相关的剔除。

  • 不同版本保留的项目组合应不同
  • 确保简历长度适中、重点突出

教学/非技术经历差异化处理

  • 面向技术开发岗位:教学/非技术经历压缩到1-2条简明描述即可
  • 面向讲师/培训/运营岗位:保留详细描述,突出教学或运营能力

求职意向调整:每个版本的 job_intention 字段必须是对应公司的目标岗位全称,不能所有版本都用同一个意向。

执行后的自检标准(必须逐项验证)

  • [ ] 随机对比两个版本的简历,读起来感觉像是"写给不同公司"的
  • [ ] 前3个项目的排序组合在不同版本中不同
  • [ ] 同一段工作经历在不同版本中的描述角度不同
  • [ ] 自我评价的内容和切入角度不同
  • [ ] 每个版本的JD侧重点(项目强调什么、压缩什么)有明显差异

如果自检发现"只是同义词替换",必须重新改。

  • 优化完成后,为每个版本生成一份 explanation_<公司名>.md,说明:该版本改了哪些内容、突出了什么、压缩了什么
  • 将优化后的完整简历数据保存回对应的JSON文件
  1. 修改说明(新增):每个版本优化完成后,必须生成一份清晰的修改说明并存为 explanation_<公司名>.md,说明该版本修改了哪些内容、为什么要这么修改。这份说明也应该展示给用户看。

修改说明模板(以下内容必须逐条填写):

```markdown

# 简历修改说明 - {公司名}

## 目标岗位

  • 岗位:{目标岗位名称}
  • 公司:{公司名称}
  • 工作地点:{城市}

## 为什么这么修改

这家公司的岗位要求是{核心要求},因此我的简历做了以下针对性调整:

## 修改了哪些内容

### 1. 项目排序调整

  • 调整前:{原来的项目排序}
  • 调整后:{修改后的项目排序}
  • 为什么:因为该岗位最看重{某方面能力},所以把{某项目}放到最前面

### 2. 项目描述角度调整

  • {项目A}:原来侧重{旧角度},改为侧重{新角度}
  • {项目B}:原来侧重{旧角度},改为侧重{新角度}
  • 为什么:这样能更好地体现{公司/岗位最看重的技能}

### 3. 工作经历描述调整

  • {公司A/岗位} 描述从{旧侧重}调整为{新侧重}
  • 为什么:因为该岗位要求{能力维度},而这些描述突出了这方面的能力

### 4. 自我评价重写

  • 从原来的"{旧自我评价核心}"调整为"{新自我评价核心}"
  • 为什么:新版本突出了该岗位最需要{某能力描述}

### 5. 项目精选

  • 移除了{不相关项目},保留了{精选项目列表}
  • 为什么:保留的项目与岗位的{关键要求}直接相关

### 6. 技能排序调整

  • {某技能类别}被调整到前面,内部{核心技能}提到最前
  • 为什么:这些技能是该岗位JD中最核心的要求

```

在向用户交付PDF时,同时展示这份修改说明,让用户清楚知道每份简历做了哪些针对性调整。

  1. 批量生成PDF:使用 scripts/generate_resume.py 为每个版本生成PDF
    • 命令:python3 scripts/generate_resume.py adjusted_resume_<公司名>.json <模板名称> adjusted_resume_<公司名>.pdf
    • 可以批量执行:遍历 batch_adapt_summary.json 中的每个条目,逐个生成PDF
  1. 展示结果:向用户展示所有生成的简历版本
    • 列出所有版本:公司名、岗位名、PDF文件名
    • 提示用户:每份简历都是针对对应公司/岗位定制的
    • 只提供PDF给用户(不展示HTML,除非用户要求)
  1. 用户选择和迭代:询问用户:"对哪些版本的简历需要进一步调整?"
    • 如果需要调整某个版本:根据用户反馈修改对应的JSON,重新生成PDF
    • 如果满意:提醒用户及时投递简历

如果用户选择"否"

  • 结束流程
  • 提醒用户及时投递简历
  • 可以提供进一步的面试准备建议(如果用户需要)

新增脚本功能说明

scripts/job_jd_templates.py - JD推断模板

  • 功能:根据岗位名称推断该岗位的常见要求
  • 用法:被 adapt_resume_to_job.py 调用
  • 包含内容
  • 常见岗位的JD模板(AI算法工程师、大模型应用开发工程师、Python开发工程师等)
  • 每个模板包含:关键词、经历重点、技能优先级、自我评价关键词、岗位描述
  • 行业关键词映射(用于根据公司行业微调JD)
  • 匹配逻辑
  • 先尝试精确匹配岗位名称
  • 如果没匹配到,尝试模糊匹配(包含关键词)
  • 如果还是没匹配到,使用默认模板

scripts/adapt_resume_to_job.py - 根据岗位调整简历

  • 功能:根据岗位信息调整简历内容,使其更符合该岗位的要求
  • 用法python3 scripts/adapt_resume_to_job.py <原始简历JSON> <岗位数据JSON> <输出简历JSON> [--explain 输出说明文件]
  • 输入
  • 原始简历JSON文件
  • 岗位数据JSON文件(从 matched_jobs.json 中获取某个岗位的数据)
  • 可选:JD文本文件(如果用户能提供)
  • 输出
  • 调整后的简历JSON文件
  • 修改说明文件(可选)
  • 核心逻辑
  1. 提取岗位关键信息(岗位名称、公司行业等)
  2. 推断JD要求(使用 job_jd_templates.py
  3. 调整简历内容:
    • 经历排序:把与岗位最相关的经历放在前面
    • 技能排序:把JD要求的技能放在技能列表的前面
    • 关键词优化:在经历描述中适当增加JD关键词(不添加虚假内容)
  4. 生成修改说明
    • 重要原则
    • 不捏造经历:所有调整基于用户提供的真实信息
    • 不过度优化:调整要自然,不能生硬堆砌关键词
    • 保持可读性:调整后的简历仍然要清晰易读

根据用户回答,提供选项:

  • 如果用户不满意
  • 选项1:修改简历 → 回到第一阶段,重新优化简历
  • 选项2:调整搜索条件重新搜索 → 让用户指定新的搜索条件,重新搜索
  • 选项3:就业指导 → 不调整岗位,先听求职策略建议(进入第四阶段)
  • 选项4:直接模拟面试 → 先练习面试,后续再优化(进入第三阶段)
  • 如果用户满意
  • 选项1:就业指导 → 针对满意岗位进行公司分析、薪资策略、技能评估(推荐,进入第四阶段)
  • 选项2:模拟面试训练 → 针对满意岗位进行模拟面试(进入第三阶段)
  • 选项3:结束流程,提醒用户及时投递简历
  • 或者在第二阶段完成后询问:"要不要针对这家公司做一下就业指导,了解一下发展前景和薪资行情?"

简历生成规则

简历结构(推荐顺序)

  1. 个人信息
    • 姓名、电话、邮箱、求职意向城市
    • 可选:GitHub、个人网站、LinkedIn
  1. 教育背景(时间倒序)
    • 学校、专业、学历、毕业时间
    • 可选:GPA、相关课程、荣誉奖项
  1. 工作/实习经历(时间倒序)
    • 公司名称、岗位、时间段
    • 工作描述(使用STAR法则,量化成果)
    • 每段经历2-4条bullet point
  1. 项目经历(时间倒序)
    • 项目名称、角色、时间段
    • 项目描述(突出技术栈、个人贡献、项目成果)
    • 量化项目影响(用户量、性能提升等)
  1. 专业技能
    • 编程语言、框架、工具
    • 按熟练度分类(精通/熟练/了解)
  1. 奖项/证书(可选)
    • 奖学金、竞赛奖项、专业证书
  1. 自我评价(可选)
    • 2-3句话总结核心优势

写作原则

  • STAR法则:Situation(情境)、Task(任务)、Action(行动)、Result(结果)
  • 量化成果:尽可能使用数字、百分比、金额等量化指标
  • 动词开头:每条bullet point以动词开头(如"开发"、"优化"、"主导")
  • 关键词优化:如用户提供JD,将JD中的关键词自然融入简历
  • 不捏造经历:所有优化基于用户提供的真实信息

格式要求

  • 简历长度:应届生1页,社招可根据情况1-2页
  • 字体:使用常规字体(如微软雅黑、宋体)
  • 时间格式:统一使用"2023.06 - 2024.09"格式
  • 手机号格式:+86 138-xxxx-xxxx 或 138 xxxx xxxx
  • 邮箱:使用专业地址,避免非主流邮箱

岗位推荐规则

搜索策略

  1. 多次搜索:根据简历提取的关键词,生成多个搜索查询组合
  2. 去重:合并搜索结果,去除重复的岗位
  3. 匹配度评分:基于城市、岗位、技能、公司类型等维度计算匹配度
  4. 排序:按匹配度分数从高到低排序
  5. 推荐数量:推荐5-10个岗位

匹配度评分标准

维度分数说明
------------------
城市匹配30分工作地点与期望城市一致
岗位名称匹配25分岗位名称与期望岗位相关
技能匹配25分岗位要求与简历技能匹配
公司类型/行业20分公司类型与期望行业匹配

报告内容

  1. 岗位列表
    • 公司名称、岗位名称、工作地点
    • 招聘类型、截止日期、是否免笔试
    • 投递链接(优先)或公告链接
  1. 推荐理由总结
    • 专业匹配:简历专业与岗位要求的匹配情况
    • 经历匹配:工作/项目经历与岗位的匹配情况
    • 城市匹配:期望城市与岗位地点的匹配情况
    • 技能匹配:简历技能与岗位要求的匹配情况
  1. 下一步建议
    • 优先投递:建议优先投递的岗位
    • 备选方案:其他可考虑的岗位或方案
    • 简历优化建议:进一步提高匹配度的建议

环境要求与依赖

运行环境

  • Python 3.8+(必须)— 所有脚本均使用 Python 编写
  • Node.js(可选,仅生成PDF时需要 Playwright)

第三方 Python 包

以下包按功能分类,按需安装(不需要全部装):

功能依赖安装命令
---------------------
HTML→PDF 转换(简历/报告)Playwrightpip install playwright && playwright install chromium
解析 PDF 简历(常规模式)PyMuPDFpip install PyMuPDF
解析 PDF 简历(扫描件 OCR 模式)pytesseract + Pillowpip install pytesseract Pillow
解析 DOCX 简历python-docxpip install python-docx

系统级依赖

  • OCR 模式(仅解析扫描版PDF时需要):
  • macOS:brew install tesseract tesseract-lang
  • Ubuntu/Debian:sudo apt install tesseract-ocr tesseract-ocr-chi-sim
  • Windows:下载安装 https://github.com/UB-Mannheim/tesseract/wiki

WorkBuddy 连接要求

  • 腾讯文档:必须连接(用于搜索岗位数据)
  • 路径:😇→设置→已连接服务→腾讯文档

> ⚠️ 所有第三方依赖均为懒加载(使用时才检查),即使未安装也不会影响脚本加载,只在调用对应功能时报错并提示安装。


脚本功能说明

本 skill 包含以下脚本,每个脚本都有明确的功能:

scripts/generate_form.py - 生成HTML表单

  • 功能:生成一个HTML表单页面,用于收集用户简历信息
  • 用法python3 scripts/generate_form.py <输出文件.html>
  • 输出:HTML表单文件,用户可在浏览器中填写
  • 适用场景:场景A(用户无简历,需要从零生成)

scripts/form_server.py - 本地表单服务器(备用)

  • 功能:启动一个本地HTTP服务器,用于展示表单并接收提交的数据
  • 用法python3 scripts/form_server.py
  • 说明:当前版本不依赖此脚本,表单数据通过JSON复制粘贴方式传递

scripts/parse_resume.py - 解析上传的简历

  • 功能:解析PDF或DOCX格式的简历文件,提取结构化信息
  • 用法python3 scripts/parse_resume.py <简历文件> <输出.json> [--ocr]
  • 支持格式:PDF(pdfplumber / OCR)、DOCX(python-docx)
  • OCR模式:添加 --ocr 参数可强制使用OCR解析扫描版PDF
  • 输出:JSON文件,包含raw_text(原始文本)和基础结构化信息
  • 适用场景:场景B(用户已有简历,需要修改优化)

scripts/generate_resume.py - 生成HTML简历并转为PDF

  • 功能:基于JSON数据和选定的模板,生成HTML简历,并使用Playwright转为PDF
  • 用法python3 scripts/generate_resume.py <数据.json> <模板名称> <输出.pdf>
  • 支持模板:classic(简洁商务风)、modern(现代卡片风)、sidebar(左栏侧边风)
  • 依赖:需要安装Playwright(pip install playwright && playwright install chromium
  • 输出:PDF文件 + HTML文件
  • 适用场景:场景A和场景B的简历生成阶段

scripts/generate_resume_simple.py - 简化版简历生成器(备用)

  • 功能:简化版的简历生成脚本,直接生成HTML + PDF,不依赖Playwright
  • 用法python3 scripts/generate_resume_simple.py <数据.json> <输出.pdf>
  • 说明:作为 generate_resume.py 的备用方案,当Playwright不可用时使用

scripts/match_resume_to_jobs.py - 基于简历匹配岗位

  • 功能:从简历JSON中提取关键词并计算岗位匹配度
  • 用法:作为辅助工具使用,AI读取数据后传入脚本计算匹配度
  • 核心函数
  • extract_keywords_from_resume(resume_json) - 从简历提取关键词
  • generate_search_queries(keywords) - 生成搜索查询组合
  • calculate_match_score(record, resume_json) - 计算单条记录的匹配度(纯函数)
  • 注意:岗位数据由AI通过腾讯文档MCP工具实时读取后传入,脚本不直接加载数据

scripts/search_and_generate.py - 腾讯在线表格搜索与HTML报告生成

  • 功能:搜索岗位数据并生成HTML报告
  • 数据源:通过get_cell_data MCP工具从腾讯在线表格实时读取
  • 核心函数(AI可直接调用):
  • search_records(records, keywords, search_mode='AND') - 在记录列表中搜索
  • generate_html_report(results, keywords, output_file) - 生成HTML报告
  • get_apply_link(record) - 提取投递链接

scripts/generate_job_report.py - 生成岗位推荐HTML报告

  • 功能:基于简历和匹配的岗位数据(来自腾讯在线表格),生成美观的HTML推荐报告
  • 用法python3 scripts/generate_job_report.py <简历.json> <匹配岗位.json> <输出.html>
  • 数据源:岗位数据来自腾讯在线表格(2026春招表)
  • 输出:HTML报告,包含岗位列表、推荐理由、下一步建议
  • 适用场景:第二阶段(岗位推荐)

scripts/job_jd_templates.py - JD推断模板(新增)

  • 功能:根据岗位名称推断该岗位的常见要求
  • 用法:被 adapt_resume_to_job.py 调用
  • 包含内容
  • 常见岗位的JD模板(AI算法工程师、大模型应用开发工程师、Python开发工程师等12个岗位)
  • 每个模板包含:关键词、经历重点、技能优先级、自我评价关键词、岗位描述
  • 行业关键词映射(用于根据公司行业微调JD)
  • 匹配逻辑
  • 先尝试精确匹配岗位名称
  • 如果没匹配到,尝试模糊匹配(包含关键词)
  • 如果还是没匹配到,使用默认模板
  • 适用场景:新增的"简历自适应调整"功能

scripts/adapt_resume_to_job.py - 根据岗位调整简历(支持批量)

  • 功能:根据岗位信息调整简历内容,使其更符合该岗位的要求。支持单个适配和批量适配两种模式。
  • 用法
  • 单个适配:python3 scripts/adapt_resume_to_job.py <原始简历JSON> <岗位数据JSON> <输出简历JSON> [--explain 说明文件] [--job-index N]
  • 批量适配:python3 scripts/adapt_resume_to_job.py <原始简历JSON> <岗位数据JSON> --batch [--output-dir 输出目录]
  • 输入
  • 原始简历JSON文件(必须使用 resume_full.json
  • 岗位数据JSON文件(matched_jobs.json 或单个岗位JSON)
  • --job-index N:指定岗位列表中的第N+1个岗位(从0开始,仅单个模式)
  • --batch:批量模式,为所有匹配岗位分别生成对应版本的简历
  • --output-dir:批量模式的输出目录(默认当前目录)
  • 输出
  • 单个模式:调整后的完整简历JSON文件 + 修改说明文件(可选)
  • 批量模式:
  • adjusted_resume_<公司名>.json:每个岗位对应一份调整后的简历JSON
  • explanation_<公司名>.md:每个岗位对应的修改说明
  • batch_adapt_summary.json:批量处理摘要(包含所有版本的概览:公司、岗位、匹配度、数据完整性等)
  • 核心逻辑
  1. 读取完整的简历数据(包括 raw_text)
  2. 提取岗位信息(岗位名称、公司、行业、地点、投递链接)
  3. 推断JD要求(使用 job_jd_templates.py
  4. 按相关度重新排序经历、项目、技能
  5. 调整技能分类顺序
  6. 标记目标岗位信息(adapted_for 字段)
  7. 验证数据完整性(经历、项目、技能数量不变)
    • 重要原则
    • 不丢失数据:调整后的简历保留所有原始数据
    • 只做排序:脚本只做排序调整,不改写描述内容
    • AI深度优化:描述改写、关键词优化由AI在运行时完成
    • 批量一致性:批量模式确保每个版本的数据完整性
    • ⚠️ 后续步骤:脚本调整后,AI需要进一步优化简历描述(关键词优化、描述改写、自我评价调整等),然后使用 generate_resume.py 生成PDF
    • 适用场景:岗位推荐后,为每个匹配岗位生成定制版简历
    • 适用场景:新增的"简历自适应调整"功能

scripts/convert_resume_format.py - 简历格式转换(重写版)

  • 功能:从 parse_resume.py 的 raw_text 中完整提取结构化信息,生成 generate_resume.pymatch_resume_to_jobs.py 需要的格式
  • 用法python3 scripts/convert_resume_format.py <输入.json> <输出.json>
  • 输入parse_resume.py生成的简历JSON文件(必须包含 raw_text 字段)
  • 输出:完整的结构化简历JSON文件(resume_full.json),包含:
  • personal:完整的个人信息(姓名、电话、邮箱、求职意向、地点、语言、生日等)
  • skills_by_category:按分类的技能列表(AI & Agent、AIGC & 视觉、工程开发、数据分析等)
  • skills:扁平化的全部技能列表
  • projects:完整的项目经历(项目名称、描述、技术栈)
  • experiences:完整的工作经历(公司、岗位、时间段、描述)
  • education:教育背景
  • self_evaluation:自我评价
  • raw_text:原始文本(保留作为后备数据源)
  • 核心改进
  • 从 raw_text 中提取完整信息,不再丢失数据
  • 技能按分类提取
  • 项目经历提取技术栈
  • 验证提取结果完整性
  • ⚠️ 重要:场景B中解析简历后必须运行此脚本,输出的 resume_full.json 是后续所有操作的数据源
  • 适用场景:场景B(用户已有简历)中,解析简历后、匹配岗位前的格式转换

数据源说明

本 skill 的岗位搜索数据来自腾讯在线表格,AI 通过腾讯文档 MCP 工具实时查询:

  • 表格链接:https://docs.qq.com/sheet/DQUZ5RUdFd2hveXJm?tab=eno0p4(已内置于 skill,用户无需提供)
  • 子表名称:2026春招表(约3600+条记录)
  • 数据格式:纯文本(14列:公司名称、招聘岗位、工作地点、行业大类等)
  • file_idDQUZ5RUdFd2hveXJm(调 MCP 工具时使用)
  • sheet_ideno0p4(2026春招表的子表ID)
  • 查询方式:通过 get_cell_data MCP 工具分批读取数据,在AI端进行搜索匹配
  • 数据时效性:实时读取,无需本地缓存(每次执行岗位搜索时直接从腾讯文档读取最新数据)
  • 注意事项
  • ⚠️ 必须提醒用户:确保腾讯文档已连接(😇→设置→已连接服务→腾讯文档),否则无法读取数据
  • 可以搜索其他子表(如"2026秋招表" sheet_id:BB08J2、"2026企业内推" sheet_id:697ld1)
  • 腾讯文档表格由第三方维护,数据量可能变化
  • 列索引基于0,表头在第3行(row index 2)

文件结构

job-search-assistant/
├── SKILL.md                              # Skill说明文档(本文件)
├── scripts/
│   ├── generate_form.py                  # 生成HTML表单脚本
│   ├── parse_resume.py                  # 解析上传的简历(PDF/DOCX)
│   ├── generate_resume.py               # 生成HTML简历并转为PDF
│   ├── search_and_generate.py           # 腾讯在线表格搜索与HTML报告生成
│   ├── match_resume_to_jobs.py          # 基于简历匹配岗位(接受外部数据)
│   ├── generate_job_report.py           # 生成岗位推荐HTML报告
│   ├── job_jd_templates.py             # JD推断模板
│   ├── adapt_resume_to_job.py          # 根据岗位调整简历
│   └── convert_resume_format.py        # 简历格式转换
├── assets/
│   ├── form_template.html                # HTML表单模板
│   ├── resume_template_classic.html     # 简历HTML模板 - 简洁商务风
│   ├── resume_template_modern.html      # 简历HTML模板 - 现代卡片风
│   ├── resume_template_sidebar.html     # 简历HTML模板 - 左栏侧边风
│   └── job_report_template.html         # 岗位推荐报告HTML模板
└── references/
    ├── questions.md                      # 表单问题列表(备用)
    ├── data_format.md                   # 腾讯在线表格数据格式说明
    ├── field_mapping.json              # 腾讯在线表格列名定义
    └── option_mapping.json             # 腾讯在线表格常见值参考

第四阶段:就业指导

本阶段在岗位推荐完成之后、模拟面试之前执行。针对用户选定的公司/岗位,分析公司背景、岗位解读、薪资行情、技能缺口,并给出求职策略建议。

触发方式(二选一)

  • 流程内触发:第二阶段(岗位推荐)完成后,询问用户是否想做就业指导。如果用户选择"是",进入本阶段
  • 独立触发:用户直接说"帮我做就业指导"、"分析一下这家公司"、"这个岗位怎么样"等,自动进入本阶段

前置条件

⚠️ 进入就业指导前,必须确认已有目标公司/岗位(如用户从推荐列表中选中了某家)。如用户没有目标,可以先帮用户分析简历适合什么方向,再推荐具体公司。

就业指导流程(两步走)

第一步:AI生成公司/岗位分析报告

用户选定公司/岗位后,AI基于自身知识和网络搜索能力,生成一份简要的分析报告,包含以下内容:

  1. 公司背景与业务分析
    • 公司主营业务和市场地位
    • 所在行业的发展阶段和趋势
    • 公司的技术栈偏好和用人风格(如适用)
  1. 岗位要求深度解读
    • 岗位职责的核心要点拆解
    • 隐性要求分析(简历中没有明写但实际看重的)
    • 与用户现有能力的匹配度评估
  1. 薪资水平与行情参考
    • 该岗位在目标城市的薪资范围(初级/中级/高级)
    • 薪资构成说明(固定薪资、绩效、股票/期权等)
    • 行业平均水平对比
  1. 发展前景与成长路径
    • 该岗位的职业发展天花板和发展方向
    • 建议的技能进阶路径
    • 跳槽/晋升的常见节奏
  1. 技能缺口分析
    • 用户现有技能与岗位要求的差距
    • 建议优先补充的技能清单
    • 学习资源和路径建议
  1. 投递策略建议
    • 建议的投递时机和渠道
    • 简历优化方向(补充说明)
    • 面试准备重点方向

> 报告格式:以清晰的Markdown结构呈现,用粗体突出关键结论,适当使用项目符号。避免长篇大论,控制在500-800字以内。

第二步:问答对话

报告展示后,进入问答环节:

  • 询问用户:"对这份分析有什么疑问吗?比如薪资、发展、技能方面,或者想了解其他公司?"
  • 用户可自由提问,AI基于调研和分析给出回答
  • 如果用户想换一家公司/岗位分析,可以回到第一步

与第三阶段的关系

就业指导完成后,询问用户:"要不要针对这家公司/岗位来一场模拟面试?"

  • 如果用户选择"是" → 进入第三阶段:模拟面试
  • 如果用户选择"否" → 结束流程,提醒用户及时投递简历

第三阶段:模拟面试

本阶段在简历优化和岗位推荐完成后执行。模拟面试会根据用户的简历、目标公司/岗位的JD,生成针对性的面试题。

触发方式(三种)

  • 流程内触发①:第二阶段(岗位推荐)完成后,进入第四阶段(就业指导),就业指导完成后进入本阶段
  • 流程内触发②:第二阶段(岗位推荐)完成后,用户直接选择模拟面试
  • 独立触发:用户直接说"帮我模拟面试"、"我想准备面试"、"练习一下面试"等,自动进入本阶段

前置条件(必须执行)

⚠️ 执行模拟面试前,必须先确认是否有用户的简历数据。判断逻辑:

  1. 已有简历数据(如 resume_full.json 存在):直接进入面试
  2. 已有岗位数据(如 matched_jobs.json 存在或用户指定了公司/岗位):结合简历+岗位信息出题
  3. 没有任何数据:必须先引导用户完成简历收集(参考第一阶段),再进入面试
  4. 有简历但无目标岗位:结合简历内容,先帮用户分析适合的方向,再出通用面试题

面试流程(简化版)

面试采用一问一答的真实面试节奏:我提问 → 用户回答 → 我点评并给出下一题,每次只出一题。

面试环节(共5轮):

轮次环节时长说明
:----::----:----:------
自我介绍~2分钟"请简单介绍一下自己,重点说说为什么适合这个岗位"
技术问题 × 2~5分钟根据用户技能栈和JD出题(Agent/RAG/AIGC/工程等方向)
项目深挖 × 1~3分钟从简历中挑出与目标岗位最相关的项目,追问技术细节和个人贡献
行为问题 × 1~3分钟STAR问题(如"讲一次解决过的技术难题"、"最有成就感的事")
反问环节~2分钟"你有什么想问我的吗?"

出题原则

  • 技术题:基于用户简历中的技能栈(Skills)和目标公司的JD要求
  • 项目题:从用户的项目经历(Projects)中选取与目标岗位最相关的1个
  • 行为题:通用STAR问题 + 根据工作经历做适当调整
  • 反问建议:基于目标公司调研结果,推荐有深度的问题

复盘评分卡

面试结束后,生成面试复盘评分卡,输出格式如下:

════════════════════════════════════════
        📋 面试复盘评分卡
════════════════════════════════════════
目标公司:{公司名称}
目标岗位:{岗位名称}

面试表现:
  技术理解:        7/10
  项目表达:        8/10
  逻辑沟通:        7/10
  岗位匹配:        6/10
  综合印象:        7/10
───────────────────────────────────
综合得分:         7/10

💪 优势:
  1. XXX
  2. XXX

🔧 改进建议:
  1. XXX
  2. XXX

📚 复习方向:
  1. XXX
  2. XXX
════════════════════════════════════════

评分卡基于面试过程中的回答质量动态生成,不生成PDF,直接在聊天对话中展示。

迭代优化

评分卡展示后,询问用户:

  • "要不要针对薄弱环节再加练一轮?"
  • "想换个公司/岗位再练一次吗?"
  • "哪里觉得不满意,我帮你调整?"

示例对话

示例1:完整流程(无简历 → 生成简历 → 推荐岗位)

用户:"帮我找找工作"

AI:"好的!我来帮你。你现在有现成的简历吗?(PDF或Word格式都可以)"

用户:"没有,我是应届生,还没写过简历"

执行步骤

  1. (确认无简历)运行 scripts/generate_form.py 生成HTML表单
  2. 在预览面板展示表单,用户填写
  3. 用户提交表单,页面显示JSON数据
  4. 用户复制JSON数据并粘贴给AI
  5. AI询问用户选择简历模板(展示3个模板)
  6. 用户选择模板
  7. 基于表单数据和选择的模板,生成初版HTML简历
  8. 使用Playwright将HTML转为PDF
  9. 提供3-5个优化版本(每个版本可选择不同模板)
  10. 用户选择最满意的版本
  11. 询问用户:"是否基于这份简历为你推荐匹配的岗位?"
  12. (用户确认后) 使用 scripts/match_resume_to_jobs.py 从简历提取关键词并搜索匹配岗位
  13. 使用 scripts/generate_job_report.py 生成岗位推荐HTML报告
  14. 在预览面板展示报告
  15. 询问用户:"对推荐结果满意吗?"
  16. 根据用户反馈决定下一步

示例2:有简历(修改优化 → 推荐岗位)

用户:"我有一份简历,帮我优化一下,然后根据简历推荐一些岗位"

AI:"好的!请上传你的简历(PDF或Word格式),我帮你优化,然后根据优化后的简历为你推荐匹配的岗位。"

执行步骤

  1. 让用户上传简历文件
  2. 解析简历内容(PDF用pdf skill,DOCX用docx skill)
  3. 分析并提供3-5个修改方向
  4. 用户选择修改方向
  5. 询问用户选择简历模板(展示3个模板)
  6. 基于用户选择的修改方向和模板,生成修改后的HTML简历
  7. 使用Playwright将HTML转为PDF
  8. 生成3-5个不同侧重点的版本(对应不同修改方向)
  9. 展示所有版本,让用户选择
  10. 如需进一步修改,根据用户反馈继续优化(迭代改进)
  11. 询问用户:"是否基于这份简历为你推荐匹配的岗位?"
  12. (用户确认后) 进入岗位推荐阶段

示例3:仅推荐岗位(已有简历且满意)

用户:"我有一份简历,帮我推荐一些适合的岗位"

AI:"好的!请上传你的简历(PDF或Word格式),我会基于你的简历为你推荐匹配的岗位。"

执行步骤

  1. 让用户上传简历文件
  2. 解析简历内容,提取结构化信息(JSON格式)
  3. 询问用户确认:"这是你的简历信息,是否准确?是否需要修改?"
  4. (用户确认无误后) 使用 scripts/match_resume_to_jobs.py 从简历提取关键词并搜索匹配岗位
  5. 使用 scripts/generate_job_report.py 生成岗位推荐HTML报告
  6. 在预览面板展示报告
  7. 询问用户:"对推荐结果满意吗?"
  8. 如果用户不满意,提供选项:修改简历 / 调整搜索条件重新搜索

示例4:推荐岗位后批量生成多版本简历(核心功能)

用户:"帮我推荐一些岗位,然后根据岗位调整我的简历"

AI:"好的!请上传你的简历(PDF或Word格式),我会为你推荐匹配的岗位,然后为每个岗位分别生成定制版简历。"

执行步骤

  1. 让用户上传简历文件
  2. 解析简历内容,运行 convert_resume_format.py 提取完整结构化信息
  3. 使用 scripts/match_resume_to_jobs.py 从简历提取关键词并搜索匹配岗位(5-10个)
  4. 使用 scripts/generate_job_report.py 生成岗位推荐HTML报告
  5. 在预览面板展示报告
  6. 询问用户:"是否需要为你推荐的每个岗位分别调整简历,让每份简历都最匹配对应岗位?"
  7. (用户选择"是") 运行批量适配:

```bash

python3 scripts/adapt_resume_to_job.py resume_full.json matched_jobs.json --batch --output-dir ./output

```

  1. AI对每个版本进行深度内容差异化改造(按"差异化改造8条规则"逐条执行,包括项目排序/描述差异化、工作经历角度差异、自我评价完全重写、项目精选等),确保每份简历读起来明显是"写给不同公司的"
  2. 批量生成PDF:遍历每个调整后的JSON,使用 generate_resume.py 生成PDF
  3. 展示所有版本:公司名、岗位名、PDF文件名
  4. 只提供PDF给用户(不展示HTML,除非用户要求)
  5. 询问用户:"对哪些版本的简历需要进一步调整?"
    • 如果需要调整某个版本:根据用户反馈修改对应的JSON,重新生成PDF
    • 如果满意:提醒用户及时投递简历

示例对话

AI:"这是为你推荐的5个岗位(展示报告)。是否需要为你推荐的每个岗位分别调整简历?"

用户:"好的,帮我每个岗位都调整一下"

AI:"好的!我正在为5个岗位分别生成定制版简历...

   ✅ 批量适配完成!共生成 5 个版本:

   | 序号 | 公司          | 岗位                  | 匹配度 |
   |------|---------------|----------------------|--------|
   | 1    | 某科技公司     | AI算法工程师          | 85分   |
   | 2    | 某互联网公司   | 大模型应用开发工程师   | 80分   |
   | 3    | 某数据公司     | Python开发工程师      | 75分   |
   | 4    | ...           | ...                  | ...    |
   | 5    | ...           | ...                  | ...    |

   现在我对每份简历进行深度内容差异化改造——按每家公司JD要求,重新排序项目、改写描述角度、完全重写自我评价,确保每份简历读起来明显不同...
   
   ✅ 全部优化完成!5份定制版简历已生成PDF。
   
   | 版本 | 项目侧重点 | 自我评价角度 | 擅长方向 |
   |------|-----------|-------------|---------|
   | 某科技公司-AI算法 | 数据分析 > 工程 > 视觉 | 算法工程能力 | LLM/RAG/Agent |
   | 某互联网公司-Agent | Agent平台 > 工作流 > 数据 | Agent架构能力 | 链路设计/MCP |
   | 某公司-视觉岗 | 视觉识别项目 > 多模态Agent > AIGC工具 | AIGC视觉能力 | 图像生成/视觉理解 |
   
   每份简历的内容侧重点都不同,请在投递时使用对应版本。对哪些版本需要进一步调整?"

用户:"第2份的大模型应用开发,项目经历再突出一些"

AI:"好的,我调整第2份简历的项目经历部分...(重新生成PDF)
   ✅ 第2份简历已更新,请查收。"

HTML转PDF说明

本skill使用Playwright将HTML转为PDF,优势:

  • 使用真实的浏览器内核渲染,样式还原度100%
  • 支持现代CSS特性(flexbox、grid、渐变等)
  • 生成的PDF在不同设备上显示一致

使用方法:

# 安装Playwright
pip install playwright
playwright install chromium

# 生成简历
python3 scripts/generate_resume.py data.json classic output.pdf

模板说明

简历模板

本skill提供3个简历模板:

  1. 简洁商务风(classic)
    • 配色:黑白蓝
    • 特点:清晰专业,适合大多数岗位
    • 适用:金融、咨询、传统行业
  1. 现代卡片风(modern)
    • 配色:渐变紫
    • 特点:时尚现代,卡片布局
    • 适用:互联网、创意、设计岗位
  1. 左栏侧边风(sidebar)
    • 配色:深蓝白
    • 特点:左侧信息栏+右侧内容区
    • 适用:技术、开发、工程师岗位

用户可以在生成简历前选择模板,也可以为每个优化版本选择不同模板。

岗位推荐报告模板

岗位推荐报告使用专门的HTML模板(assets/job_report_template.html),包含:

  • 推荐理由总结(专业匹配、经历匹配、城市匹配、技能匹配)
  • 岗位卡片列表(公司、岗位、地点、投递链接、匹配度、推荐理由)
  • 下一步建议(优先投递、备选方案、简历优化建议)

注意事项

  1. 保护隐私:简历包含个人隐私信息,确保不泄露给第三方
  2. 不捏造经历:所有优化基于用户提供的真实信息,不添加虚假内容
  3. 用户体验:流程尽量简洁,避免一次性提出过多问题
  4. 版本管理:生成的多个版本要清晰命名,方便用户区分
  5. PDF兼容性:确保生成的PDF在不同设备上显示正常(使用Playwright可确保)
  6. JSON数据:路线A中,表单提交后不保存文件,提示用户复制JSON数据并粘贴给AI
  7. 必须询问确认:简历阶段完成后,必须询问用户确认,才能进入岗位推荐阶段
  8. 可迭代性:用户不满意推荐结果时,可以提供修改简历或调整搜索条件的选项

后续改进

  • [x] 使用HTML模板生成简历(已完成)
  • [x] 使用Playwright将HTML转为PDF(已完成)
  • [x] 提供多个简历模板供用户选择(已完成)
  • [x] 基于简历推荐匹配的岗位(已完成)
  • [x] 生成包含推荐理由的岗位推荐报告(已完成)
  • [x] 根据岗位自动调整简历(已完成)
  • [x] 批量生成多版本简历(为每个匹配岗位生成定制版)(已完成)
  • [x] 支持英文简历
  • [x] 模拟面试功能(新增)
  • [x] 就业指导功能(新增)
  • [x] AI深度优化8条差异化规则(修复简历雷同bug)
  • [x] 修改说明模板(改了什么+为什么这么改)
  • [ ] 简历雷同Bug修复后的自检流程自动化
  • [x] 模拟面试功能(新增)
  • [ ] 集成JD关键词自动优化(AI深度优化步骤自动化)
  • [ ] 添加ATS兼容性检查
  • [ ] 支持简历版本管理(保存多个版本)
  • [ ] 支持LinkedIn资料导入
  • [ ] 支持自动投递简历(需要用户授权)
  • [ ] 模拟面试生成PDF复盘报告

最后更新:2026-05-14(通用化改造:去个人信息+去硬编码路径+环境依赖说明+腾讯文档实时查询)

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-16 19:06 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

自动化岗位猎手

user_ba7c4de9
岗位搜索与匹配追踪。基于用户的职业经历信息,自动联网搜索招聘岗位,AI 匹配度评分后输出到桌面文件并通过邮件通知。支持定时执行(自动化)和手动执行两种模式。适用于求职者持续追踪目标岗位。
★ 0 📥 90

信息差求职攻略

user_ba7c4de9
打破求职信息差:通过3个策略找到平台算法遗漏的优质公司和隐藏机会。放弃只搜岗位名称,转而搜行业关键词、找供应链上下游、无目的探索陌生领域。纯方法论驱动,无环境依赖,即装即用。
★ 1 📥 72

简历优化专家

user_ba7c4de9
简历优化专家:基于「四步法」方法论——明确目标、筛选经历、包装经历、格式优化,将用户的原始经历转化为精准匹配目标岗位的高质量简历。聚焦简历内容本身,不涉及岗位搜索、投递、模拟面试等延伸功能。纯方法论驱动,无环境依赖,即装即用。
★ 1 📥 172