用Claude Skill把无聊简历变成动画网页

一个 Claude Skill 能把普通简历变成带动画的单页网站,输出单个 HTML 文件。
开发者 dooa-ansari 在 Dev.to 分享了一个自定义 Claude Skill,能把 PDF、DOCX 或 LinkedIn 导出的简历转成带动画的单页个人网站,产物只有一个 HTML 文件,丢到 GitHub Pages 即可上线。页面不走传统简历的信息密度路线,而是围绕「这个人是谁」重新组织:会动的虚拟形象、游戏关卡式的职业经历、成就卡片、角色属性面板和 GitHub 项目关系图。架构上 Claude 只负责抽取信息、提问和生成结构化 profile.json,真正的渲染交给 Python 脚本和 HTML 模板,避免模型直接生成 HTML 带来的不稳定性。安装通过 Claude Code 两条命令或 Claude 应用上传 zip,项目以 MIT 协议开源。
一份简历,为什么不能有性格?
大多数在线简历长得都一样:白底黑字、时间线、技能条。开发者 dooa-ansari 在 Dev.to 上分享了一个小项目,试图改变这件事——他把一份普通简历(或 LinkedIn 导出的 PDF)喂给一个自定义的 Claude Skill,产出的不是文档,而是一个带动画、可交互的单页个人网站。

