# AI Job Search 自定义模板：注册自己的版式，先编译验证再生成申请材料

## 执行范围

已用Typst原生编译自定义模板，核对1页与联系人，并验证编译失败不残留旧PDF；模板激活是作者参考实现，AI Job Search /add-template模型命令未运行。

## 输入与目标

原创单页Typst或LaTeX模板及所需字体/编译命令

交付：已注册模板说明、源文件、实际PDF与编译记录

## 运行

在 reference 目录执行；先按文件 requirements.txt / package.json 或原生工具文档安装依赖。浏览器练习需 `npx playwright install chromium`；也可设置 `PLAYWRIGHT_EXECUTABLE_PATH` 为自己的 Chrome 路径。

```sh
python register.py
```

## 目录

- fixtures：作者原创输入，不包含用户真实资料。
- starter：读者待完成任务。
- reference：作者完成参考。
- results：作者实际运行所得或明确标注的待运行输入/预期合同。

## 七步

1. **定义独立模板名**

创建clean-one-column目录，明确是CV模板。源骨架用占位符，不把真实个人资料写进可分发模板。

2. **写清模板清单**

TEMPLATE.md包含扩展名、真实编译命令、字体、页限和样式。声明Typst编译器绑定，避免沿用错误的LaTeX命令。

3. **填入虚构数据**

用fixture profile替换全部占位符，保留三条经历与教育信息。任何未填的占位符都应阻止编译与激活。

4. **先编译后注册**

真实编译filled.typ为PDF，用Pypdf核对页数与姓名。必须看原生渲染结果，源码看起来正确并不能代替编译。

5. **只保留一个激活块**

作者参考在05-cv-templates.md写唯一managed block，指向模板骨架、清单与编译命令；原stock说明保留在块外。

6. **验证失败清理**

让错误Typst源码编译失败，检查输出PDF已删除。不能把上次成功PDF误读为本次模板仍能编译。

7. **移交模板源码**

保留骨架、manifest、编译器脚本、成功PDF和失败证据。读者可在授权/add-template会话按同样规则注册，本文不声称已调用该模型命令。

## 来源

- https://raw.githubusercontent.com/MadsLorentzen/ai-job-search/master/.claude/commands/add-template.md


## 原生工具与边界补充

需要requirements中的Typst原生编译器绑定与Pypdf。实际编译成功才写作者参考managed block；broken.typ失败后不保留旧PDF。
