应届生大厂简历 Word 生成器 / Local-first resume builder for Chinese campus recruiting
填写结构化内容,预览标准简历版式,一键生成 ATS 友好的 .docx Word 简历。
这是一个面向应届生技术岗、网络安全岗、研发岗的中文简历生成器。它把“简历内容”和“简历排版”拆开:你只需要在浏览器页面里填写基础信息、教育经历、实习经历、项目与科研、竞赛获奖、证书荣誉,系统会按统一格式生成可投递的 Word 简历。
目标是让 HR、ATS 系统和一线面试官在 10 秒内读到重点:学校、岗位匹配度、项目职责、量化成果和硬核证书。
Important
在线版直接运行在浏览器里,真实简历不会上传到服务器。仓库里的真实简历、证件照、历史版本和生成的 Word 文件也会被 .gitignore 排除。
| 能力 | 说明 |
|---|---|
| 浏览器填写 | 本地启动 Web 页面,按模块填写内容,右侧实时预览简历 |
| Word 导出 | 一键生成 .docx,保留中文简历常见的紧凑单页版式 |
| 简历库 | 支持保存当前版本和另存为新版本,避免连续编辑时历史记录膨胀 |
| 留存上限 | 可配置最大保存数量,超过后自动裁剪最旧版本 |
| 证件照位 | 支持右上角证件照,也支持关闭照片位输出 ATS 版本 |
| 格式设置 | 可调整字体、字号、行间距、页边距等 Word 样式参数 |
| JD 优化 | 可输入岗位 JD,自动把技能关键词中更匹配岗位的内容前置 |
| 质量检查 | 检查关键字段缺失、经历 bullet 是否缺少量化表达等问题 |
前端页面围绕“左侧模块导航 + 中间表单 + 右侧简历预览”组织,适合边写边调。
支持的简历模块:
- 基础信息
- 教育经历
- 专业技能
- 实习经历
- 项目&科研经历
- 竞赛获奖
- 其它证书和荣誉
- 格式设置
- 岗位 JD
- 简历库
Word 输出遵循保守、清晰、可解析的中文校招简历格式:A4 页面、单栏正文、紧凑行距、标题下划线、经历 bullet 化、奖项和证书左右对齐。
先打开项目主页了解功能与隐私说明:
https://mi0uno.github.io/MeowResume/
点击页面里的 在线使用,或直接打开:
https://mi0uno.github.io/MeowResume/app.html
在线版能力:
- 直接在网页里填写简历内容。
- 浏览器本地保存草稿和历史版本;继续编辑当前版本时会覆盖保存,点“另存为新版本”才新增历史。
- 一键生成
.docxWord 简历。 - 支持导入/导出 JSON,方便跨浏览器迁移。
- 不依赖后端服务,不上传真实简历数据。
在线版为了保持纯静态部署,暂不把真实照片嵌入 Word,只保留证件照占位。需要真实照片嵌入、Python 版严格模板和本地 API 时,使用下面的本地运行方式。
| 工具 | 版本建议 | 用途 | 检查命令 |
|---|---|---|---|
| Python | 3.10 - 3.12 | 运行生成器和本地 Web 服务 | python --version |
| pip | 跟随 Python | 安装 python-docx |
pip --version |
| 浏览器 | Chrome / Edge / Firefox | 打开本地编辑页面 | http://127.0.0.1:8765 |
Note
web_server.py 使用了 Python 标准库里的 cgi 处理表单上传。建议使用 Python 3.10 - 3.12;Python 3.13 及以上可能需要替换上传解析实现。
pip install -r requirements.txt依赖很轻,目前只需要:
python-docx>=1.1.2
python web_server.py访问:
http://127.0.0.1:8765/
在页面里填写内容后,可以点击:
检查质量:检查缺失字段和简历表达问题保存当前版本:更新正在编辑的历史版本;未保存草稿第一次保存时会创建新版本另存为新版本:把当前内容复制成新版本,适合按岗位派生投递版生成 Word:直接下载.docx文件
不打开浏览器,也可以直接用 JSON 生成 Word。
python resume_generator.py --data candidate.example.json指定输出路径:
python resume_generator.py --data candidate.example.json --output output/my_resume.docx根据岗位 JD 调整技能关键词顺序:
python resume_generator.py --data candidate.example.json --jd job_description.example.txt使用真实证件照:
python resume_generator.py --data candidate.example.json --photo D:\photos\id_photo.jpg生成无照片版本:
python resume_generator.py --data candidate.example.json --no-photo严格模式,存在质量提醒时返回非 0 状态:
python resume_generator.py --data candidate.example.json --strict| 参数 | 必需 | 说明 |
|---|---|---|
--data |
否 | 简历 JSON 文件,默认 candidate.example.json |
--output |
否 | 输出 .docx 路径,默认写入 output/ |
--jd |
否 | 岗位描述文本,用于技能关键词排序 |
--photo |
否 | 证件照路径,覆盖 JSON 里的照片配置 |
--no-photo |
否 | 关闭右上角证件照位 |
--strict |
否 | 有质量提醒时以状态码 2 退出 |
最小 JSON 结构:
{
"basics": {
"name": "姓名",
"target_role": "后端开发工程师",
"phone": "138-0000-0000",
"email": "name@example.com",
"city": "北京",
"photo": {
"enabled": true,
"path": "D:\\photos\\id_photo.jpg"
}
},
"education": [],
"skills": {},
"experience": [],
"projects": [],
"awards": [],
"certifications": []
}实习经历建议写成结构化对象:
{
"organization": "公司/实验室/团队",
"role": "安全研发实习生",
"location": "北京",
"start": "2025.07",
"end": "2025.10",
"content": "围绕业务安全检测平台建设,参与漏洞扫描、资产识别与告警治理。",
"responsibilities": [
"负责资产指纹识别模块开发,补齐 Web 服务、端口和中间件识别规则",
"参与漏洞验证链路优化,减少重复告警并提升人工复核效率"
],
"results": [
"覆盖 2000+ 资产,误报率下降 30%,高危漏洞响应时间缩短至 1 天内"
]
}项目&科研经历同样支持:
nameroletechnologiesstartendcontentresponsibilitiesresults
竞赛获奖可以写成简单字符串:
"ISCC 2025 | 国家级二等奖 | 2025"也可以写成结构化对象:
{
"name": "全国大学生信息安全竞赛",
"level": "国家级二等奖",
"date": "2025.08",
"responsibilities": [
"负责 Web 渗透与自动化脚本编写,沉淀常见题型解题模板"
],
"results": [
"团队排名进入赛区前列"
]
}浏览器页面支持版本留存,适合为不同岗位维护多版简历。
| 文件/目录 | 作用 |
|---|---|
data/resume_library.json |
保存历史版本、JD、标题、基础元数据 |
data/photos/ |
保存上传过的证件照副本 |
output/ |
命令行或调试生成的 Word 文件 |
保存规则:
保存当前版本会更新正在编辑的版本,不额外新增历史。另存为新版本会创建新版本,适合从通用版派生岗位投递版。- 版本名会自动追加时间和
v01、v02这类序号。 - 最大留存数量默认为
30,可在页面“简历库”里修改。 - 超出留存上限后,会从最旧版本开始删除。
Warning
data/ 和 output/ 里可能包含个人隐私信息。公开仓库前建议确认这些目录没有被提交。
本地服务由 web_server.py 提供,默认监听 127.0.0.1:8765。
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/ |
前端页面 |
GET |
/api/sample |
获取示例简历 JSON |
GET |
/api/library |
获取简历库版本列表 |
GET |
/api/library/{id} |
获取某个历史版本 |
POST |
/api/analyze |
检查简历质量 |
POST |
/api/generate |
生成并下载 Word 简历 |
POST |
/api/library/save |
保存当前版本 |
POST |
/api/library/settings |
更新最大留存数量 |
make_resume/
├─ resume_generator.py # Word 简历生成、格式设置、质量检查
├─ web_server.py # 本地 HTTP 服务与简历库 API
├─ candidate.example.json # 示例简历数据
├─ job_description.example.txt # 示例岗位 JD
├─ requirements.txt # Python 依赖
├─ web/
│ ├─ index.html # 前端页面结构
│ ├─ app.js # 表单状态、预览、保存、下载
│ └─ styles.css # 工作台与简历预览样式
├─ tests/
│ ├─ test_resume_generator.py # Word 生成器测试
│ └─ test_web_server.py # 本地服务与简历库测试
├─ data/ # 本地简历库和照片缓存
└─ output/ # 生成的 Word 文件
本项目内置的简历格式偏向校招和大厂投递:
- A4 页面,窄边距,尽量控制在一页。
- 不使用文本框、复杂图形、进度条,减少 ATS 解析失败。
- 顶部突出姓名、目标岗位、电话、邮箱、城市。
- 教育经历优先,项目和实习强调职责与结果。
- 技能区按类别组织,技术关键词清晰可扫读。
- 奖项、证书采用“左侧名称 + 右侧等级/年份”的紧凑格式。
- bullet 推荐使用“动作 + 技术/任务 + 量化结果”的表达。
运行完整测试:
python -m unittest discover -s tests当前测试覆盖:
- Word 文件是否可打开
- 核心模块是否输出
- 证件照位是否可启用/关闭
- 格式设置是否写入 Word
- 简历库保存、载入、留存裁剪
- 奖项与证书的紧凑格式解析
优先删弱相关经历,保留 2-3 段最贴近目标岗位的项目/实习。其次缩短 bullet,每条尽量只保留一个动作和一个结果。
不一定。国内部分校招系统和传统岗位会接受照片版;更看重 ATS 解析的互联网岗位可以使用 --no-photo 输出无照片版。
可以。建议每个岗位保存一个版本,并在“岗位 JD”里放入对应职位描述,让技能关键词和项目表达更贴近岗位。
可以。前端页面和命令行都读取同一类 JSON 结构。你可以先在页面里保存版本,再从 data/resume_library.json 中取出对应版本继续加工。
- Word 简历生成
- 浏览器表单编辑
- 证件照位
- 简历库与自动版本名
- 格式设置页面
- 实习、项目、竞赛结构化内容
- 从旧 Word/Markdown 简历反向抽取 JSON
- 中英文双语简历模板
- 多岗位模板预设
- 简历内容改写建议与 bullet 强化
当前仓库未包含 LICENSE 文件。若准备公开发布,建议先补充明确的开源许可证。