{"id":"f8fcfbcd-1e13-4880-8414-1cf120835934","entityType":"agent","slug":"clawhub-pluto417-qing-career-toolkit","name":"职业规划 + 简历生成 + 求职优化","canonicalUrl":"https://www.xpersona.co/agent/clawhub-pluto417-qing-career-toolkit","canonicalPath":"/agent/clawhub-pluto417-qing-career-toolkit","generatedAt":"2026-10-09T19:15:40.953Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":null},"description":"职业规划 + 简历生成 + 求职优化。Holland 测评与行动规划；7 套主题简历渲染、PDF 导出；JD 关键词匹配、ATS 检查、Bullet 量化改写。触发词：职业规划、生涯规划、考研就业、写简历、生成简历、导出 PDF、匹配 JD、ATS 检查、简历优化、量化改写、毕业迷茫。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.8K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17742vpk3t8tg578wcq7ym9658bk6cr:career-toolkit","sourceUrl":"https://clawhub.ai/pluto417-qing/career-toolkit","homepage":"https://clawhub.ai/pluto417-qing/skills/career-toolkit","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/pluto417-qing/career-toolkit","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/pluto417-qing/skills/career-toolkit","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":69,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"职业规划 + 简历生成 + 求职优化 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":null},"stars":null,"forks":null,"downloads":2764,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"2.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:39:57.046Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T11:39:57.047Z","lastCrawledAt":"2026-10-09T11:39:57.046Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T11:39:57.047Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-07-31T06:35:55.161Z","changelog":"Initial release of Career Toolkit: an all-in-one career development toolchain. - Integrates planning (Holland assessment, roadmap), resume building (multi-format export), and job application optimization (JD match, ATS check, bullet rewriting) - Modular structure: career-planner, resume-builder, resume-optimizer, with automatic module routing based on user intent - Supports seven themed resume renderings and PDF export - Smooth data flow between modules, with field mapping between career profile and resume - Command-line script guidance for all key features","fileCount":90,"zipByteSize":133277}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17742vpk3t8tg578wcq7ym9658bk6cr:career-toolkit","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17742vpk3t8tg578wcq7ym9658bk6cr:career-toolkit` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/pluto417-qing/career-toolkit before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T19:15:40.952Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pluto417-qing-career-toolkit/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":null},"readme":"Skill: 职业规划 + 简历生成 + 求职优化\n\nOwner: pluto417-qing\n\nSummary: 职业规划 + 简历生成 + 求职优化。Holland 测评与行动规划；7 套主题简历渲染、PDF 导出；JD 关键词匹配、ATS 检查、Bullet 量化改写。触发词：职业规划、生涯规划、考研就业、写简历、生成简历、导出 PDF、匹配 JD、ATS 检查、简历优化、量化改写、毕业迷茫。\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-07-31T06:35:55.161Z | auto\n\nInitial release of Career Toolkit: an all-in-one career development toolchain.\n\n- Integrates planning (Holland assessment, roadmap), resume building (multi-format export), and job application optimization (JD match, ATS check, bullet rewriting)\n- Modular structure: career-planner, resume-builder, resume-optimizer, with automatic module routing based on user intent\n- Supports seven themed resume renderings and PDF export\n- Smooth data flow between modules, with field mapping between career profile and resume\n- Command-line script guidance for all key features\n\nArchive index:\n\nArchive v0.1.0: 90 files, 133277 bytes\n\nFiles: .gitattributes (96b), .gitignore (47b), manifest.json (484b), modules (0b), modules/career-planner (0b), modules/career-planner/assets (0b), modules/career-planner/assets/assessments (0b), modules/career-planner/assets/assessments/holland-riasec.yaml (6479b), modules/career-planner/assets/assessments/mbti-simplified.yaml (6127b), modules/career-planner/assets/examples (0b), modules/career-planner/assets/examples/career_plan.yaml (1845b), modules/career-planner/assets/examples/profile.yaml (951b), modules/career-planner/MODULE.md (6727b), modules/career-planner/references (0b), modules/career-planner/references/collect-profile.md (1795b), modules/career-planner/references/path-playbooks (0b), modules/career-planner/references/path-playbooks/civil-service.md (1878b), modules/career-planner/references/path-playbooks/employment.md (2238b), modules/career-planner/references/path-playbooks/graduate-school.md (2593b), modules/career-planner/scripts (0b), modules/career-planner/scripts/render_plan_visual.py (9321b), modules/career-planner/scripts/score_holland.py (2739b), modules/career-planner/scripts/score_mbti.py (3503b), modules/resume-builder (0b), modules/resume-builder/assets (0b), modules/resume-builder/assets/examples (0b), modules/resume-builder/assets/examples/photo.jpg (15352b), modules/resume-builder/assets/examples/zh-fresh-grad.yaml (2521b), modules/resume-builder/assets/schema (0b), modules/resume-builder/assets/schema/resume.schema.json (7228b), modules/resume-builder/assets/site (0b), modules/resume-builder/assets/site/index.html (25676b), modules/resume-builder/assets/themes (0b), modules/resume-builder/assets/themes/academic (0b), modules/resume-builder/assets/themes/academic/style.css (3558b), modules/resume-builder/assets/themes/academic/template.html.j2 (10271b), modules/resume-builder/assets/themes/classic (0b), modules/resume-builder/assets/themes/classic/style.css (3038b), modules/resume-builder/assets/themes/classic/template.html.j2 (10227b), modules/resume-builder/assets/themes/compact (0b), modules/resume-builder/assets/themes/compact/style.css (2592b), modules/resume-builder/assets/themes/compact/template.html.j2 (9684b), modules/resume-builder/assets/themes/creative (0b), modules/resume-builder/assets/themes/creative/style.css (3308b), modules/resume-builder/assets/themes/creative/template.html.j2 (10183b), modules/resume-builder/assets/themes/elegant (0b), modules/resume-builder/assets/themes/elegant/style.css (3062b), modules/resume-builder/assets/themes/elegant/template.html.j2 (9992b), modules/resume-builder/assets/themes/executive (0b), modules/resume-builder/assets/themes/executive/style.css (3257b), modules/resume-builder/assets/themes/executive/template.html.j2 (10224b), modules/resume-builder/assets/themes/infographic (0b), modules/resume-builder/assets/themes/infographic/style.css (4221b), modules/resume-builder/assets/themes/infographic/template.html.j2 (10728b), modules/resume-builder/assets/themes/metro (0b), modules/resume-builder/assets/themes/metro/style.css (3289b), modules/resume-builder/assets/themes/metro/template.html.j2 (10224b), modules/resume-builder/assets/themes/minimal (0b), modules/resume-builder/assets/themes/minimal/style.css (2749b), modules/resume-builder/assets/themes/minimal/template.html.j2 (9241b), modules/resume-builder/assets/themes/modern (0b), modules/resume-builder/assets/themes/modern/style.css (3661b), modules/resume-builder/assets/themes/modern/template.html.j2 (10555b), modules/resume-builder/assets/themes/tech (0b), modules/resume-builder/assets/themes/tech/style.css (3748b), modules/resume-builder/assets/themes/tech/template.html.j2 (10183b), modules/resume-builder/MODULE.md (5457b), modules/resume-builder/references (0b), modules/resume-builder/references/schema.md (3377b), modules/resume-builder/references/themes.md (3310b), modules/resume-builder/references/writing-tips.md (2285b), modules/resume-builder/scripts (0b), modules/resume-builder/scripts/render.py (4242b), modules/resume-builder/scripts/to_markdown.py (9397b), modules/resume-builder/scripts/validate.py (1470b), modules/resume-optimizer (0b), modules/resume-optimizer/MODULE.md (4632b), modules/resume-optimizer/references (0b), modules/resume-optimizer/references/ats-check.md (3562b), modules/resume-optimizer/references/bullet-rewrite.md (2866b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: career-toolkit\ndescription: 职业规划 + 简历生成 + 求职优化。Holland 测评与行动规划；7 套主题简历渲染、PDF 导出；JD 关键词匹配、ATS 检查、Bullet 量化改写。触发词：职业规划、生涯规划、考研就业、写简历、生成简历、导出 PDF、匹配 JD、ATS 检查、简历优化、量化改写、毕业迷茫。\nauthor: 袁箐鸿\n---\n\n# Career Toolkit\n\n一站式职业发展工具包，覆盖从「方向规划」到「简历产出」的完整链路。\n\n## 模块一览\n\n| 模块 | 路径 | 定位 |\n|---|---|---|\n| **career-planner** | [modules/career-planner/MODULE.md](modules/career-planner/MODULE.md) | 画像收集 → Holland 测评 → 路径规划 → 行动报告 |\n| **resume-builder** | [modules/resume-builder/MODULE.md](modules/resume-builder/MODULE.md) | YAML 简历 → Schema 校验 → HTML/PDF/JSON 多端导出 |\n| **resume-optimizer** | [modules/resume-optimizer/MODULE.md](modules/resume-optimizer/MODULE.md) | JD 匹配 → Bullet 量化改写 → 中文 ATS 检查 |\n\n## 路由规则\n\n根据用户意图选择加载哪个模块的完整文档：\n\n### → career-planner\n\n触发词：职业规划、生涯规划、我该做什么工作、考研还是就业、考公规划、留学规划、Holland 测评、毕业迷茫、未来方向、行动计划\n\n加载：[modules/career-planner/MODULE.md](modules/career-planner/MODULE.md)\n\n### → resume-builder\n\n触发词：写简历、做简历、生成简历、简历模板、resume、CV、导出 PDF、预览简历、换主题、修改简历、发飞书、简历发飞书、分享简历、发给导师、发给 HR\n\n加载：[modules/resume-builder/MODULE.md](modules/resume-builder/MODULE.md)\n\n### → resume-optimizer\n\n触发词：匹配 JD、JD 匹配、关键词覆盖率、这个岗位合适吗、ATS 检查、简历体检、格式合规、量化改写、改 bullet、优化经历描述、简历诊断、简历优化\n\n加载：[modules/resume-optimizer/MODULE.md](modules/resume-optimizer/MODULE.md)\n\n### 联动场景\n\n当用户在做规划时说\"顺便帮我做个简历\"，由 career-planner 完成画像后，自动将 `profile.yaml` 字段映射到 `resume.yaml`，然后切换到 resume-builder 模块执行渲染。\n\n## 模块间共享约定\n\n- 用户工作目录结构：\n  ```\n  ./career/profile.yaml          ← career-planner 产出\n  ./career/career_plan.md        ← career-planner 产出\n  ./resume/resume.yaml           ← resume-builder 输入\n  ./resume/out/resume.html|pdf   ← resume-builder 产出\n  ```\n- `career-planner` 的 `profile.yaml → resume.yaml` 字段映射关系见 career-planner MODULE.md 尾部。\n- 脚本路径均相对于各自模块目录，调用时需 `cd` 或用绝对路径：\n  - 校验：`python3 modules/resume-builder/scripts/validate.py <resume.yaml>`\n  - 渲染：`python3 modules/resume-builder/scripts/render.py <resume.yaml> --out-dir ./resume/out --pdf`\n  - Holland 评分：`python3 modules/career-planner/scripts/score_holland.py <answers.yaml>`\n  - JD 匹配：`python3 modules/resume-optimizer/scripts/jd_match.py <resume.yaml> --jd <jd.txt>`\n  - Bullet 诊断：`python3 modules/resume-optimizer/scripts/bullet_rewrite.py <resume.yaml>`\n  - ATS 检查：`python3 modules/resume-optimizer/scripts/ats_check.py <resume.yaml>`\n\nFile v0.1.0:README.md\n\n<h1 align=\"center\">Career Toolkit</h1>\n<p align=\"center\">Agent Skill — 用对话代替表单，从职业规划到简历生成一步到位。</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/type-Agent%20Skill-purple\"/>\n  <img src=\"https://img.shields.io/badge/python-3.8+-blue\"/>\n  <img src=\"https://img.shields.io/badge/license-MIT-green\"/>\n</p>\n\n## 主题画廊\n\n11 套主题，每套有头像/无头像两版，支持口头微调。\n\n<table>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/classic-avatar/resume.png\" width=\"320\"/><br/><b>Classic</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/modern-avatar/resume.png\" width=\"320\"/><br/><b>Modern</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/minimal-avatar/resume.png\" width=\"320\"/><br/><b>Minimal</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/elegant-avatar/resume.png\" width=\"320\"/><br/><b>Elegant</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/compact-avatar/resume.png\" width=\"320\"/><br/><b>Compact</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/academic-avatar/resume.png\" width=\"320\"/><br/><b>Academic</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/infographic-avatar/resume.png\" width=\"320\"/><br/><b>Infographic</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/creative-avatar/resume.png\" width=\"320\"/><br/><b>Creative</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/executive-avatar/resume.png\" width=\"320\"/><br/><b>Executive</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/metro-avatar/resume.png\" width=\"320\"/><br/><b>Metro</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/tech-avatar/resume.png\" width=\"320\"/><br/><b>Tech</b></td>\n<td></td>\n</tr>\n</table>\n\n---\n\n## 工作原理\n\n```\n       ┌─────────────────────────────────────────────────┐\n       │              Career Toolkit                      │\n       │                                                 │\n       │   ① Planner    ② Builder      ③ Optimizer      │\n       │   ┌────────┐   ┌──────────┐   ┌────────────┐   │\n       │   │ 画像   │   │ 对话挖掘 │   │ JD 关键词  │   │\n       │   │ 测评   │──→│ YAML生成 │──→│ ATS 检查   │   │\n       │   │ 规划   │   │ 主题渲染 │   │ Bullet改写 │   │\n       │   └────────┘   └──────────┘   └────────────┘   │\n       │                                                 │\n       │   profile.yaml → resume.yaml → 匹配报告         │\n       └─────────────────────────────────────────────────┘\n```\n\n- **Career Planner** — 引导式提问 + Holland 测评，产出职业规划和行动时间线\n- **Resume Builder** — 对话挖掘经历 → YAML → 选主题渲染（HTML/PDF/Markdown/JSON Resume）\n- **Resume Optimizer** — 给 JD 算覆盖率、ATS 合规检查、逐条 Bullet 改写\n\n---\n\n## 安装\n\n在你使用的 Agent 中直接发送：\n\n```\n帮我安装这个 skill: https://github.com/Pluto417-Qing/resume-skill\n```\n\n### 手动安装\n\n```bash\ngit clone https://github.com/Pluto417-Qing/resume-skill.git\ncd resume-skill\npip install PyYAML Jinja2 jsonschema\npip install weasyprint  # 可选，PDF 导出\n```\n\n### 各 Agent / IDE 接入方式\n\n| Agent / IDE | 接入方法 |\n|---|---|\n| Trae | 克隆到 `~/.trae/skills/career-toolkit` |\n| Cursor | 克隆到 `~/.cursor/skills/career-toolkit`，或在 `.cursor/rules/` 中引用 |\n| Windsurf | 克隆到 `~/.windsurf/skills/career-toolkit` |\n| Claude Code | 将仓库路径加入项目 `AGENTS.md` 或 `~/.claude/settings.json` 的 skills 列表 |\n| Codex (OpenAI) | 在 `codex.yaml` 中注册为 tool，或放入 `~/.codex/skills/` |\n| OpenClaw | 在 `.openclaw/config.yaml` 的 `skills` 字段添加本地路径或远程 URL |\n| Hermes | 在 `hermes.config.json` 的 `plugins` 中添加仓库路径 |\n| 通用 | 克隆到任意目录，在你的 Agent 配置中指向该路径即可 |\n\n---\n\n## 技术实现\n\n| 层 | 技术选型 |\n|---|---|\n| 数据层 | YAML + JSON Schema 校验 |\n| 渲染层 | Jinja2 模板 + 纯 CSS |\n| 导出层 | WeasyPrint / Markdown / JSON Resume |\n| 测评层 | Python + YAML 题库 |\n| 优化层 | 关键词提取 + 规则引擎 |\n\n全离线，不依赖外部 API。模块间通过文件解耦，可单独使用。\n\n---\n\n## License\n\nMIT\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn77zwehx3reya36tz9wkk2q7n8bjqe3\",\n  \"slug\": \"career-toolkit\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785479755161\n}\n\nFile v0.1.0:modules/career-planner/references/collect-profile.md\n\n# 用户画像收集指南\n\n`profile.yaml` 是 career-planner 的核心数据文件。收集时的原则：**先粗后细，边聊边补**，不要一次性甩 20 个问题让用户回答。\n\n## 分阶段收集\n\n### 第一轮（必须）—— 30 秒能答完\n\n- 姓名 / 年龄 / 城市\n- 当前身份：**在校学生**（大几）/ **应届毕业生** / **工作 N 年**\n- 专业 + 学校层级（985/211/双一流/普通本科/专科）\n\n有这些就足以启动路径判断，不要在第一轮里问 GPA、实习经历等细节。\n\n### 第二轮（引导用户展开）—— 根据第一轮定向\n\n**分支 A：在校 / 应届 / 未明确方向**\n- 最感兴趣的 3 门课程\n- 最近 1 年做过最\"来劲\"的一件事（不管是不是学业）\n- 家人 / 自己对\"稳定 vs 挑战\"的偏好\n\n**分支 B：已有初步目标**\n- 现在最纠结的选项（例：考研 vs 就业 / 大厂 vs 央企 / 国内 vs 出国）\n- 3 年后希望自己在哪里、做什么\n\n### 第三轮（简版测评）\n\n引导做 Holland 60 题（见 `assets/assessments/holland-riasec.yaml`）。别一次抛 60 题，可以分 3 组每组 20 题。\n\n### 第四轮（简历基线）\n\n在有明确方向后再补齐：GPA、排名、实习、项目、语言分数、获奖……这些同时也是 `resume-builder` 的输入。\n\n## 反模式\n\n- **一次问太多**：用户会疲劳，且答得敷衍\n- **过早追问细节**：还没确定方向就问\"你的 GPA\"意义不大\n- **给固定选项**：路径选项应根据用户画像动态生成，而不是列 5 条让用户勾\n- **忽略约束**：家庭经济、地域限制、健康状况都可能是硬约束，需要主动询问\n\n## 输出\n\n把每轮结果直接写到 `profile.yaml`（覆盖式增量更新即可），保证下次会话能续跑。\n\nFile v0.1.0:modules/career-planner/references/path-playbooks/civil-service.md\n\n# 考公 / 事业单位 Playbook\n\n## 路径分支\n\n| 路径 | 说明 | 主要考试 |\n|---|---|---|\n| 国考 | 中央国家机关 | 行测 + 申论（+专业科目） |\n| 省考 | 各省公务员 | 行测 + 申论（时间通常错开国考） |\n| 选调生 | 面向高校毕业生的定向招录 | 类似省考 + 面试 |\n| 事业单位 | 学校、医院、科研院所行政岗 | 公基 / 行测 + 专业课 |\n| 参公 / 遴选 | 已工作后转公务员 | 行测 + 面试 |\n\n## 关键节点（应届 / 参考）\n\n| 时间 | 动作 |\n|---|---|\n| 大三下 | 决定是否参加，评估性格 / 家庭 / 城市匹配度 |\n| 大四上 6-7 月 | 选调生开始报名（部分省份） |\n| 大四上 10 月 | 国考公告发布 |\n| 大四上 11-12 月 | 国考笔试 |\n| 大四下 2-4 月 | 面试、体检、政审 |\n| 大四下 3-5 月 | 各省省考陆续 |\n\n## 岗位选择考量\n\n- **岗位匹配度**：专业限制、政治面貌、性别倾向、基层服务年限\n- **地点**：一线城市 vs 家乡；乡镇岗位竞争小但需要长期扎根\n- **发展路径**：中央 / 省直 / 市直 / 区县 / 乡镇 → 不同天花板与晋升节奏\n- **稳定 vs 事业心**：Holland Code 含 C（常规型）+ S（社会型）通常契合度高；含 A（艺术型）为主的通常需要慎重\n\n## 备考核心\n\n- **行测**：题量大、时间紧，靠刷题量堆速度和准确率（近 10 年真题反复刷）\n- **申论**：靠输入 + 输出，背材料 + 每周至少一篇完整卷\n- **面试**：结构化面试为主，8-15 分钟 3-4 题，考察表达 / 综合分析 / 情境应对\n\n**给应届生的建议**：如果 Holland Code 里 C < 30 分，认真考虑是否真的适合，而不是\"没别的选项才考\"。\n\n## 输出\n\n给用户一份「岗位路径对比 + 备考 6 个月/12 个月计划 + 关键节点日历」，落地到 `career_plan.md`。\n\nFile v0.1.0:modules/career-planner/references/path-playbooks/employment.md\n\n# 就业方向 Playbook（面向应届 / 校招）\n\n## 输入信息\n\n从 `profile.yaml` 获取：`education.major`、`experiences`、`skills.hard`、`assessment.holland`、`goals.targets`。\n\n## 匹配步骤\n\n1. **岗位候选生成**：结合 Holland Code 与专业 + 已有实习/项目，产出 3-6 个候选岗位（行业 × 职能）。\n2. **能力差距分析**：对每个候选岗位列 5-8 项核心能力，标记\"已具备/初步/待补齐\"。\n3. **信息渠道**：给出该岗位典型 JD 关键词，用户可以拿去搜岗位，也可以喂给 `resume-optimizer`。\n4. **路径决策**：给出 A/B/C 三档（保底 / 主攻 / 冲刺）目标。\n\n## 校招时间线（内地）\n\n| 阶段 | 时间 | 关键动作 |\n|---|---|---|\n| 提前批 / 内推 | 毕业前 1 年的 3-5 月 | 大厂春招内推、暑期实习申请（**转正机会**） |\n| 暑期实习 | 6-8 月 | 用一段完整实习换转正 offer / 履历 |\n| 秋招（正式） | 毕业前 1 年的 8-11 月 | 主战场，投递 30-60 家 |\n| 秋招补招 | 12 月 - 次年 2 月 | 岗位少但仍有机会 |\n| 春招 | 次年 3-5 月 | 补录、日常岗，机会明显少于秋招 |\n\n**给应届生的核心建议**：暑期实习尽量拿一段\"能转正的大厂/头部公司\"，秋招的谈判筹码 80% 来自此段实习。\n\n## 常见职能岗位画像（简版）\n\n### 后端 / 服务端工程师\n- 核心能力：一门系统语言（Go/Java/Rust/C++）+ 一门脚本语言、数据库、分布式基础、算法\n- 差异化：开源贡献、系统设计能力、性能优化案例\n\n### 前端 / 全栈\n- 核心能力：JS/TS 深度、一款主流框架、工程化、浏览器原理、可访问性\n- 差异化：编辑器/低代码/开发者工具方向的深度项目\n\n### 数据 / 算法\n- 核心能力：Python 数据栈、SQL、统计基础、一个方向的领域知识（NLP/CV/推荐）\n- 差异化：Kaggle 名次 / 论文一作 / 竞赛奖项\n\n### 产品经理\n- 核心能力：需求分析、结构化表达、数据敏感度\n- 差异化：自己做过一个上线的小产品（含用户/数据）\n\n## 输出\n\n给用户一份「岗位候选表 + 能力差距 + 3-6-12 月里程碑 + 关键节点日历」，落地到 `career_plan.md`。\n\nFile v0.1.0:modules/career-planner/references/path-playbooks/graduate-school.md\n\n# 读研 Playbook（考研 / 保研 / 留学）\n\n先判断分支：**保研 / 考研 / 留学 / 直博**，四条路径的时间线和准备重点差异极大。\n\n## 路径速判\n\n| 路径 | 触发条件 | 决策时间 |\n|---|---|---|\n| 保研 | 本科前 6 学期综合排名靠前（一般前 10-30%，看学校政策） | 大二结束前决定 |\n| 直博 | 有明确研究方向 + 导师推荐 | 大三上确认 |\n| 考研 | 保研无望或目标院校不接收外校保研 | 大三上开始 |\n| 留学 | 家庭支持 + 语言基础 + 想跨地区/跨学科 | 大二结束前启动 |\n\n## 保研（推免）\n\n### 关键节点\n\n| 时间 | 动作 |\n|---|---|\n| 大一 - 大三 | 保 GPA / 排名；至少 1 段科研 / 竞赛 |\n| 大三下（3-5 月） | 联系目标院校夏令营（4-5 月投递） |\n| 大三暑假（6-7 月） | 参加夏令营（拿到\"优秀营员\"= 半个 offer） |\n| 大四上（9 月） | 预推免 / 九推 |\n| 大四上（10 月） | 教育部系统填报，确认 offer |\n\n### 准备清单\n\n- **硬指标**：加权成绩、专业排名、六级/雅思、发表/竞赛\n- **软材料**：个人陈述、简历、推荐信 2 封、研究计划（部分学校要求）\n- **联系导师**：邮件模板 + 附件（成绩单、简历、代表作），大三下开始群发\n\n## 考研\n\n### 关键节点\n\n| 时间 | 动作 |\n|---|---|\n| 大三上 | 定学校、定专业、定方向 |\n| 大三下 | 数学/英语基础 |\n| 大三暑假 | 数学强化 + 专业课第一轮 |\n| 大四上 9 月 | 大纲发布，冲刺 |\n| 大四上 12 月 | 初试 |\n| 次年 2-3 月 | 出分、复试 |\n| 次年 4 月 | 拟录取 |\n\n### 常见坑\n\n- **别拖到大四才开始**：数学/专业课需要至少 6-8 个月扎实周期\n- **信息差最致命**：目标院校近 5 年真题、复试比、\"歧视\"传闻先摸清\n- **备一个 B 计划**：调剂 / 二战 / 就业 → 心态更稳\n\n## 留学\n\n### 关键节点（以英美申请为例）\n\n| 时间 | 动作 |\n|---|---|\n| 大二 | 语言（托福/雅思）+ GRE/GMAT 开始 |\n| 大三上 | 定校（冲/主/保各 3-5 所）、联系推荐人 |\n| 大三下 - 暑假 | 语言分数、科研 / 实习丰富履历 |\n| 大四上 9-12 月 | 网申 |\n| 次年 1-4 月 | Offer + 面试 |\n| 次年 5-8 月 | 签证、行前 |\n\n### 材料\n\n- 成绩单（中英）+ WES 认证（部分学校）\n- 语言（TOEFL/IELTS）+ 标化（GRE/GMAT）\n- PS + CV + 2-3 封推荐信\n- 作品集（艺术设计类）\n\n## 输出\n\n给用户一份「路径可行性对比 + 目标院校候选 + 12 个月里程碑」，落地到 `career_plan.md`。\n\nFile v0.1.0:modules/resume-builder/references/schema.md\n\n# Resume Schema 详解\n\n`assets/schema/resume.schema.json` 是权威定义（JSON Schema Draft 2020-12），本文档只做人类可读的解释与常见坑。\n\n## 顶层字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|---|---|---|---|\n| `meta` | object | 否 | 元信息（语言、主题、更新时间） |\n| `basics` | object | 是 | 个人基础信息 |\n| `education` | array | 否 | 教育经历 |\n| `work` | array | 否 | 工作/实习经历 |\n| `projects` | array | 否 | 项目经历 |\n| `research` | array | 否 | 科研经历 |\n| `publications` | array | 否 | 论文/出版 |\n| `awards` | array | 否 | 获奖/荣誉 |\n| `skills` | array | 否 | 技能 |\n| `languages` | array | 否 | 语言能力 |\n| `activities` | array | 否 | 社团 / 志愿 |\n| `interests` | array | 否 | 兴趣 |\n| `references` | array | 否 | 推荐人 |\n| `custom_sections` | array | 否 | 自定义模块（考研目标 / 考公规划 / 作品集…） |\n\n## `meta`\n\n```yaml\nmeta:\n  language: zh   # zh | en | zh-en\n  theme: classic # 主题目录名\n  updated_at: 2026-07\n```\n\n## `basics`\n\n必填 `name`；其余可选。`profiles` 用于 GitHub/LinkedIn 等社交主页：\n\n```yaml\nbasics:\n  name: 张三\n  english_name: Zhang San\n  label: 前端工程师 · 应届生      # 一句话定位/求职意向\n  gender: 男\n  birth: 2003-05\n  phone: \"138 xxxx 8888\"\n  email: san@example.com\n  location: 北京\n  website: https://example.com\n  avatar: ./avatar.jpg           # 可选，本地路径或 URL\n  summary: 简介一段\n  profiles:\n    - {network: GitHub, username: san, url: https://github.com/san}\n```\n\n## `education[]`\n\n必填 `institution`。示例：\n\n```yaml\neducation:\n  - institution: 某某大学\n    area: 计算机科学与技术        # 专业\n    degree: 本科                  # 本科/硕士/博士\n    gpa: 3.7/4.0\n    rank: 15/120\n    start: 2022-09\n    end: 2026-06\n    courses: [数据结构, 操作系统]\n    highlights:\n      - 校级一等奖学金 * 3\n```\n\n## `work[]`\n\n必填 `organization`。`type` 建议：`全职 / 实习 / 兼职 / 顾问`。\n\n## `projects[]`\n\n必填 `name`。`tech` 是关键词数组，模板会用 `·` 拼接展示。\n\n## `custom_sections[]`\n\n用于所有\"标准字段之外\"的模块。每个 section 有 `title` 和 `items[]`，item 支持 `heading / subheading / date / summary / highlights`。\n\n```yaml\ncustom_sections:\n  - title: 考研规划\n    items:\n      - heading: 目标院校：清华大学计算机系\n        subheading: 学硕（学术型硕士）\n        highlights:\n          - 一志愿方向：系统软件\n          - 参考分数线：380+\n```\n\n## 常见坑\n\n1. **时间字段是字符串**：`2025-06` 会被 YAML 解析成 `datetime.date`，会导致 schema 校验失败。**用引号或写 `2025-06-01`，或使用 `\"2025-06\"`**。\n2. **placeholder 字符串要加引号**：形如 `<xxx>` 的值必须写成 `\"<xxx>\"`，避免被 YAML 当作特殊 token。\n3. **`custom_sections[].items` 键名**：Jinja2 模板中不能写 `cs.items`（会撞名 `dict.items()` 方法），必须写 `cs['items']`。schema 层没有限制，但如果你在自定义主题里访问，请注意。\n4. **空数组不要写**：`education: []` 会被渲染为空 section，不美观；直接删掉字段。\n5. **highlights 每条控制在一句话内**：模板会以 `<li>` 渲染，多句话会挤在同一 bullet 中。\n\nFile v0.1.0:modules/resume-builder/references/themes.md\n\n# 主题体系与定制\n\n## 目录结构\n\n```\nassets/themes/<theme-name>/\n├── template.html.j2   # Jinja2 模板，接收 data 变量\n└── style.css          # WeasyPrint / 浏览器兼容 CSS\n```\n\n`render.py` 会用 Jinja2 加载 `template.html.j2`，`{% include 'style.css' %}` 把样式内联到 `<style>`。这样单个 HTML 文件就能同时用于浏览器预览和 PDF 打印，无需外链资源。\n\n## 内置主题\n\n| 主题 | 定位 | 适用 |\n|---|---|---|\n| `classic` | 单栏、传统中文简历 | A4 打印、投递国内公司 |\n| `modern` | 双栏（深色侧边栏 + 右主栏）、现代风格 | 互联网/设计岗、突出技能与联系方式 |\n| `academic` | 单栏学术长 CV、衬线字体、无页数限制 | 科研岗申请、学术会议、奖学金申报 |\n| `minimal` | 极简留白、无装饰线、轻字重 | 设计/产品/创意岗、外企 |\n| `compact` | 紧凑高密度、小字号、深色 section 标题条 | 经验丰富需压缩至一页 |\n| `elegant` | 衬线标题 + 无衬线正文、铜棕色调、左竖线装饰 | 管理/文职/外企/高端猎头投递 |\n| `infographic` | 左面板技能进度条 + 右主栏时间线、绿色主题 | 互联网/产品/运营、强调可视化 |\n| `metro` | 扁平化设计、青色大色块 banner 头部、卡片式条目 | 互联网产品岗、UI/UX 设计 |\n| `creative` | 渐变色头部、圆角卡片条目、珊瑚暖色调 | 设计/营销/创意岗、个性化投递 |\n| `executive` | 深色 navy 头部 + 金色点缀、商务高端感 | 高管/资深人士、猎头/高端岗位 |\n| `tech` | 暗色背景、等宽字体、终端风格 section 标记 | 开发工程师、技术岗、极客风格 |\n\n## 多语言支持\n\n所有内置主题均支持通过 `meta.language` 切换界面语言：\n\n| 值 | 效果 |\n|---|---|\n| `zh`（默认） | 中文标签：教育经历、项目经历… |\n| `en` | 英文标签：Education、Projects… |\n| `zh-en` | 双语标签：教育经历 / Education… |\n\n```yaml\nmeta:\n  language: en   # 切换为英文简历\n  theme: classic\n```\n\n实现方式：每个模板顶部维护一个 `_i18n` 字典（zh / en / zh-en 三组），通过 `{% set t = _i18n[lang] %}` 选取，section 标题和内联标签统一使用 `{{ t.xxx }}`。新增主题时复制该结构即可。\n\n## 新增主题步骤\n\n1. 复制 `classic/` 到 `assets/themes/<my-theme>/`\n2. 改 `style.css` 调整字体、间距、颜色\n3. 需要重排布局时改 `template.html.j2`；数据字段跟 schema 保持一致即可\n4. 在 `resume.yaml` 的 `meta.theme` 里写 `<my-theme>`\n\n## WeasyPrint 兼容注意\n\n- 支持大部分 CSS 2.1 + 一部分 CSS 3，**不支持 Flexbox 的部分行为、Grid 部分行为、动画**——布局建议用块级 + `display: flex`（简单场景）或表格布局。\n- 通过 `@page { size: A4; margin: ... }` 控制页边距。\n- 中文字体：优先使用系统里安装的思源黑体 / PingFang / Microsoft YaHei；若在无字体环境，WeasyPrint 会降级到默认，但仍能生成 PDF，只是排版风格差异较大。\n\n## 浏览器预览与 PDF 打印一致性\n\n- 保持样式尽量简单：避免 fixed / sticky、flex `gap` 依赖等浏览器新特性\n- 分页控制：给 `section` / `entry` 加 `page-break-inside: avoid;`，避免一条经历跨页\n\nFile v0.1.0:modules/resume-builder/references/writing-tips.md\n\n# 简历写作建议\n\n面向应届/新人常见问题的最短版指南。核心：**具体、量化、动词开头**。\n\n## Bullet 三要素：动作 + 结果 + 度量\n\n不推荐：\n> - 参与了 XX 系统的开发，负责前端相关工作，学习了很多东西\n\n推荐：\n> - **主导** XX 表单引擎重构，将 30+ 场景 schema 化，前端代码行数 **下降 45%**\n> - **引入** 运行时校验框架，将线上表单类问题 **减少 60%**\n\n模板：\n```\n[动词开头] [做了什么] [涉及范围/规模] [造成的量化结果]\n```\n\n**动词库**：主导 / 独立完成 / 设计 / 落地 / 推动 / 优化 / 沉淀 / 复现 / 分析 / 支持\n\n## 没有数字怎么办\n\n优先找这几类量化：\n- 规模：条数、场景数、用户数、代码行数\n- 时间：从 X 小时缩短到 Y 分钟\n- 质量：bug 数下降、覆盖率提升、可用性 SLO\n- 对外影响：文档阅读量、star 数、复用团队数\n\n真的没有时，用相对量化（\"占团队核心模块 3/8\"）或直接说事实（\"作为 Owner 沉淀了 4 篇技术方案\"），比空口\"很好地完成\"更可信。\n\n## 简历字段的取舍\n\n- **不要**：政治面貌、身高体重、婚姻状况、身份证号、家庭地址、家庭成员详情\n- **可以有**：城市偏好、性别（可选）、期望岗位（放在 `basics.label`）\n- **加分**：GitHub / 技术博客 / 作品集链接（放到 `basics.profiles`）\n- **学生特色**：GPA（≥3.5/4.0 或 85+/100 建议写）、排名（前 20% 建议写）、核心课程（≤6 门）\n\n## 长度控制\n\n- 应届/新人：**1 页**为宜，字号不小于 10pt\n- 有 3+ 段工作经历：可 2 页，但同一段经历不要跨页\n- 每段经历的 `highlights` 建议 **3-5 条**，超过 6 条会显得冗长\n\n## 顺序建议\n\n一般：**基础 → 教育 → 实习/工作 → 项目 → 技能 → 获奖 → 其他**\n\n若你的强项是项目而非公司背景（如独立开发者、开源作者），把 `projects` 提到 `work` 之前。可以通过在 `resume.yaml` 里字段顺序 + 自定义主题实现。\n\n## 中英双语\n\n短期最简单方式：**同一份 yaml，`language: zh`；如需英文版单独维护 `resume-en.yaml`**。避免在同一份文件里塞中英对照，模板复杂度会飙升。\n\nFile v0.1.0:modules/resume-optimizer/references/ats-check.md\n\n# 中文 ATS 检查规则\n\n## 背景\n\n国内主流 ATS（北森、Moka、飞书招聘、拉勾、Boss 直聘解析器）对简历格式有隐性要求。不合规不会报错，但会导致信息丢失或字段错位。\n\n## 检查项清单\n\n### 一、字段规范\n\n| # | 检查项 | 规则 | 严重度 |\n|---|--------|------|--------|\n| 1.1 | 姓名存在 | `basics.name` 非空 | ❌ 致命 |\n| 1.2 | 手机号格式 | `basics.phone` 匹配 `1[3-9]\\d{9}` | ❌ 致命 |\n| 1.3 | 邮箱格式 | `basics.email` 匹配标准邮箱正则 | ⚠️ 警告 |\n| 1.4 | 求职意向 | `basics.label` 非空 | ⚠️ 警告 |\n| 1.5 | 教育经历 | `education` 数组非空且至少 1 项有 `institution` + `degree` | ❌ 致命 |\n| 1.6 | 公司/学校名全称 | 不含缩写（如\"北邮\"应为\"北京邮电大学\"） | ⚠️ 警告 |\n\n### 二、时间格式\n\n| # | 检查项 | 规则 | 严重度 |\n|---|--------|------|--------|\n| 2.1 | 格式统一 | 所有 `start`/`end` 字段使用同一格式 | ❌ 致命 |\n| 2.2 | 推荐格式 | 应为 `YYYY.MM` 或 `YYYY-MM`，不要用\"年/月\"汉字 | ⚠️ 警告 |\n| 2.3 | 时间连续性 | 教育/工作时间线无不合理重叠（同时全职两家公司） | ⚠️ 警告 |\n| 2.4 | 倒序排列 | 教育和工作经历按时间倒序（最近的在前） | ⚠️ 警告 |\n| 2.5 | \"至今\"表达 | 在职/在读用 `end: \"至今\"` 或留空，不要写未来日期 | ⚠️ 警告 |\n\n### 三、文件与排版\n\n| # | 检查项 | 规则 | 严重度 |\n|---|--------|------|--------|\n| 3.1 | 文件命名 | PDF 文件名建议：`姓名_岗位_手机号.pdf` | ⚠️ 警告 |\n| 3.2 | 无图片/图表 | 简历中不应嵌入图片（头像除外）、图表、二维码 | ❌ 致命 |\n| 3.3 | 单栏布局 | 避免双栏/多栏布局，ATS 按行解析可能错位 | ❌ 致命 |\n| 3.4 | 无表格嵌套 | 不使用表格布局简历内容（渲染主题应使用 div 而非 table） | ⚠️ 警告 |\n| 3.5 | 字体嵌入 | PDF 使用常见字体（宋体/微软雅黑/思源黑体），避免手写体 | ⚠️ 警告 |\n| 3.6 | 页数 | 应届 1 页，社招 ≤2 页 | ⚠️ 警告 |\n\n### 四、内容合规\n\n| # | 检查项 | 规则 | 严重度 |\n|---|--------|------|--------|\n| 4.1 | 无敏感信息 | 不含身份证号、家庭住址、婚姻状况、政治面貌 | ⚠️ 警告 |\n| 4.2 | 无错别字/乱码 | 检测常见编码问题（UTF-8 BOM、乱码字符） | ⚠️ 警告 |\n| 4.3 | 技能等级规范 | 避免\"精通\"（除非真的顶级），推荐\"熟练/熟悉/了解\" | ⚠️ 警告 |\n| 4.4 | highlights 非空 | work/projects 中至少有 1 条 highlight | ⚠️ 警告 |\n\n## 严重度定义\n\n| 级别 | 含义 | 行动 |\n|------|------|------|\n| ❌ 致命 | 会导致 ATS 解析失败或关键信息丢失 | 必须修复 |\n| ⚠️ 警告 | 不影响解析但影响阅读体验或评分 | 建议修复 |\n\n## 自动修复策略\n\n以下问题 Agent 可自动修复（修改 `resume.yaml`）：\n- 时间格式统一化\n- \"至今\"标准化\n- 经历倒序排列\n- 去除敏感字段\n\n以下问题需用户确认后修复：\n- 学校/公司全称补全（需确认是否正确）\n- 文件命名（需要重新渲染 PDF）\n- 头像移除（用户可能有意保留）\n\n## 主题合规\n\n使用 `resume-builder` 内置主题时，以下检查自动通过：\n- 3.2（主题不会注入额外图片）\n- 3.3（内置主题均为单栏）\n- 3.4（内置主题使用 div 布局）\n- 3.5（内置主题使用思源黑体/Noto Sans SC）\n\n使用自定义主题时，需额外检查 HTML/CSS 输出。\n\nFile v0.1.0:modules/resume-optimizer/references/bullet-rewrite.md\n\n# Bullet 量化改写规则\n\n## 诊断分类\n\n对每条 highlight 进行模式匹配，识别以下问题类型：\n\n### 问题类型一览\n\n| 代码 | 类型 | 特征 | 示例 |\n|------|------|------|------|\n| VAGUE | 模糊描述 | 使用\"相关\"\"有关\"\"一些\"等模糊词 | \"负责相关前端开发工作\" |\n| NO_VERB | 缺乏动词 | 以名词/形容词开头，没有行为主体 | \"XX系统前端部分\" |\n| NO_RESULT | 无结果 | 只描述过程不提结果/影响 | \"参与了用户增长项目的开发\" |\n| NO_QUANT | 无量化 | 有动作有结果但全是定性描述 | \"大幅提升了页面性能\" |\n| DUTY_LIST | 职责罗列 | 复制 JD 式描述，只说\"负责\"不说\"做成了什么\" | \"负责日常需求开发和 bug 修复\" |\n| TOO_LONG | 过长 | 单条超过 60 字，信息密度低 | （超长拖沓描述） |\n| TOO_SHORT | 过短 | 单条少于 10 字，信息量不足 | \"写了文档\" |\n\n### 检测模式（正则 + 语义）\n\n```\nVAGUE:     /相关|有关|一些|等等|各种|若干|很多|大量/\nNO_VERB:   首字符不是动词（参考动词库）\nNO_RESULT: 不含结果类关键词（提升|降低|减少|增加|优化|缩短|覆盖|达到|实现）\nNO_QUANT:  不含数字 \\d 且不含量化词（%|倍|次|个|条|行|人|天|小时|毫秒）\nDUTY_LIST: /^负责|^承担|^完成日常/\nTOO_LONG:  len > 60\nTOO_SHORT: len < 10\n```\n\n## 改写公式\n\n```\n[强动词] + [做了什么（具体范围）] + [量化规模/复杂度] + [产出的量化结果]\n```\n\n### 强动词库（中文）\n\n| 场景 | 推荐动词 |\n|------|----------|\n| 从 0 到 1 | 主导、设计、搭建、构建、创建 |\n| 优化改进 | 重构、优化、迁移、升级、治理 |\n| 日常迭代 | 开发、实现、落地、交付、支撑 |\n| 数据分析 | 挖掘、分析、建模、验证、度量 |\n| 团队协作 | 推动、对齐、沉淀、输出、牵头 |\n| 工具/基建 | 沉淀、封装、抽象、复用、提效 |\n\n### 量化数据追问策略\n\n当用户 bullet 缺乏数据时，按以下优先级追问：\n\n1. **规模指标**：涉及多少用户/场景/模块/接口？\n2. **效果指标**：性能提升多少？错误率降低多少？耗时缩短多少？\n3. **效率指标**：开发效率提升？人力节省？流程缩短？\n4. **相对指标**：占团队产出比重？在多少候选方案中选中？\n\n如果用户确实无法给出精确数字，可用：\n- 量级估算：\"百万级 DAU\"\"10+ 微服务\"\n- 相对表达：\"团队核心模块 3/8\"\"全组唯一\"\n- 事实陈述：\"作为 Owner 独立完成\"\"产出 4 篇技术方案被团队采纳\"\n\n## 输出规范\n\n- 每条改写给出 `原文 → 改写` 对照\n- 改写中的不确定数据用 `[?]` 占位，明确告知用户需要补充\n- 一次最多展示 10 条，超过时分批（先改问题最严重的）\n- 改写后的 bullet 长度控制在 25-55 字","readmeExcerpt":"Skill: 职业规划 + 简历生成 + 求职优化 Owner: pluto417-qing Summary: 职业规划 + 简历生成 + 求职优化。Holland 测评与行动规划；7 套主题简历渲染、PDF 导出；JD 关键词匹配、ATS 检查、Bullet 量化改写。触发词：职业规划、生涯规划、考研就业、写简历、生成简历、导出 PDF、匹配 JD、ATS 检查、简历优化、量化改写、毕业迷茫。 Tags: latest:0.1.0 Version history: v0.1.0 | 2026-07-31T06:35:55.161Z | auto Initial release of Career Toolkit: an all-in-one career development toolchain. - Integrates planning (Holland assessment, roadmap), resume buil","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"./career/profile.yaml          ← career-planner 产出\n  ./career/career_plan.md        ← career-planner 产出\n  ./resume/resume.yaml           ← resume-builder 输入\n  ./resume/out/resume.html|pdf   ← resume-builder 产出"},{"language":"text","snippet":"┌─────────────────────────────────────────────────┐\n       │              Career Toolkit                      │\n       │                                                 │\n       │   ① Planner    ② Builder      ③ Optimizer      │\n       │   ┌────────┐   ┌──────────┐   ┌────────────┐   │\n       │   │ 画像   │   │ 对话挖掘 │   │ JD 关键词  │   │\n       │   │ 测评   │──→│ YAML生成 │──→│ ATS 检查   │   │\n       │   │ 规划   │   │ 主题渲染 │   │ Bullet改写 │   │\n       │   └────────┘   └──────────┘   └────────────┘   │\n       │                                                 │\n       │   profile.yaml → resume.yaml → 匹配报告         │\n       └─────────────────────────────────────────────────┘"},{"language":"text","snippet":"帮我安装这个 skill: https://github.com/Pluto417-Qing/resume-skill"},{"language":"bash","snippet":"git clone https://github.com/Pluto417-Qing/resume-skill.git\ncd resume-skill\npip install PyYAML Jinja2 jsonschema\npip install weasyprint  # 可选，PDF 导出"},{"language":"yaml","snippet":"meta:\n  language: zh   # zh | en | zh-en\n  theme: classic # 主题目录名\n  updated_at: 2026-07"},{"language":"yaml","snippet":"basics:\n  name: 张三\n  english_name: Zhang San\n  label: 前端工程师 · 应届生      # 一句话定位/求职意向\n  gender: 男\n  birth: 2003-05\n  phone: \"138 xxxx 8888\"\n  email: san@example.com\n  location: 北京\n  website: https://example.com\n  avatar: ./avatar.jpg           # 可选，本地路径或 URL\n  summary: 简介一段\n  profiles:\n    - {network: GitHub, username: san, url: https://github.com/san}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: career-toolkit\ndescription: 职业规划 + 简历生成 + 求职优化。Holland 测评与行动规划；7 套主题简历渲染、PDF 导出；JD 关键词匹配、ATS 检查、Bullet 量化改写。触发词：职业规划、生涯规划、考研就业、写简历、生成简历、导出 PDF、匹配 JD、ATS 检查、简历优化、量化改写、毕业迷茫。\nauthor: 袁箐鸿\n---\n\n# Career Toolkit\n\n一站式职业发展工具包，覆盖从「方向规划」到「简历产出」的完整链路。\n\n## 模块一览\n\n| 模块 | 路径 | 定位 |\n|---|---|---|\n| **career-planner** | [modules/career-planner/MODULE.md](modules/career-planner/MODULE.md) | 画像收集 → Holland 测评 → 路径规划 → 行动报告 |\n| **resume-builder** | [modules/resume-builder/MODULE.md](modules/resume-builder/MODULE.md) | YAML 简历 → Schema 校验 → HTML/PDF/JSON 多端导出 |\n| **resume-optimizer** | [modules/resume-optimizer/MODULE.md](modules/resume-optimizer/MODULE.md) | JD 匹配 → Bullet 量化改写 → 中文 ATS 检查 |\n\n## 路由规则\n\n根据用户意图选择加载哪个模块的完整文档：\n\n### → career-planner\n\n触发词：职业规划、生涯规划、我该做什么工作、考研还是就业、考公规划、留学规划、Holland 测评、毕业迷茫、未来方向、行动计划\n\n加载：[modules/career-planner/MODULE.md](modules/career-planner/MODULE.md)\n\n### → resume-builder\n\n触发词：写简历、做简历、生成简历、简历模板、resume、CV、导出 PDF、预览简历、换主题、修改简历、发飞书、简历发飞书、分享简历、发给导师、发给 HR\n\n加载：[modules/resume-builder/MODULE.md](modules/resume-builder/MODULE.md)\n\n### → resume-optimizer\n\n触发词：匹配 JD、JD 匹配、关键词覆盖率、这个岗位合适吗、ATS 检查、简历体检、格式合规、量化改写、改 bullet、优化经历描述、简历诊断、简历优化\n\n加载：[modules/resume-optimizer/MODULE.md](modules/resume-optimizer/MODULE.md)\n\n### 联动场景\n\n当用户在做规划时说\"顺便帮我做个简历\"，由 career-planner 完成画像后，自动将 `profile.yaml` 字段映射到 `resume.yaml`，然后切换到 resume-builder 模块执行渲染。\n\n## 模块间共享约定\n\n- 用户工作目录结构：\n  ```\n  ./career/profile.yaml          ← career-planner 产出\n  ./career/career_plan.md        ← career-planner 产出\n  ./resume/resume.yaml           ← resume-builder 输入\n  ./resume/out/resume.html|pdf   ← resume-builder 产出\n  ```\n- `career-planner` 的 `profile.yaml → resume.yaml` 字段映射关系见 career-planner MODULE.md 尾部。\n- 脚本路径均相对于各自模块目录，调用时需 `cd` 或用绝对路径：\n  - 校验：`python3 modules/resume-builder/scripts/validate.py <resume.yaml>`\n  - 渲染：`python3 modules/resume-builder/scripts/render.py <resume.yaml> --out-dir ./resume/out --pdf`\n  - Holland 评分：`python3 modules/career-planner/scripts/score_holland.py <answers.yaml>`\n  - JD 匹配：`python3 modules/resume-optimizer/scripts/jd_match.py <resume.yaml> --jd <jd.txt>`\n  - Bullet 诊断：`python3 modules/resume-optimizer/scripts/bullet_rewrite.py <resume.yaml>`\n  - ATS 检查：`python3 modules/resume-optimizer/scripts/ats_check.py <resume.yaml>`"},{"path":"README.md","content":"<h1 align=\"center\">Career Toolkit</h1>\n<p align=\"center\">Agent Skill — 用对话代替表单，从职业规划到简历生成一步到位。</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/type-Agent%20Skill-purple\"/>\n  <img src=\"https://img.shields.io/badge/python-3.8+-blue\"/>\n  <img src=\"https://img.shields.io/badge/license-MIT-green\"/>\n</p>\n\n## 主题画廊\n\n11 套主题，每套有头像/无头像两版，支持口头微调。\n\n<table>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/classic-avatar/resume.png\" width=\"320\"/><br/><b>Classic</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/modern-avatar/resume.png\" width=\"320\"/><br/><b>Modern</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/minimal-avatar/resume.png\" width=\"320\"/><br/><b>Minimal</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/elegant-avatar/resume.png\" width=\"320\"/><br/><b>Elegant</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/compact-avatar/resume.png\" width=\"320\"/><br/><b>Compact</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/academic-avatar/resume.png\" width=\"320\"/><br/><b>Academic</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/infographic-avatar/resume.png\" width=\"320\"/><br/><b>Infographic</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/creative-avatar/resume.png\" width=\"320\"/><br/><b>Creative</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/executive-avatar/resume.png\" width=\"320\"/><br/><b>Executive</b></td>\n</tr>\n<tr>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/metro-avatar/resume.png\" width=\"320\"/><br/><b>Metro</b></td>\n<td align=\"center\"><img src=\"https://raw.githubusercontent.com/Pluto417-Qing/career-toolkit/gh-pages/tech-avatar/resume.png\" width=\"320\"/><br/><b>Tech</b></td>\n<td></td>\n</tr>\n</table>\n\n---\n\n## 工作原理\n\n```\n       ┌─────────────────────────────────────────────────┐\n       │              Career Toolkit                      │\n       │                                                 │\n       │   ① Planner    ② Builder      ③ Optimizer      │\n       │   ┌────────┐   ┌──────────┐   ┌────────────┐   │\n       │   │ 画像   │   │ 对话挖掘 │   │ JD 关键词  │   │\n       │   │ 测评   │──→│ YAML生成 │──→│ ATS 检查   │   │\n       │   │ 规划   │   │ 主题渲染 │   │ Bullet改写 │   │\n       │   └────────┘   └──────────┘   └────────────┘   │\n       │                                                 │\n       │   profile.yaml → resume.yaml → 匹配报告         │\n       └─────────────────────────────────────────────────┘\n```\n\n- **Career Planner** — 引导式提问 + Holland 测评，产出"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77zwehx3reya36tz9wkk2q7n8bjqe3\",\n  \"slug\": \"career-toolkit\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785479755161\n}"},{"path":"modules/career-planner/references/collect-profile.md","content":"# 用户画像收集指南\n\n`profile.yaml` 是 career-planner 的核心数据文件。收集时的原则：**先粗后细，边聊边补**，不要一次性甩 20 个问题让用户回答。\n\n## 分阶段收集\n\n### 第一轮（必须）—— 30 秒能答完\n\n- 姓名 / 年龄 / 城市\n- 当前身份：**在校学生**（大几）/ **应届毕业生** / **工作 N 年**\n- 专业 + 学校层级（985/211/双一流/普通本科/专科）\n\n有这些就足以启动路径判断，不要在第一轮里问 GPA、实习经历等细节。\n\n### 第二轮（引导用户展开）—— 根据第一轮定向\n\n**分支 A：在校 / 应届 / 未明确方向**\n- 最感兴趣的 3 门课程\n- 最近 1 年做过最\"来劲\"的一件事（不管是不是学业）\n- 家人 / 自己对\"稳定 vs 挑战\"的偏好\n\n**分支 B：已有初步目标**\n- 现在最纠结的选项（例：考研 vs 就业 / 大厂 vs 央企 / 国内 vs 出国）\n- 3 年后希望自己在哪里、做什么\n\n### 第三轮（简版测评）\n\n引导做 Holland 60 题（见 `assets/assessments/holland-riasec.yaml`）。别一次抛 60 题，可以分 3 组每组 20 题。\n\n### 第四轮（简历基线）\n\n在有明确方向后再补齐：GPA、排名、实习、项目、语言分数、获奖……这些同时也是 `resume-builder` 的输入。\n\n## 反模式\n\n- **一次问太多**：用户会疲劳，且答得敷衍\n- **过早追问细节**：还没确定方向就问\"你的 GPA\"意义不大\n- **给固定选项**：路径选项应根据用户画像动态生成，而不是列 5 条让用户勾\n- **忽略约束**：家庭经济、地域限制、健康状况都可能是硬约束，需要主动询问\n\n## 输出\n\n把每轮结果直接写到 `profile.yaml`（覆盖式增量更新即可），保证下次会话能续跑。"},{"path":"modules/career-planner/references/path-playbooks/civil-service.md","content":"# 考公 / 事业单位 Playbook\n\n## 路径分支\n\n| 路径 | 说明 | 主要考试 |\n|---|---|---|\n| 国考 | 中央国家机关 | 行测 + 申论（+专业科目） |\n| 省考 | 各省公务员 | 行测 + 申论（时间通常错开国考） |\n| 选调生 | 面向高校毕业生的定向招录 | 类似省考 + 面试 |\n| 事业单位 | 学校、医院、科研院所行政岗 | 公基 / 行测 + 专业课 |\n| 参公 / 遴选 | 已工作后转公务员 | 行测 + 面试 |\n\n## 关键节点（应届 / 参考）\n\n| 时间 | 动作 |\n|---|---|\n| 大三下 | 决定是否参加，评估性格 / 家庭 / 城市匹配度 |\n| 大四上 6-7 月 | 选调生开始报名（部分省份） |\n| 大四上 10 月 | 国考公告发布 |\n| 大四上 11-12 月 | 国考笔试 |\n| 大四下 2-4 月 | 面试、体检、政审 |\n| 大四下 3-5 月 | 各省省考陆续 |\n\n## 岗位选择考量\n\n- **岗位匹配度**：专业限制、政治面貌、性别倾向、基层服务年限\n- **地点**：一线城市 vs 家乡；乡镇岗位竞争小但需要长期扎根\n- **发展路径**：中央 / 省直 / 市直 / 区县 / 乡镇 → 不同天花板与晋升节奏\n- **稳定 vs 事业心**：Holland Code 含 C（常规型）+ S（社会型）通常契合度高；含 A（艺术型）为主的通常需要慎重\n\n## 备考核心\n\n- **行测**：题量大、时间紧，靠刷题量堆速度和准确率（近 10 年真题反复刷）\n- **申论**：靠输入 + 输出，背材料 + 每周至少一篇完整卷\n- **面试**：结构化面试为主，8-15 分钟 3-4 题，考察表达 / 综合分析 / 情境应对\n\n**给应届生的建议**：如果 Holland Code 里 C < 30 分，认真考虑是否真的适合，而不是\"没别的选项才考\"。\n\n## 输出\n\n给用户一份「岗位路径对比 + 备考 6 个月/12 个月计划 + 关键节点日历」，落地到 `career_plan.md`。"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":950,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:39:57.047Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:15:40.953Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}