원클릭으로
resume
岗位针对性简历生成器。当用户提供 JD(岗位描述)、面经或岗位分析,或提出"帮我生成简历"、"针对这个岗位"等请求时触发。自动检查用户数据完整性,分析岗位需求,从经历库中智能筛选内容,生成单页 LaTeX 简历 PDF,自动调优至恰好一页。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
岗位针对性简历生成器。当用户提供 JD(岗位描述)、面经或岗位分析,或提出"帮我生成简历"、"针对这个岗位"等请求时触发。自动检查用户数据完整性,分析岗位需求,从经历库中智能筛选内容,生成单页 LaTeX 简历 PDF,自动调优至恰好一页。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | resume |
| description | 岗位针对性简历生成器。当用户提供 JD(岗位描述)、面经或岗位分析,或提出"帮我生成简历"、"针对这个岗位"等请求时触发。自动检查用户数据完整性,分析岗位需求,从经历库中智能筛选内容,生成单页 LaTeX 简历 PDF,自动调优至恰好一页。 |
| license | Apache-2.0 |
角色分工:本文件是执行流程(按步骤做);
CLAUDE.md是规则百科(详细约束),两者互补。遇到细节问题以CLAUDE.md为准。
tools/person_manager.get_active_person_id()(None = legacy 模式)profile.md(legacy: data/profile.md)experiences/ 目录、项目经历、校园经历作为增强资料(legacy: data/experiences/)阻断条件(任一触发则停止,提示用户):
profile.md 含 [YOUR_XXX] 占位符experiences/、项目经历、校园经历为空时不阻断,但应提示用户补充可显著提升匹配质量。
从 JD / 面经中提取:
| 维度 | 提取内容 |
|---|---|
| 公司 + 岗位 | 如「美团 · 商业分析师」 |
| 岗位类型 | 产品 / 运营 / 技术 / 金融 / 咨询 / 研究 / 其他 |
| 硬技能关键词 | 技术栈、工具、编程语言 |
| 职能关键词 | 数据分析、行业研究、策略规划、商业化… |
| 行业关键词 | 互联网、金融、AI、医疗… |
| 软技能 | 沟通、跨部门协作、自驱… |
输出:一段简短的岗位画像(后续所有选择都以此为锚点)。
读取 experiences/*.md(跳过 _template.md、README.md、空文件),同时读取 profile.md 中的项目经历和校园经历。
同时检查 work_materials/{公司名}/ 是否有非空文件 → 有则优先用作内容来源。
| 分类 | 判定条件 | 放入 section |
|---|---|---|
| 实习/工作 | 文件名不含 研究_,且标签不同时包含 研究+学术 | \section{实习经历} |
| 研究/项目 | 文件名含 研究_,或标签同时含 研究+学术 | \section{研究经历} 或 \section{项目经历} |
| 校园经历 | profile.md 中的校园经历,且与 JD 相关或能证明组织/领导/活动运营/竞赛成果 | \section{校园经历} / \section{Campus Experience} |
| 类型 | 数量 | 说明 |
|---|---|---|
| 实习经历 | 2-4 段 | 核心内容 |
| 研究/项目 | 0-2 段 | JD 要求研究能力时加入 |
| 校园经历 | 0-2 段 | 仅在 JD 相关、经历不足或能证明组织/领导/活动运营/竞赛成果时加入 |
| 合计 | ≤ 5 段 | 目标占满整页 |
数量:实习/工作经历每段 2-3 条,最多 4 条;项目/研究/校园经历 1-2 条
改写规则(逐条必须遵守):
| # | 规则 | 示例 |
|---|---|---|
| 1 | 结尾不加句号 | ✗ …提供数据支撑。 → ✓ …提供数据支撑 |
| 2 | 保留量化数据,不捏造 | ✓ 产出50页报告 ✗ 产出大量报告 |
| 3 | 动词名词向 JD 靠拢(不改变事实) | JD 要"商业分析" → bullet 用"商业分析"而非"行业调研" |
| 4 | 结果导向,不是"负责了什么" | ✗ 负责数据分析 → ✓ 分析…数据,发现…,推动… |
| 5 | 城市从经历文件读取,不猜测 | — |
| 6 | 禁止外部过时数据(营收/CAGR 等) | ✗ 营收294亿元 → ✓ 删除 |
| 7 | 禁止领域专有术语 | ✗ "三大鸿沟" "算力券" → ✓ 通用描述 |
| 8 | 研究 bullet 面向岗位改写 | ✗ 堆砌 三重交互/DID/聚类稳健标准误 → ✓ 聚焦数据规模、工具、产出 |
| 9 | 中文引号用 "…" | ✗ „..." ✗ "..." |
| 10 | 不添加用户未提及的技能/成果 | — |
从 profile.md 的获奖部分中选取,最多 3 条:
优先级(从高到低):
必须排除:
OUTPUT_DIR="$(pwd)/output/{公司}_{岗位}_{YYYYMMDD}"
mkdir -p "$OUTPUT_DIR"
# 复制模板(字体用 symlink 节省空间)
TEMPLATE_DIR="$(pwd)/latex_src/resume"
for f in "$TEMPLATE_DIR"/*; do
[ "$(basename "$f")" = "fonts" ] && continue
cp -r "$f" "$OUTPUT_DIR/"
done
ln -sf "$TEMPLATE_DIR/fonts" "$OUTPUT_DIR/fonts"
修改 $OUTPUT_DIR/resume-zh_CN.tex 或 $OUTPUT_DIR/resume-en.tex(按 language=zh|en),各 section 内容来源:
| Section | 来源 | 注意 |
|---|---|---|
| 头部(姓名/联系方式) | profile.md | — |
| 教育背景 | profile.md | 按岗位选 4-5 门课程 |
| 实习经历 | Step 2 选定的实习经历 | 时间倒序,按分类放 |
| 研究/项目经历 | Step 2 选定的研究经历 | 可选,0-2 段 |
| 校园经历 / Campus Experience | Step 2 选定的校园经历 | 可选,0-2 段,不相关时不展示 |
| 获奖情况 | Step 2.5 选定 | ≤ 3 条 |
| 技能 | profile.md | 按岗位调整顺序 |
写入 .tex 前必须逐项检查,全部通过才能写入:
"..." 正确?任一项 ✗ → 修正后重新检查,直到全部 ✓
export PATH="$HOME/Library/TinyTeX/bin/universal-darwin:$PATH"
cd "$OUTPUT_DIR"
xelatex -interaction=nonstopmode resume-zh_CN.tex > /tmp/xelatex_out.txt 2>&1 # zh
# 或
xelatex -interaction=nonstopmode resume-en.tex > /tmp/xelatex_out.txt 2>&1 # en
echo "Exit: $?"
sleep 2
mdls -name kMDItemNumberOfPages resume-zh_CN.pdf
# 或
mdls -name kMDItemNumberOfPages resume-en.pdf
.log,常见:&→\&,%→\%,_→\_注意:代码
_tune_overflow()自动执行的顺序是:排版压缩(vspace → margins → list spacing)→ 内容删减(research → project → bullets)→ 极端压缩(font size → section spacing)。手动操作时建议先尝试内容精简。
第一轮:内容精简(手动优先,效果最大)
| 序号 | 操作 | 说明 |
|---|---|---|
| 1 | 修复悬挂行 | bullet 末尾 1-3 字独占一行 → 删/改尾部冗余 |
| 2 | 精简获奖至 ≤ 3 条 | 删低含金量 |
| 3 | 注释研究/项目经历整块 | 效果 ~60mm |
| 4 | 注释最不相关的一段实习 | 效果 ~60mm |
| 5 | 减少 bullet:3 条 → 2 条 | — |
第二轮:排版压缩(内容精简后仍溢出)
| 序号 | 操作 | 修改文件 |
|---|---|---|
| 6 | \vspace{-6pt}→-8pt,-2pt→-4pt | .tex |
| 7 | top/bottom 0.5in→0.4in | resume.cls |
| 8 | itemsep/topsep 0.1em→0.05em | resume.cls |
| 9 | \titlespacing *1.5/*1.3→*1.0/*0.8 | resume.cls |
| 10 | \LoadClass[10pt]→[9.5pt] | resume.cls |
红线:字号 ≥ 9pt,页边距 ≥ 0.35in
每步后必须:编译 → mdls -name kMDItemNumberOfPages → 1 页则立即停止
python3 tools/page_fill_check.py "$OUTPUT_DIR"
| 填充率 | 状态 | 处理 |
|---|---|---|
| 95% ~ 100% | 理想 | 无需调整 |
| < 95% | 偏空 | 增加经历/bullet/间距(详见 CLAUDE.md) |
| > 100% | 溢出 | 回到 5.1 继续精简 |
✅ 简历已生成
- 岗位:{公司} · {岗位名}
- 路径:output/{...}/resume-zh_CN.pdf 或 output/{...}/resume-en.pdf
- 页数:1 页 | 填充率:XX%
📋 选入经历:
1. {公司A} — 匹配关键词:xxx, xxx
2. {公司B} — 匹配关键词:xxx, xxx
...
🔧 调优记录:(如有)
- ...
保存到 $OUTPUT_DIR/generation_log.md,内容: