Communitygithub.com

roadkwonai/resume-portfolio

根据简历创建个人简历作品集网站。支持六种模板在线预览对比,选择后填入用户的简历(PDF、DOCX、文本)及附加信息。

resume-portfolio 是什么?

该技能旨在将用户的简历转换为一个完整的个人作品集网站。它基于 Resume Studio 模板库,专注于精确填充 `content/profile.json` 文件,而非重新设计布局。技能支持多种简历格式(PDF、DOCX、文本),并提供六种模板的在线画廊供用户预览和选择。工作流程包括:收集简历和用户偏好(如目标职位、网站语言)、选择模板、编写 profile.json(强调只使用简历中的事实信息,不虚构)、生成网站、验证格式和内容,最后交付可部署的独立站点。处理修改请求(更新内容或更换模板)时,技能仅需修改 profile.json 即可。该技能适用于 Cursor、Codex 和 Claude Code 等 AI 代理平台,通过命令行操作(如 `npm run studio`、`npm run new`)与本地仓库交互,并自动处理用户隐私数据(如不公开身份证号、家庭住址)。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/roadkwonai/resume-studio/tree/HEAD/.claude/skills/resume-portfolio

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

简历作品集

使用 Resume Studio 仓库的模板创建用户的作品集。网站已经构建完成,本技能的工作在于如实传递信息。与其重新设计布局,不如将时间花在精确填充 content/profile.json 上。

如果当前文件夹中包含 gallery/ 和 templates/,则说明这是 Resume Studio 目录。否则,询问用户位置;如果尚未下载,则引导用户执行 git clone https://github.com/roadkwonai/resume-studio.git 后运行 npm install。以下所有路径均相对于该文件夹。

1. 收集资料与选择模板

这两件事需要用户完成,因此一并请求。

启动画廊。 在后台执行 npm run studio(首次运行需要构建,耗时几分钟)。当 http://localhost:4100 响应时,在浏览器中打开。如果用户已经指定了模板,则可以跳过画廊。

在一则消息中提出请求。

  • 简历文件路径或粘贴的内容
  • 请用户从画廊中选择模板(屏幕上的“选择此模板”按钮会记录到 selection.json 中)
  • 如果有:目标职位、网站语言(韩语/英语)、个人照片、项目图片、GitHub 等链接

对于犹豫不决的用户,根据资料数量给出建议。推荐依据见 references/templates.md。

如果用户说已在画廊中选择了模板,则读取 selection.json 确认。此文件仅记录最后一次点击,因此可能是旧值。如果用户直接说出了模板名称,则以用户的话为准。

2. 编写 profile.json

阅读 references/profile-guide.md 和所选模板的 templates/<id>/content/README.md,然后在 scratchpad 中编写 profile.json。规范见 shared/profile.ts。

不要编写无来源的内容。 作品集是招聘人员作为事实阅读的文档。无来源的数据、评价、期限会导致用户在面试中陷入困境,并可能构成履历造假。空项在屏幕上会自动隐藏,因此留空总是安全的。润色语句是可以的,但不要夸大事实。例如,将“开发支付系统”改为“开发了支付系统”是允许的,但改为“为数百万用户开发了支付系统”则不允许。

只搬运可公开的内容。 简历是提交给公司的非公开文档,而网站是公开的。不要搬运身份证号、家庭住址、出生日期、家庭信息、兵役详情、薪资。仅当用户同意公开时,才包含电话号码。

如果资料多于一份或内容繁多,请阅读 references/sources.md。其中提供了当资料之间值不一致时以及如何取舍的标准。

编写后,运行 npm run validate -- <文件> 检查格式。

3. 生成作品集

npm run new -- <template-id> <slug> <profile.json路径>

如果用户指定了模板,则使用其 id;仅在遵循画廊选择时,在 <template-id> 位置填写 selected。slug 确定为用户姓名的英文小写(例如:hong-gildong)。然后:

  • 将照片、图片、简历 PDF 复制到 portfolios/<slug>/public/profile/。注意是复制而非移动。
  • 将图片路径写入 profile.json,格式为 /profile/文件名。
  • 通过 basics.resumeFile 提供简历 PDF 下载。这会公开整个 PDF。检查 PDF 中是否残留了从网站中移除的电话号码或地址,使用 pdftotext 验证,并在报告中务必提及。不要代为修改文件。
  • 读取 content/site.ko.json 中的固定文案。如果其中包含“开源贡献活动”等不符合该用户情况的说法,则根据事实修改。
  • 需要更改文案时,也修改 content/site.ko.json。不要修改组件。仅在规范中不存在的表述确实必要时,才修改组件并告知用户。

4. 验证

npm run verify -- <slug>

一次性检查格式、生产构建、以及模板演示人物的残留。通过后,在后台启动 npm run start -w @resume/portfolio-<slug>,并实际查看 1440px 和 390px 屏幕。如果重新构建过,则需要关闭之前的服务器。旧服务器无法正确服务新构建,会返回 500 错误。需检查的地方包括:长公司名或项目名的换行、水平溢出、看起来空白的区域、照片位置、因大写转换而变得别扭的名称(例如 SaaS 显示为 SAAS)。如果内容过长导致显示混乱,则在修改模板之前先缩短相应文案(保持事实不变)。

最后,将 profile.json 中的数值和专有名词与简历原文再次核对。

5. 交付

告知用户:

  • 运行地址和作品集路径
  • 因缺乏资料而缺失的板块,以及按什么顺序补充会更好
  • 此模板不显示的项目(各模板的 content/README.md 中有说明)。例如,若不显示学历的模板,务必告知
  • 从简历中特意移除的个人信息,以及下载的 PDF 中残留的个人信息
  • 资料之间不一致的值及所选的值,以及取舍时移除的项目
  • 润色过程中措辞发生变化,需要用户确认的句子

部署是公开行为,仅在用户请求时才进行。作品集文件夹是独立应用,可以直接部署。

portfolios/、PDF 和 selection.json 已包含在 .gitignore 中,不会提交到 Resume Studio 仓库。如果必须将用户的简历、照片、联系方式上传到公开仓库,则需先展示将要上传的文件列表并获取用户确认。

处理修改请求

对于已创建的作品集,仅修改 portfolios/<slug>/content/profile.json 并重新执行步骤 4。

要更换模板,则使用相同的 profile.json 创建一个新的 slug。由于格式相同,无需重新编写内容。在用户要求之前,不要删除旧文件夹。

相关技能