Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add phanghonghao/THU-Awesome-Skills --skill resume-buildergit clone --depth 1 https://github.com/phanghonghao/THU-Awesome-SkillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/phanghonghao/thu-awesome-skills/resume-builder)<a href="https://agentmods.dev/skills/phanghonghao/thu-awesome-skills/resume-builder"><img src="https://agentmods.dev/badge/skills/phanghonghao/thu-awesome-skills/resume-builder/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/phanghonghao/thu-awesome-skills/resume-builder"><img src="https://agentmods.dev/badge/skills/phanghonghao/thu-awesome-skills/resume-builder.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00100 | $0.02297 |
| Opus 5 | $0.00050 | $0.01149 |
| Sonnet 5 | $0.00020 | $0.00459 |
| Haiku 4.5 | $0.00010 | $0.00230 |
Grade A, and why
resume-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
resume-builder —— 数据驱动的中文简历生成器(HTML / LaTeX 双引擎)
把任意来源的简历资料,套用固定的单栏中文版式,输出为排版好的 PDF。
默认引擎不依赖 LaTeX:HTML 模板 + 系统 Chrome/Edge 无头打印(与 html2pdf 同机制)。
可选 LaTeX 引擎(--engine tex):本机 xelatex 编译 njq 风格 ctex 模板,排印更精致。
两条路径都不使用任何 Overleaf token / cookie / API key,全程本机。
数据格式
固定结构,见 schema/resume_schema.yaml,可运行示例见 examples/resume_data_example.yaml。
板块:personal / education / projects / lab_experience / clubs / competitions / skills / social_practice。
每个经历板块都是列表,可写任意条数;字段留空或 education[].optional: true 自动不渲染。
工作流(务必按此执行)
1. 取输入并归一化成数据文件
根据用户给的资料,产出工作目录下的 resume_data.yaml(本机无 PyYAML 时改用 resume_data.json):
- 已有 YAML/JSON:直接用(字段对不上时按 schema 改写)。
- PDF 简历:先用
pdf-reader(或markitdown/pdf2word+word2md)提取文本,再由你(Claude)读内容、按 schema 重组。 - Word 简历:用
word2md或markitdown转 Markdown,再重组。 - Markdown / TXT:直接读,按 schema 重组。
- 纯口述:根据用户描述组装成 schema。
重组时遵循:中文姓名进 personal.name_cn、英文姓名进 name_en;经历按时间倒序;无对应内容就留空,不要编造。
2. 一条命令出 HTML + PDF(开箱即用)
python "<SKILL_DIR>/scripts/build_resume.py" resume_data.yaml --out resume.html
<SKILL_DIR>= 本 skill 目录。把脚本路径写全(含绝对路径)最稳。
这一条命令会自动: 生成 resume.html,再用系统 Chrome/Edge 无头打印自动生成同名 resume.pdf,并打印 PDF 路径与页数。
- 只想要 HTML:加
--no-pdf - 指定 PDF 路径:加
--pdf 路径.pdf - 纸张(A4)/边距由 HTML 模板的
@pageCSS 控制 - 找不到浏览器时会优雅降级:只出 HTML 并提示用户在浏览器里手动打印
render_pdf.py仍可作为独立工具,用于「只有 HTML、想单独转 PDF」的场景。
2b. 可选:LaTeX 引擎(--engine tex)
想要更精致的排印(ctex 中文、\titlerule 分节线、njq 风格要点列表)时,改用 tex 引擎。需要本机装好 xelatex(MiKTeX 或 TeX Live,加入 PATH)。模板 templates/classic_single.tex(风格源自 njq 简历)。
python "<SKILL_DIR>/scripts/build_resume.py" resume_data.yaml --engine tex --out resume.tex
这一条命令会自动: 生成 resume.tex → 用 xelatex 跑两遍编译出同名 resume.pdf → 报页数 → 清理中间文件(.aux/.log/.out/.synctex.gz/.fls/...,只留 .tex 与 .pdf)。
- 只想要
.tex:加--no-pdf - 数据里的
% & _ # $ { } ~ ^ \等特殊字符由脚本自动转义,无需手动处理 - 证件照:复用同一条
--photo / --photo-from / personal.photo管线,照片以 TikZ overlay 钉到页面右上角(编译两次已自动完成) - 必须 xelatex(ctex 中文);脚本硬编码 xelatex,不可换 pdflatex
- 行距溢出:模板默认
\linespread{1.8}(njq 为偏短内容撑满一页)。内容多、溢出第二页时,在 YAML 加一个 opt-in 旋钮调小:tex: linespread: 1.3 # 1.0 紧凑 ~ 1.8 宽松 - MiKTeX 首次编译可能自动下载
titlesec/enumitem/ctex等宏包(慢一次);若关了自动安装,按.log提示mpm --install=<pkg>
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 114 lines · 100 tokens per session scan A c68ee739e3b3
resume-builder is a skill published in the GitHub repository phanghonghao/THU-Awesome-Skills (8 stars, last pushed 1mo ago), licensed MIT. It adds 100 tokens to every session and 2,297 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pydicom
Use pydicom to read, inspect, write, transform, and safely preflight local DICOM datasets and pixel data. Applies to DICOM metadata, transfer syntaxes, compression plugins, frames, private elements, JSON, and bounded de-identification review.
foundry-hosted-agent-validation
Step-by-step process for validating a Python Foundry hosted agent sample (under python/samples/04-hosting/foundry-hosted-agents/) end to end — running it locally (native runtime and azd ai agent run) and after deploying it to an Azure AI Foundry project with azd. Use this when asked to validate a hosted agent sample.
skill-doc-delivery
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables.
pdf-extract-create-workflow
Complete PDF lifecycle: download, extract, and generate structured documents with reportlab.
document-direct-python
Use direct Python execution for reliable document creation including spreadsheets, PDFs, and structured reports.
parse-document
Convert a PDF, scan, image of a page, or office file to clean markdown through the connected Superlinked MCP edge, so the source document is not read into model context directly. Use when the user asks to read, parse, OCR, extract from, summarize, or answer questions about a document.