整个输出只有一个 HTML 文件。没有框架,没有构建步骤,丢到 GitHub Pages 上就能用。
Claude Skill 是 Anthropic 为 Claude 推出的可扩展能力机制。它本质上是一个包含指令文件(SKILL.md)、资源模板和可选脚本的文件夹,告诉 Claude 在特定任务场景下该遵循什么流程、调用哪些工具、产出什么格式。与普通的系统提示词不同,Skill 可以打包参考资料和可执行脚本,让模型在需要时按需读取和执行,从而把「一次性对话」变成可复用、可分发的标准化流程。用户既可以在 Claude 应用里通过 Settings 上传 Skill 压缩包,也可以在 Claude Code 里通过插件市场安装,这让社区分享的 Skill 能像 App 一样被一键启用。
这个 Skill 到底生成了什么
页面上的内容不是套模板填字段,而是围绕「这个人是谁」重新组织:
- 会动的虚拟形象:眨眼、打字、挥手,还会冒对话气泡。发型、配色、眼镜都可以选。
- 职业经历 = 游戏关卡:每份工作是一个关卡,升级时有「LEVEL UP!」弹出动画,并标注你在那段经历里解锁了什么技能。
- 成就计数器和「为什么雇我」卡片:每一张都对应简历里的真实内容,不是空话。
- 角色属性面板:带一个小的动画「快乐角落」场景,以及一些体现性格的 perks。
- GitHub 项目图:把项目和技术栈画成一张可交互的关系图。
这里的取舍很有意思:它放弃了「信息密度最大化」的传统简历思路,转而追求记忆点。招聘方看一份简历平均只有几秒,一个会动的头像和关卡式经历,至少在「让人多看两眼」这件事上有优势。
工作原理:Claude 负责读和问,Python 负责造
这个 Skill 的设计思路是职责分离,Claude 不做渲染,只做理解和采访。
当你说「用我的简历做一个动画简历」时,流程分四步:
- 索要简历。PDF、DOCX、纯文本、LinkedIn 的「Save to PDF」导出都支持,也可以直接给 GitHub 用户名。
- 问几个快速问题:主题风格、虚拟形象长相、喜欢的颜色、兴趣爱好、目标岗位。
之后就交给一个普通的 Python 脚本完成构建。Skill 文件夹的结构大致是:
skills/animated-resume/
├── SKILL.md # Claude 遵循的指令
├── assets/template.html # 动画页面模板
├── assets/example-profile.json # 完整的虚构示例
├── references/schema.md # profile.json 每个字段的说明
└── scripts/build.py # profile.json → index.html
这种「LLM 负责结构化数据、脚本负责确定性渲染」的模式,比让模型直接吐 HTML 更可靠——渲染逻辑不会因为模型发挥而漂移,样式和动画始终一致。
职责分离在这里指的是把「理解」和「渲染」拆给不同执行者。LLM 擅长从非结构化文本里抽取字段、追问缺失信息、做语义归类,但它在生成大段 HTML/CSS/JS 时容易出现格式漂移、样式不一致、变量名错乱等问题,而且每次输出都可能不同,难以复现。让 Python 脚本消费一个固定的 JSON 数据结构来渲染页面,则每次运行结果完全一致,样式和动画由模板决定,不受模型随机性影响。这种模式在工程上被称为「LLM 做前端理解、确定性代码做后端产出」,也是当前让 AI 生成内容更可控的主流做法之一。
两分钟上手
如果你用的是 Claude Code,安装只需要两条命令:
/plugin marketplace add dooa-ansari/animated-resume-claude-skill
/plugin install animated-resume@animated-resume
然后直接说:
Make me an animated resume from my CV.
如果你用的是 Claude 应用(claude.ai 或桌面端),从仓库下载 animated-resume-skill.zip,在 Settings → Capabilities → Skills 里上传即可。
Claude Code 是 Anthropic 推出的命令行编程工具,运行在终端里,可以直接读写本地文件、执行命令。它支持插件市场机制,用户通过 /plugin marketplace add 添加第三方仓库作为插件源,再用 /plugin install 安装具体插件。这里的 animated-resume 就是被封装成插件分发的 Skill。而 Claude 应用(claude.ai 网页版和桌面客户端)走的是另一条路径——Skills 功能位于 Settings 的 Capabilities 面板下,通过上传 zip 包来启用。两条路径最终加载的是同一套 SKILL.md 和脚本,区别只在分发方式。
发布上线
因为产物是单个 HTML 文件,托管几乎是零成本:
- 把
index.html放进一个 GitHub 仓库。 - 进入 Settings → Pages → Deploy from a branch,选择
main/(root)。 - 页面会发布在
https://<your-username>.github.io/<repo>/。
拿到链接后,放进 LinkedIn 资料或邮件签名都很自然。相比让人下载一份 PDF,一个链接显然更容易被点开——这也是这类「简历即网页」方案最实际的收益。
一些值得注意的设计取舍
从工程角度看,这个项目展示了 Claude Skill 的一种典型用法:把模型当成流程编排器和信息抽取器,而不是万能生成器。真正的难点(动画、布局、交互)交给模板和脚本,模型只负责把非结构化简历转成结构化的 profile.json。
代价也很明显:页面结构是固定的,个性化程度取决于模板里预留了多少槽位。作者在 demo 里用的是虚构人物,也说明了模板的灵活度上限。
代码以 MIT 协议开源,可以自用、fork,或者借鉴思路做自己的 Skill:
相关推荐

零成本搭建AI超级员工系统:智能体自动工作流全解析
深度拆解B站演示的AI超级员工系统:Agent智能体编排、数字人口播、地图与企业获客、24小时智能客服及法务模块全覆盖。分析零成本开户背后的商业逻辑与合规风险,帮助创业者判断这套AI数字员工系统的真实投产比。

Chatbot与AI Agent的本质区别:从对话到执行的跨越
Chatbot和AI Agent有什么区别?本文基于Learn Tech频道的MCP系列讲解,用订机票、笔记摘要等实例说明:Chatbot只给答案,Agent通过思考-行动-观察循环真正完成任务,并拆解模型、工具、记忆、目标四大部件及MCP的桥梁作用,同时讨论Agent的适用边界与权限风险。

免费GitHub仓库:342小时AI课程,从数学到MCP服务器
一个免费GitHub仓库提供342小时AI课程,包含523节课、20个阶段,覆盖数学基础到Agent构建和MCP服务器。支持目标驱动学习,每节课产出可留存的prompt、skill或agent,已有近10万人开始学习。