岗位JD制作 · gangwei-jd-zhizuo
「示例公司」 内部用的招聘简历(JD)制作 skill。用户在
md格式/文件夹下编辑 .md,skill 自动渲染成 PDF + PNG,输出到对应分类文件夹。
一、核心工作流
md格式/JD_XXX.md ←—— 用户编辑这个
↓ python parse_md.py
[临时 JSON]
↓ python render_jd.py
pdf格式/JD_XXX.pdf
↓ pdftoppm -r 150
png格式/JD_XXX-1.png, JD_XXX-2.png
二、新模版视觉规范(v9)
参照 _JD统一格式规范.md + JD_全栈开发工程师.pdf;v9 起 bullet 用数字编号 1. 2. 3.:
- 页面:A4 纵向,白底;上下 14mm,左右 16mm
- 字体:Microsoft YaHei / Noto Sans SC,正文 10.5pt
- 主题色:
#C2410C(深橙) - 米色强调底:
#FAF5F0 - 链接蓝:
#0563C1
头部 4 行:
- 岗位名:22pt 黑加粗
- 副标题(英文岗位名 / 方向):11pt 主题色加粗
- 信息行(全职 · 城市 · 方向):9.5pt 灰色
#555555 - 口号
KAPIBALA AI · WE ARE HIRING · 2026:8.5pt 浅灰#999999,段后黑色加粗分割线
章节:
- 标题:12.5pt 主题色加粗,左侧主题色竖线
- 正文段落:10.5pt,行距 1.45
- 子标题(xxx):10.5pt 黑加粗
- 高亮金句(> 引用):米色底块
- 列表:数字编号
1. 2. 3.(v9 起,橙色加粗;每次调用从 1 重新编号) - 职责类条目:黑加粗小标题 + 灰色补充
- 福利类条目:橙色加粗英文标签 + " — " + 黑色说明
- 投递方式整段:米色底 + 邮箱加粗 + 官网蓝色下划线
三、文件结构
gangwei-jd-zhizuo/
├── SKILL.md ← 这份
├── render_jd.py ← PDF 渲染器(v8)
├── parse_md.py ← md → JSON 解析器
├── render_xhs.py ← 小红书图文渲染器(半成品)
├── fonts/
│ └── NotoSansSC-Bold.ttf ← Bold weight 静态字体
├── references/
│ ├── company_terminology.json ← 公司介绍 / 福利预设 / 邮箱
│ └── jd_schema.json ← JD 字段说明
└── sample_jd_data/
├── JD_BD.md
├── JD_LLM_Post-Training.md
├── JD_全栈开发工程师.md
└── JD_语音Post-Training.md
四、md 格式约定
每份 JD .md 必须满足以下格式(参考 sample_jd_data/JD_全栈开发工程师.md):
# 岗位名
**英文副标题 · 方向**
全职 · 「城市」 · 方向 · 急招标记
> *「示例公司」 · WE ARE HIRING · 2026*
---
## 关于我们
(自由段落)
## 岗位定位
(自由段落,可多段)
## 客户与场景(可选,BD 类岗位用)
**你将面对的客户**
- bullet 1
- bullet 2
**常见客户需求**
- bullet 1
- bullet 2
> 高亮金句(米色底)
## 岗位职责
- **职责标题**
详细补充(前导 2 空格表示是上一条 bullet 的补充行)
## 任职要求
- 简单 bullet
- 简单 bullet
## 加分项
- 简单 bullet
## 我们提供
- **¥ 50-80W** · ANNUAL CASH — 福利说明
- **ZERO TAX** · DUBAI — 福利说明
---
## 投递方式
- 邮箱:**hr@example.com**
- 邮件主题:「应聘岗位名称 - 姓名」
- 微信:your-wechat-id
- 官网:https://example.com
五、工作流程
用户场景 1:改了 md 想出新 PDF
# 解析 md → JSON
python skill/parse_md.py "{user_folder}/md格式/JD_XXX.md" /tmp/jd.json
# JSON → PDF
python skill/render_jd.py /tmp/jd.json "{user_folder}/pdf格式/JD_XXX.pdf"
# PDF → PNG (150 DPI,多页按 -1/-2 编号)
pdftoppm -r 150 -png "{user_folder}/pdf格式/JD_XXX.pdf" "{user_folder}/png格式/JD_XXX"
把这三步串成一个 batch 脚本同步全部 JD:
JDS=("JD_BD" "JD_LLM_Post-Training" "JD_全栈开发工程师" "JD_语音Post-Training" "JD_TTS后训练算法工程师")
for jd in "${JDS[@]}"; do
python skill/parse_md.py "$BASE/md格式/${jd}.md" /tmp/${jd}.json
python skill/render_jd.py /tmp/${jd}.json "$BASE/pdf格式/${jd}.pdf"
pdftoppm -r 150 -png "$BASE/pdf格式/${jd}.pdf" "$BASE/png格式/${jd}"
done
用户场景 2:起新 JD
→ 用 AskUserQuestion 收集岗位基础信息 → 复制 sample_jd_data 里最近的一份 md 当起手 → 让用户编辑 → 渲染
用户场景 3:改某个字段
→ Read 现有 md → Edit 对应行 → 重新跑渲染流水线
六、不要做
- 不要渲染「招聘流程 / INTAKE PROTOCOL」章节 —— 自 v6 起默认移除,避免对外暴露内部 SOP。
- 不要写长篇 postamble 解释 PDF 里的内容 —— 用户自己能看,给文件链接就够了。
- 不要用 ReportLab 内置 CID 字体 STSong-Light —— Linux 上 cmap 缺失会把 CJK 渲染成空盒子。
- 不要打开/修改
~$JD_BD.docx这种 Word 锁文件 —— Word 后台打开时产生的,直接绕过。