career-kit 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. career_kit-0.2.0.dist-info/METADATA +217 -0
  2. career_kit-0.2.0.dist-info/RECORD +127 -0
  3. career_kit-0.2.0.dist-info/WHEEL +4 -0
  4. career_kit-0.2.0.dist-info/entry_points.txt +5 -0
  5. career_kit-0.2.0.dist-info/licenses/LICENSE +21 -0
  6. docs/README.md +44 -0
  7. docs/examples/README.md +31 -0
  8. docs/examples/build_demo.py +286 -0
  9. docs/examples/data/sample_gap.json +127 -0
  10. docs/examples/data/sample_profile.json +26 -0
  11. docs/examples/data/sample_roadmap.json +105 -0
  12. docs/examples/demo/README.md +39 -0
  13. docs/examples/demo/career-map.html +549 -0
  14. docs/examples/demo/career-map.png +0 -0
  15. docs/examples/demo/dashboard.html +51 -0
  16. docs/examples/demo/dashboard.png +0 -0
  17. docs/examples/demo/demo_profile.json +790 -0
  18. docs/examples/scenarios/career_change.md +150 -0
  19. docs/examples/scenarios/interview_prep.md +63 -0
  20. docs/examples/scenarios/skill_upgrade.md +166 -0
  21. docs/index.html +88 -0
  22. docs/industry-outcomes.md +67 -0
  23. docs/knowledge.md +70 -0
  24. docs/llms.txt +127 -0
  25. docs/prompts/grounding.md +27 -0
  26. docs/prompts/onboarding.md +40 -0
  27. docs/prompts/quick-scan.md +61 -0
  28. docs/rules.md +69 -0
  29. docs/scrapers.md +65 -0
  30. docs/tools.md +121 -0
  31. docs/workflow.md +346 -0
  32. sop/detailed_route.yaml +59 -0
  33. sop/goal_selection.yaml +140 -0
  34. sop/interview_prep.yaml +77 -0
  35. sop/market_research.yaml +76 -0
  36. sop/resources.yaml +125 -0
  37. sop/resume_screening.yaml +92 -0
  38. sop/roadmap.yaml +262 -0
  39. src/__init__.py +0 -0
  40. src/assets.py +448 -0
  41. src/case_search.py +538 -0
  42. src/demo.py +58 -0
  43. src/doctor.py +377 -0
  44. src/education.py +173 -0
  45. src/guidance.py +546 -0
  46. src/industries/__init__.py +5 -0
  47. src/industries/energy.yaml +250 -0
  48. src/industries/internet.yaml +253 -0
  49. src/industries/loader.py +118 -0
  50. src/industry_snapshot.py +247 -0
  51. src/mcp_app.py +15 -0
  52. src/models.py +276 -0
  53. src/paths.py +21 -0
  54. src/research_digest.py +249 -0
  55. src/research_report.py +747 -0
  56. src/resources.py +100 -0
  57. src/scrapers/README.md +29 -0
  58. src/scrapers/__init__.py +15 -0
  59. src/scrapers/_template/__init__.py +0 -0
  60. src/scrapers/_template/guide.md +43 -0
  61. src/scrapers/_template/scraper.py +138 -0
  62. src/scrapers/alibaba/__init__.py +0 -0
  63. src/scrapers/alibaba/guide.md +44 -0
  64. src/scrapers/alibaba/scraper.py +327 -0
  65. src/scrapers/baidu/__init__.py +0 -0
  66. src/scrapers/baidu/guide.md +41 -0
  67. src/scrapers/baidu/scraper.py +245 -0
  68. src/scrapers/base.py +117 -0
  69. src/scrapers/boss/__init__.py +0 -0
  70. src/scrapers/boss/auth.py +145 -0
  71. src/scrapers/boss/city_codes.json +44 -0
  72. src/scrapers/boss/guide.md +79 -0
  73. src/scrapers/boss/login.py +264 -0
  74. src/scrapers/boss/scraper.py +354 -0
  75. src/scrapers/boss/stoken.py +144 -0
  76. src/scrapers/bytedance/__init__.py +0 -0
  77. src/scrapers/bytedance/guide.md +38 -0
  78. src/scrapers/bytedance/scraper.py +469 -0
  79. src/scrapers/config.yaml +74 -0
  80. src/scrapers/github/__init__.py +1 -0
  81. src/scrapers/github/guide.md +50 -0
  82. src/scrapers/github/scraper.py +241 -0
  83. src/scrapers/http_utils.py +81 -0
  84. src/scrapers/knowledge_writer.py +213 -0
  85. src/scrapers/loader.py +336 -0
  86. src/scrapers/nowcoder/__init__.py +0 -0
  87. src/scrapers/nowcoder/guide.md +45 -0
  88. src/scrapers/nowcoder/scraper.py +425 -0
  89. src/scrapers/tencent/__init__.py +0 -0
  90. src/scrapers/tencent/guide.md +41 -0
  91. src/scrapers/tencent/scraper.py +367 -0
  92. src/server.py +60 -0
  93. src/tools/README.md +16 -0
  94. src/tools/__init__.py +0 -0
  95. src/tools/analysis_tools.py +594 -0
  96. src/tools/application_tools.py +188 -0
  97. src/tools/application_tracker.py +213 -0
  98. src/tools/cache.py +150 -0
  99. src/tools/case_tools.py +47 -0
  100. src/tools/dashboard.py +968 -0
  101. src/tools/data_tools.py +371 -0
  102. src/tools/errors.py +44 -0
  103. src/tools/gap_analyzer.py +232 -0
  104. src/tools/industry_state.py +29 -0
  105. src/tools/industry_tools.py +114 -0
  106. src/tools/insight.py +286 -0
  107. src/tools/knowledge_search.py +140 -0
  108. src/tools/methodology.py +95 -0
  109. src/tools/plan_importer.py +36 -0
  110. src/tools/probing.py +156 -0
  111. src/tools/profile.py +417 -0
  112. src/tools/profile_tools.py +235 -0
  113. src/tools/research_tools.py +1078 -0
  114. src/tools/resource_catalog.py +89 -0
  115. src/tools/resume_parser.py +64 -0
  116. src/tools/review.py +274 -0
  117. src/tools/roadmap.py +164 -0
  118. src/tools/roadmap_tools.py +706 -0
  119. src/tools/session.py +57 -0
  120. src/tools/session_tools.py +450 -0
  121. src/tools/task_manager.py +520 -0
  122. src/tools/task_tools.py +1030 -0
  123. src/tools/tool_helpers.py +198 -0
  124. src/web.py +534 -0
  125. src/web_ui/app.js +367 -0
  126. src/web_ui/index.html +58 -0
  127. src/web_ui/style.css +108 -0
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.5
2
+ Name: career-kit
3
+ Version: 0.2.0
4
+ Summary: AI career coach MCP server: real job-market gap analysis, staged roadmap, check-in tasks, and an application funnel
5
+ Project-URL: Homepage, https://github.com/W7uuuuz/Career-kit
6
+ Project-URL: Demo, https://w7uuuuz.github.io/Career-kit/
7
+ Project-URL: Documentation, https://github.com/W7uuuuz/Career-kit/tree/main/docs
8
+ Project-URL: Repository, https://github.com/W7uuuuz/Career-kit
9
+ Project-URL: Issues, https://github.com/W7uuuuz/Career-kit/issues
10
+ Project-URL: Changelog, https://github.com/W7uuuuz/Career-kit/blob/main/CHANGELOG.md
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: ai-agent,career,claude-code,job-search,mcp,model-context-protocol,opencode,resume
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: End Users/Desktop
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Education
22
+ Classifier: Topic :: Office/Business
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: httpx>=0.25.0
25
+ Requires-Dist: iv8
26
+ Requires-Dist: mcp<2.0.0,>=1.0.0
27
+ Requires-Dist: patchright==1.62.1
28
+ Requires-Dist: pdfplumber>=0.11.0
29
+ Requires-Dist: playwright>=1.40.0
30
+ Requires-Dist: pydantic>=2.0.0
31
+ Requires-Dist: python-docx>=1.1.0
32
+ Requires-Dist: pyyaml>=6.0
33
+ Description-Content-Type: text/markdown
34
+
35
+ # Career Kit
36
+
37
+ [English](README.en.md) | 中文
38
+
39
+ [![CI](https://github.com/W7uuuuz/Career-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/W7uuuuz/Career-kit/actions/workflows/ci.yml)
40
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
41
+ [![Python 3.11+](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/)
42
+ [![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/)
43
+
44
+ > 别再海投了。Career Kit 是一个 AI 职业陪练 MCP 服务:抓真实岗位 → 分析差距 → 分阶段路线图 → 可打卡任务 → 求职漏斗复盘。
45
+
46
+ 接入 Claude Code / Cursor / opencode / Codex,把你的求职从「投简历碰运气」变成「有真实数据支撑、可长期追踪」的计划。
47
+
48
+ **[在线体验职业地图](https://w7uuuuz.github.io/Career-kit/examples/demo/career-map.html)** · [示例产物](docs/examples/demo/) · [完整文档](docs/README.md)
49
+
50
+ ![Career Kit 职业地图](docs/examples/demo/career-map.png)
51
+
52
+ > 上图是真实产物:一份合成样例简历经完整链路生成的交互式职业地图。勾选即打卡、进度实时更新;在线版无需安装。
53
+ > 示例数据为合成,不含任何真实用户简历或报告。
54
+
55
+ ## 30 秒看懂
56
+
57
+ - **真实数据,不瞎分析**:接入 BOSS / 字节 / 腾讯 / 百度 / 阿里 / 牛客 / GitHub 经验帖,AI 基于市场真实要求分析差距;差距必须锚定真实来源,否则被硬门禁拒绝。
58
+ - **拆成阶段任务**:分阶段、里程碑、可打卡任务(按次 / 按天 / 按比例),随时问「下一步做什么」。
59
+ - **求职漏斗可复盘**:投递 → 过筛 → 面试 → offer 全程记录(事件口径),「面试后被拒仍计入面试数」,让数据告诉你问题在简历还是面试。
60
+ - **周检视**:一键生成周期复盘(打卡 / 阶段 / 漏斗 + 事实性建议),隔一段时间回来也能立刻接续。
61
+ - **可交互职业地图**:一键导出自包含 HTML,勾选即打卡、进度实时更新、浏览器本地保存。
62
+ - **跟着你变,不是死计划**:拿到面试触发洞察重估;换目标时已完成进度自动沉淀为能力证据。
63
+ - **顺序归产品,时间归用户**:只为任务定义顺序与完成标准,不设时限。
64
+
65
+ ## 快速开始
66
+
67
+ ### 方式一:一行启动(推荐)
68
+
69
+ 需要 [uv](https://docs.astral.sh/uv/)。未安装时:
70
+
71
+ ```bash
72
+ # macOS / Linux
73
+ curl -LsSf https://astral.sh/uv/install.sh | sh
74
+
75
+ # Windows PowerShell
76
+ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
77
+ ```
78
+
79
+ ```bash
80
+ uvx --from career-kit career-kit-doctor # 安装体检
81
+ uvx --from career-kit career-kit # 启动 MCP 服务(stdio)
82
+ ```
83
+
84
+ 注册到你的 AI Agent:
85
+
86
+ | Agent | 注册方式 |
87
+ |-------|---------|
88
+ | Claude Code | `claude mcp add career-kit -- uvx --from career-kit career-kit` |
89
+ | Codex CLI | `codex mcp add career-kit -- uvx --from career-kit career-kit` |
90
+ | opencode | 项目根目录 `opencode.json`(或全局 `~/.config/opencode/opencode.jsonc`)加入:`{"mcp": {"career-kit": {"type": "local", "command": ["uvx", "--from", "career-kit", "career-kit"], "enabled": true}}}` |
91
+ | Cursor / Windsurf | MCP 设置中手动添加:command=`uvx`,args=`["--from", "career-kit", "career-kit"]` |
92
+
93
+ > PyPI 首发前,请先用下方「源码安装」;发布后以上命令即可直接使用。
94
+
95
+ ### 方式二:源码安装
96
+
97
+ ```bash
98
+ git clone https://github.com/W7uuuuz/Career-kit.git
99
+ cd Career-kit
100
+ pip install -e .
101
+ ```
102
+
103
+ > **解释器很重要**:注册命令里的 `python` 必须是执行过 `pip install -e .` 的那一个。本机有多个 Python 时,裸 `python` 可能指向缺依赖的解释器。最稳妥是 venv 绝对路径:
104
+ > `D:\path\to\Career-kit\.venv\Scripts\python.exe`(Windows)或 `.venv/bin/python`(macOS/Linux)。
105
+
106
+ 注册命令(把 `<venv-python>` 换成你的绝对路径):
107
+
108
+ ```bash
109
+ claude mcp add career-kit -- <venv-python> -m src.server
110
+ codex mcp add career-kit -- <venv-python> -m src.server
111
+ ```
112
+
113
+ opencode 配置:
114
+
115
+ ```json
116
+ {"mcp": {"career-kit": {"type": "local", "command": ["<venv-python>", "-m", "src.server"], "enabled": true}}}
117
+ ```
118
+
119
+ > macOS 用户把 python 换成 python3。opencode 的 `.opencode/config.json` 不是 MCP 注册入口,改它是无效的。
120
+
121
+ ### 方式三:一键安装脚本
122
+
123
+ ```bash
124
+ # macOS / Linux
125
+ bash install.sh
126
+
127
+ # Windows PowerShell
128
+ powershell -ExecutionPolicy Bypass -File .\install.ps1
129
+ ```
130
+
131
+ 脚本会建好 `.venv`、装好依赖,并直接打印注册命令(使用绝对解释器路径)。
132
+
133
+ ### 本地控制台(可选)
134
+
135
+ ```bash
136
+ career-kit-serve --open
137
+ # 或
138
+ "<venv-python>" -m src.web --open
139
+ ```
140
+
141
+ 只监听 `127.0.0.1`,用于查看路线图、任务怎么做 / 资源 / 完成标准并直接打卡;还可以编辑任务、登记投递、按方向筛选调研报告,并通过 SSE 自动刷新。打卡写入同一份 SQLite 档案,MCP 下次运行时直接读到。
142
+
143
+ ### 验证安装
144
+
145
+ ```bash
146
+ career-kit-doctor
147
+ # 或
148
+ "<venv-python>" -m src.doctor
149
+ ```
150
+
151
+ 全部 OK 后,对新会话说「调用 start_session」,或直接敲 `/career-kit`——收到「欢迎使用 Career Kit」即接入成功。
152
+
153
+ ## 60 秒体验(不安装)
154
+
155
+ - **在线版**:打开 [交互式职业地图](https://w7uuuuz.github.io/Career-kit/examples/demo/career-map.html),直接勾选任务看进度变化。
156
+ - **本地版**:双击 `docs/examples/demo/career-map.html`,或安装后运行 `career-kit-demo`。
157
+ - 想看完整链路:`docs/examples/demo/` 里有样例简历生成的路线图、进度仪表盘和原始档案。
158
+
159
+ ## 它怎么工作
160
+
161
+ ```
162
+ 你:我想转 AI Agent 方向
163
+ Career Kit:分析差距 → 拉取真实岗位数据 → 设计路线图 → 拆成阶段任务
164
+
165
+ 你:我不知道想做什么,帮我选个方向
166
+ Career Kit:三轴定位(能力 × 兴趣 × 真实岗位数据)→ 候选方向 → 引导选定
167
+
168
+ 你:这步做完了
169
+ Career Kit:打卡记录 → 沉淀能力证据 → 阶段完成自动审计
170
+
171
+ 你:我拿到大厂面试了
172
+ Career Kit:事件触发洞察 → 重估计划 → 调整阶段任务
173
+ ```
174
+
175
+ 底层是 41 个 MCP 工具,覆盖建档、档案管理、数据获取(含市场调研)、分析规划、任务与漏斗、洞察产出六大类。完整清单与调用时机见[工具总览](docs/tools.md)。
176
+
177
+ ## 为什么是它
178
+
179
+ | | ChatGPT | 求职网站 | Career Kit |
180
+ |---|---------|----------|------------|
181
+ | 真实岗位数据 | 无 | 有 | 有(可抓取,含薪资) |
182
+ | 个性化路线图 | 泛泛而谈 | 无 | 分阶段 + 里程碑 + 完成标准 |
183
+ | 阶段任务打卡 | 无 | 无 | 有(按次 / 按天 / 按比例) |
184
+ | 进度追踪调整 | 无 | 无 | 阶段审计 + 事件洞察 |
185
+ | 数据本地、可自托管 | 否 | 否 | 是 |
186
+
187
+ ## 隐私与数据边界
188
+
189
+ - 程序数据存储在本地 `~/.career-kit/`(档案主存储为 `career-kit.db`,JSON 为兼容镜像),报告与路线图存储在 `~/CareerKit/`,不会发送到任何外部服务器。
190
+ - 知识库是用户自有资产,不随包升级丢失。
191
+ - 抓取只读取公开岗位 / 面经页面,请遵守来源站点条款与频率限制;本项目不提供内推、保 offer 或任何就业承诺。详见 [DISCLAIMER.md](DISCLAIMER.md)。
192
+
193
+ ## 文档
194
+
195
+ - [文档地图](docs/README.md):所有文档的唯一入口
196
+ - [LLM 使用指南](docs/llms.txt):工作流、规则、常见场景
197
+ - [工作流详解](docs/workflow.md):各阶段前置条件、输入输出
198
+ - [工具总览](docs/tools.md):41 个 MCP 工具的唯一事实源
199
+ - [企业库](docs/scrapers.md):已收录企业、数据源说明
200
+ - [知识库](docs/knowledge.md):目录结构、文件格式
201
+ - [示例](docs/examples/README.md):可交互职业地图与场景示例
202
+ - [贡献指南](CONTRIBUTING.md) · [行为准则](CODE_OF_CONDUCT.md) · [安全策略](SECURITY.md)
203
+
204
+ ## 适合谁
205
+
206
+ - **适合你,如果你**:在找工作或转行、会用 Claude Code / opencode 这类 AI 编程工具、想要一份「有真实岗位数据支撑、可长期追踪」的计划。
207
+ - **暂不适合你,如果你**:完全没有命令行使用经验。当前形态需要安装 Python + 注册 MCP,Web / 无安装版本在规划中。
208
+
209
+ ## 贡献
210
+
211
+ 欢迎 issue、PR 和新的企业数据源。开始前请读 [CONTRIBUTING.md](CONTRIBUTING.md);新增企业源请参考 `src/scrapers/_template/`。
212
+
213
+ 如果这个项目帮你少走了弯路,点一个 Star 就是最好的支持——它会让更多正在求职的人看到它。
214
+
215
+ ## 开源协议
216
+
217
+ MIT
@@ -0,0 +1,127 @@
1
+ src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ src/assets.py,sha256=gtfJVqLRjpmPkug0gVtnO-oKbhcf-jQJP3UB_1SmoqI,17593
3
+ src/case_search.py,sha256=9R2dxXXJy1rOzi-m-ljJcMBMVljoivtxx0mTXXWFKhg,20698
4
+ src/demo.py,sha256=1MnssKQdPBnpVS7EEGUjWfdSGuZMtKEVG0xff1hY8B0,1823
5
+ src/doctor.py,sha256=bCOmgcbIhlT9xSTFKitG3JWicdPy_BaSM9yWR2JRzb8,11898
6
+ src/education.py,sha256=-Dai7v-bq-rlMFhlpyU0Dad8Woy1E7WT5BHASTfUdqQ,5725
7
+ src/guidance.py,sha256=HWCCWluepBYIsldjxefrAp55Mq1KTeCD5crDcSthBtQ,20325
8
+ src/industry_snapshot.py,sha256=tXQlhKlTBr-bLMj04YQ8c3EF9cXDpgnilnOn-BZzX74,9153
9
+ src/mcp_app.py,sha256=Ece3gTrNJV_ookSXt-KoY2gxDkwgj2m1YhUWjHaLhNQ,430
10
+ src/models.py,sha256=Z7MtsYhIDFeJIhhTAPyDkVACEkjoo7UIhITqvFKU5bg,11570
11
+ src/paths.py,sha256=tRh_dgpMluT14eVWlhBfEjQc9P8O3ko8ztlIRlKTsSU,678
12
+ src/research_digest.py,sha256=cMt7Oj-ldZhrFp-Zb9B2zR2_3gkJDz2WR9RnyNICIIA,9469
13
+ src/research_report.py,sha256=l8oMsyZAtQQ2UR160MQj96EUaCfpTNpQNaRaIkaKX98,31337
14
+ src/resources.py,sha256=uqYFm-1-2ba56Ibag07AkUZFWvx84Dsu7-qCfC_8BwI,3608
15
+ src/server.py,sha256=y1kDd5xrsG4VukuC1YxI2S0_gVRe67DsV3mHisFReRA,1580
16
+ src/web.py,sha256=3Kr0G5qnCYtp3egGsi9hH4lAqc1s_VOvQFNNMd6jDLE,21491
17
+ src/industries/__init__.py,sha256=a36eos78tywfD80fgTNlcIEalVUp5MaM2DxkP-RAiv0,218
18
+ src/industries/energy.yaml,sha256=NX6csreRfC-bPt1kG4_sufnYJ4Fn6-cBR0zOm8zqDcE,9226
19
+ src/industries/internet.yaml,sha256=2Bylaw7CybjP35rqJhoctBW6HVcC-Ac7byuVGVWjt54,8828
20
+ src/industries/loader.py,sha256=HiHlo4rU0-I7rx3yI3Vo1mS91BMKwYd-3DP1CZ7Pf6o,3992
21
+ src/scrapers/README.md,sha256=xBWI2YD-ollK6GiaQdDlRihyBMCUxSqEgQOjVPOM0Qc,1132
22
+ src/scrapers/__init__.py,sha256=FgtHIfZZ5UPUUBFFcjDvgkpYWup5SPjLCT7905CGmRc,391
23
+ src/scrapers/base.py,sha256=oiWpOw4ZemU7qzPTkMkv4CBdjFrLK2KpFnZrT0onWLU,3689
24
+ src/scrapers/config.yaml,sha256=47Y6nVIXxgtSLLm3b9fn-LJEDcSMXjD0lLeQ2RRsPSE,2366
25
+ src/scrapers/http_utils.py,sha256=PJ7wcsd9Puzv5F_8E8l8WWrsnG9nl86gQ4IVu0LKmqw,2338
26
+ src/scrapers/knowledge_writer.py,sha256=zm1NldyuQ3J_LxSXTTrKYA6eB-1TTt8RYunwqWqKjI8,5948
27
+ src/scrapers/loader.py,sha256=697aIf2irMdl-rg8dFT35wkGeZDcS3w1d06SB8oYnUk,11283
28
+ src/scrapers/_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ src/scrapers/_template/guide.md,sha256=_hli6WUi0AWsT2ml88B5U8czK195a4CTCmQ-nhxB2B4,1243
30
+ src/scrapers/_template/scraper.py,sha256=9r359nd6LWrx07L_e0PvFENNRtdUyGgVJ-KR0DPTsSU,4620
31
+ src/scrapers/alibaba/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ src/scrapers/alibaba/guide.md,sha256=L7ZpgRe-V-eI9zWD2AIHG29mBpE-U7JqPSQil8XOvo0,1641
33
+ src/scrapers/alibaba/scraper.py,sha256=sN3I534f0kQzQkYeMyRjQh-_kax06NKPQo_PGYV0lMw,12593
34
+ src/scrapers/baidu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ src/scrapers/baidu/guide.md,sha256=JrADBibUTjlN4fmUw-UJfIDkI2TNuwABsQMASAeQcmM,1513
36
+ src/scrapers/baidu/scraper.py,sha256=UsInlGi1H2m-aQffwJj6pDYamCobz25bdPeBJISJJ-E,9281
37
+ src/scrapers/boss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ src/scrapers/boss/auth.py,sha256=JGLdMJNHK64yJIl-feMydCWhsInyxX8U81mQTeSW4UI,4618
39
+ src/scrapers/boss/city_codes.json,sha256=bhYF8V7eIBhlWYeRF3nZ95pjX26ZH-f7QiGw_fR51q4,1070
40
+ src/scrapers/boss/guide.md,sha256=mwHk6vzK4RfcNSK3zgZ8-ilzpD9HENzvS6twmtzPSNM,3728
41
+ src/scrapers/boss/login.py,sha256=2EraIuE49uNAKDX-iX-szD6WqaGZN9PGo6KQLy96RO4,11608
42
+ src/scrapers/boss/scraper.py,sha256=5sjdFWAS4-BukBmghn7mv2nlvPe-e9vSMAcZFPVF9wU,12668
43
+ src/scrapers/boss/stoken.py,sha256=FnEKa0ALDa8U-0ytjT8vKpEeA1OMU6RGa2z1am9P1dQ,6512
44
+ src/scrapers/bytedance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ src/scrapers/bytedance/guide.md,sha256=7a8N8BaoiAyrYE6FroMef7ESOljD7vKekRri8JRST4E,1227
46
+ src/scrapers/bytedance/scraper.py,sha256=9VS5S0waniQbKbMSl2qFjjy0ONuvgQQYhee0x4F3q2Y,21121
47
+ src/scrapers/github/__init__.py,sha256=J2W906emkZimycUER50MQk3fBFsJKg94Ks1o3AXOr9E,69
48
+ src/scrapers/github/guide.md,sha256=9J_WxaEJ0J4EJ34raYzildoCHe55zJyphMGPCP-IiW0,2186
49
+ src/scrapers/github/scraper.py,sha256=qaouFPOHKupvEkiOJEKVX0mAfzDC4LEhNrQrFkCM7jY,10581
50
+ src/scrapers/nowcoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ src/scrapers/nowcoder/guide.md,sha256=Z-5E094tMOTF8pYfdxZovaavNfqOVzsJKQJfuGnZAKk,1582
52
+ src/scrapers/nowcoder/scraper.py,sha256=zZZQctUcT_4o_JtOhIYhnng9tHx-cZnceomP9mUF8G0,17429
53
+ src/scrapers/tencent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ src/scrapers/tencent/guide.md,sha256=CXg8Amo27LXiLdZodIwdLPc3LbK6m653sIeMMEQ5xzU,1539
55
+ src/scrapers/tencent/scraper.py,sha256=hvTtEYHCvhvdgkz9hsfdHJJ5fkwXODZW_Prt3FyLIy8,14112
56
+ src/tools/README.md,sha256=m3KvKTXrUUVx4geaw2ySy5712uNtNbaMqTRoknbV-qY,984
57
+ src/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ src/tools/analysis_tools.py,sha256=IUQfj8BU1PApc0gtHBioalSpkhlWEEkqjjq0VGXYh30,31697
59
+ src/tools/application_tools.py,sha256=PMXuAmcMsQIwh1kbSmGlkZDhle7YkwwW1tgonnP8s7o,8203
60
+ src/tools/application_tracker.py,sha256=eNBkzB8_cxgFmo9c76KRLkZKLGh9JN5MT1JDNPM3Nsk,7382
61
+ src/tools/cache.py,sha256=kCY_5f20Aot70MGnn-AzTAEUhWC0hXz3dCV1aLdfEKM,4535
62
+ src/tools/case_tools.py,sha256=fF8jY3OEL3Ek-wAZmYS7IUz3L9xlVE8qX_44Cjt0i1I,2084
63
+ src/tools/dashboard.py,sha256=GQwF8YXZtqTsUJnOt5V2zYhoy_cFNZ_KD0X6glpbUYA,45513
64
+ src/tools/data_tools.py,sha256=sYweMoPxqu_s8iwvvtV3WrNlOhJ6nBvNpmHzrSwZKOQ,16843
65
+ src/tools/errors.py,sha256=9Ux2hOuBdYA8urVnRKM1vMF_0HEAUijIdTprvIL2Go0,1209
66
+ src/tools/gap_analyzer.py,sha256=0-FSns2na1YMP240hx2gMYliyFVur4PpN2Ui72TpnOE,9351
67
+ src/tools/industry_state.py,sha256=xLjXzSBC0BbyQrIX99BfNd45dGkx_cf8mQSKvuuKhfo,915
68
+ src/tools/industry_tools.py,sha256=9DPx-UdgZv53Dxz9vc3ZELq2yP09xSz8zEiEewsED-g,4280
69
+ src/tools/insight.py,sha256=9ywmaAm7_FB15zq_bGE_DiWT0QVjQi_Vnl7BJW0XPsM,10211
70
+ src/tools/knowledge_search.py,sha256=mxdH-aShPRiQTYVDMMRhjiE6A-wwBt1yMLVy3oFcGP0,5156
71
+ src/tools/methodology.py,sha256=nCU4e0VlmJfObEqUgZKCmeb49Y16fb2G66zwcRPlg2I,3015
72
+ src/tools/plan_importer.py,sha256=QS3G7fqhkHTQRNWkat_-nH2mDlt-likYu0XJvHfAhQY,1164
73
+ src/tools/probing.py,sha256=IMFkfE6pnZtOHoKJa-M-DnErvWzx0NtnzE0EJe2pkRw,6521
74
+ src/tools/profile.py,sha256=r4MAgLByTvl5Wm2ecjq1Zs1H2xzLMogC4fA_PmT23Ck,13650
75
+ src/tools/profile_tools.py,sha256=BYWcARspvRCYYTmAtfP7mLSdEH5AncNVWg8vHakR0J0,8976
76
+ src/tools/research_tools.py,sha256=IxWiWpiWKglOIfoVEWTZ1IUFyGswC1AtyilmlyUla-M,48936
77
+ src/tools/resource_catalog.py,sha256=Z49iT8QyE3rQIRD1b3FKUTB3Ud4IVH9OruaU2tcY0kU,3386
78
+ src/tools/resume_parser.py,sha256=orRXYmR6qf6gOmvU5uT6I6ZKpwqPtN6JXdkjs5by-vg,1666
79
+ src/tools/review.py,sha256=uiFryJJrkAA27NQEmsFjtjSvsGon9VsjFGaVoSmiID8,10264
80
+ src/tools/roadmap.py,sha256=Q2KmuiABoE_zcUAX0QLxp0PvMMZ7AJLi-E75S0GNjQ8,6278
81
+ src/tools/roadmap_tools.py,sha256=rk3awD7Cf-tx3xjnbZX8NTREBp-5ngIuNpwnLb1fOlA,34449
82
+ src/tools/session.py,sha256=38PseO9r-m659XaJSOPUZ0B_2hZuk750xoAn0BxBtNo,3136
83
+ src/tools/session_tools.py,sha256=LkjWvxtlK4TgsdDNZWsUZqD8h46YXUVAHgh2YWftYac,20950
84
+ src/tools/task_manager.py,sha256=8kmOhr-N2rh1-lDyRqTJpSX31qzgpFWzo1BEAX2WO9w,18672
85
+ src/tools/task_tools.py,sha256=zf4Xt21xaMVVuG9uysMyzm_nwy9UfhLyzBmCc2OHN68,44515
86
+ src/tools/tool_helpers.py,sha256=rpjmckO512Vh2p0idP31iajsrOUnsqgLVBPxc88x13g,6867
87
+ src/web_ui/app.js,sha256=T2asZmraCfYPvrWT--cULHYd4CVIav3EcCEr2cPFwJI,15945
88
+ src/web_ui/index.html,sha256=jhBIkffo3yXgISGgyBQX8kVWtT9W3F-YQoi2SlZEe8M,2028
89
+ src/web_ui/style.css,sha256=5BVChxSoZtf-YP3x00hNTVR_wu6Ka7vZ6v04JBirVCw,5954
90
+ docs/README.md,sha256=h8uSb4ak6xse3u3PxMvm1g8VdOQjcIHBujLMzwuON40,2454
91
+ docs/index.html,sha256=0kghL4Xcqqn9EwcAvrII4t-0fO8q_VgEpE3U5zs_p-M,3878
92
+ docs/industry-outcomes.md,sha256=dsT3KEERDoHy30AH7qlbId4iDQUtQJRMnfx4G4xGsKQ,1945
93
+ docs/knowledge.md,sha256=yP-19_empwBtjvqMKPebZ5iPiOdoRjDT9pgVAQOZm48,1927
94
+ docs/llms.txt,sha256=K0JB559sxnl2Lb_In9L2T-t1_XJmCOCtVC3oRorxD1M,6713
95
+ docs/rules.md,sha256=_tgm0YDTQ_1G6iMh7vJrtjjk9Q55AkM-hB2jtTRCXlA,3111
96
+ docs/scrapers.md,sha256=hnyacdaJDNyfQVB-NYHBn-As_ZLuvSK3Ygc9_Gg3dAY,3022
97
+ docs/tools.md,sha256=DjzZYJp3XjiNfgLvnkY5rLgYG89UOfOUeCNRLUY_gHI,7691
98
+ docs/workflow.md,sha256=ADDLOQkbVG62648xln2am7rRS7kNbJqPACNpYhp4ZQI,16637
99
+ docs/examples/README.md,sha256=cdhU-8PF2bPx49EMjNq8Pa1nHMyIeKpW1K8xz2PAKOI,990
100
+ docs/examples/build_demo.py,sha256=IBgVnjRNuS9tovAf2RXBoxNXcBzU3vXLeZ1a3gk4j3Y,14451
101
+ docs/examples/data/sample_gap.json,sha256=Pm4fbVRh_L4ELFdQ-p6-3jdPWVcQj4uYkxW28I30Nmk,3573
102
+ docs/examples/data/sample_profile.json,sha256=4MlxPZkio_9G-I5lylsB05j9gxKgNC6Cw0M7XfYbQHc,800
103
+ docs/examples/data/sample_roadmap.json,sha256=Wn8HwaS7YAPW9XVfRJKJZFAMxeTrcmpT7w4LS5uch0c,4303
104
+ docs/examples/demo/README.md,sha256=sjp38DgkfF_4NYKS4BCesE-AEit_e_YQyGWjBdfK2Cs,2471
105
+ docs/examples/demo/career-map.html,sha256=mCUEBZTIhdLju5gRDn6F_IuJVajBp48Low6-cqL4vOU,32565
106
+ docs/examples/demo/career-map.png,sha256=Zfx8Y2f2RWnKZvT5e6Tkn3gO2GWbz10IAnsDTlwQohQ,324271
107
+ docs/examples/demo/dashboard.html,sha256=03u_wDsy5FuI69mpr6Pme60j_cZPK8DIcLLTf6zuXlE,4354
108
+ docs/examples/demo/dashboard.png,sha256=zAJPkeIZF4Txfd_Q388MkrDUSkiLJ41HNxX4qRfbK0M,333533
109
+ docs/examples/demo/demo_profile.json,sha256=Pg3DbrOSAwtnKFU2t1ARyPDd1_LZKnmd-ZHeKPBSVl4,27938
110
+ docs/examples/scenarios/career_change.md,sha256=OPmEaQ-fiaAKUX6HWQaLO_gKJnGHZECdzZ3AUEItGpw,5917
111
+ docs/examples/scenarios/interview_prep.md,sha256=g-EqY9k6ayRg1YRE8MMji8uojDnO5Ef6kqQSIIHlKEk,1937
112
+ docs/examples/scenarios/skill_upgrade.md,sha256=QGdxHa_P1Tk7RndU8fEfFdurkHshqYTJFGae4JeXu-M,6886
113
+ docs/prompts/grounding.md,sha256=m_QTMiqdGr7lYxScU13fhvZuAWK_ZcH_nthppdSkB5k,1282
114
+ docs/prompts/onboarding.md,sha256=v5QB9e-g-qHnl1fYqUrEO8zBfdBsRnoaBN6rXFsvndU,1634
115
+ docs/prompts/quick-scan.md,sha256=kmD138mAYloY6QQKGYphyyv1NtOTEDAJBj_NMIAxybU,1930
116
+ sop/detailed_route.yaml,sha256=-qWbgpJNi8rx7dLKr56a67kGyNnsS8fyqdGiY9Nj-hs,4268
117
+ sop/goal_selection.yaml,sha256=q6zVZU065Q6e2yc37_6eoF7f8PgVtFMu_XBuiAqQI6o,9884
118
+ sop/interview_prep.yaml,sha256=Wg1lXUfLpm1mdjNTmOxXBZYb-FiQ_lWhTod83fgjv0M,4220
119
+ sop/market_research.yaml,sha256=rGsEjo1Q0VlS3nHquhsJ9ajruCENA_C6QiQYKDCCu58,5356
120
+ sop/resources.yaml,sha256=sTx8JJPdkM-PsS9C-XNbfncrflGgk9li76oiIqnv_7g,3506
121
+ sop/resume_screening.yaml,sha256=GatS2zbvXy1qMIsEzracV8tf4BPgLYO3FTozmQof1Kw,7338
122
+ sop/roadmap.yaml,sha256=qOuAyeIRntoE6pMIX0IjwuXM1Ok5X1mnTgu7OjbQmZM,15673
123
+ career_kit-0.2.0.dist-info/METADATA,sha256=71kFkmL4wnxVki5K9Eib_ovwYHgQ2lqcJ0c8vxLPyxc,10061
124
+ career_kit-0.2.0.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
125
+ career_kit-0.2.0.dist-info/entry_points.txt,sha256=jAsfm2EAusu6vmPlCQSypuBVyrkuY2rMbTeSemTxibo,147
126
+ career_kit-0.2.0.dist-info/licenses/LICENSE,sha256=gArMYckJG-q-8B468Dy48RYaQJUBc806-B0ok-15W0M,1061
127
+ career_kit-0.2.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.33.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ career-kit = src.server:main
3
+ career-kit-demo = src.demo:main
4
+ career-kit-doctor = src.doctor:main
5
+ career-kit-serve = src.web:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wuuz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
docs/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # 文档地图
2
+
3
+ > 唯一入口。公开文档在 `docs/` 根目录(MCP Resources 直接读取),内部开发文档在
4
+ > `docs/internal/`(被 `.gitignore` 排除,不随开源仓库发布)。
5
+
6
+ ## 公开文档
7
+
8
+ | 文档 | 内容 | 主要读者 |
9
+ |------|------|----------|
10
+ | [llms.txt](llms.txt) | LLM 运行时操作手册:规则、工作流、反模式 | 接入的 AI Agent |
11
+ | [workflow.md](workflow.md) | 各阶段前置条件、流程、输入输出 | 使用者 / LLM |
12
+ | [tools.md](tools.md) | 41 个 MCP 工具的唯一事实源 | 使用者 / 贡献者 |
13
+ | [scrapers.md](scrapers.md) | 已收录企业数据源与贡献流程 | 使用者 / 贡献者 |
14
+ | [knowledge.md](knowledge.md) | 本地知识库目录与文件格式 | 使用者 |
15
+ | [rules.md](rules.md) | 档位含义、评分口径、打卡方式、数据边界 | 使用者 / LLM |
16
+ | [industry-outcomes.md](industry-outcomes.md) | 同行业/相关专业去向数据接入格式 | 使用者 / 贡献者 |
17
+ | [prompts/](prompts/onboarding.md) | 开场路由、扫盲子流程、grounding Prompt | LLM / 贡献者 |
18
+ | [examples/](examples/README.md) | 可交互职业地图、场景示例、示例数据 | 使用者 |
19
+
20
+ 企业教程的唯一事实源是 `src/scrapers/<id>/guide.md`(`get_scraper_guide` 与
21
+ MCP Resource 同源)。
22
+
23
+ ## 内部文档(不发布)
24
+
25
+ 本地开发文档统一放在 `docs/internal/`(被 `.gitignore` 排除,不随开源仓库发布):
26
+ 架构、产品设计、实现路径与待办、调研记录、手工 E2E 验证手册。
27
+ 维护者本地可直接查看,不在公开文档中列出链接。
28
+
29
+ ## 根目录文件
30
+
31
+ - [README.md](../README.md):安装、注册、快速开始
32
+ - [README.en.md](../README.en.md):English README
33
+ - [llms.txt](../llms.txt):仓库级 LLM 入口索引(llmstxt 约定)
34
+ - [CONTRIBUTING.md](../CONTRIBUTING.md):贡献流程与开发规范
35
+ - [CODE_OF_CONDUCT.md](../CODE_OF_CONDUCT.md):贡献者行为准则
36
+ - [DISCLAIMER.md](../DISCLAIMER.md):数据源、抓取与责任边界
37
+ - [SECURITY.md](../SECURITY.md):安全问题报告流程
38
+
39
+ ## 维护约定
40
+
41
+ 1. 工具清单只改 `docs/tools.md`;企业教程只改 `src/scrapers/<id>/guide.md`。
42
+ 2. 工作流只改 `docs/workflow.md`;`docs/llms.txt` 引用它,不重复定义。
43
+ 3. 内部状态(Phase / 待办 / 已完成)只改 `docs/internal/roadmap.md`。
44
+ 4. 新增公开文档前先判断能否并入现有文档,避免再次产生重复源。
@@ -0,0 +1,31 @@
1
+ # 示例目录
2
+
3
+ > 完整工作流见 [工作流详解](../workflow.md),工具清单见 [工具总览](../tools.md)。
4
+
5
+ ## 零等待演示
6
+
7
+ - [demo/](demo/):一份样例简历经完整链路生成的**可交互职业地图 HTML**
8
+ (双击即看,无需安装)
9
+
10
+ ## 场景示例
11
+
12
+ - [前端转 AI](scenarios/career_change.md):前端工程师转行 AI Agent 工程师
13
+ - [面试冲刺](scenarios/interview_prep.md):拿到面试后的准备流程
14
+ - [技能升级](scenarios/skill_upgrade.md):在职人员提升技能
15
+
16
+ ## 示例数据
17
+
18
+ - [示例档案](data/sample_profile.json)
19
+ - [示例差距分析](data/sample_gap.json)
20
+ - [示例路线图](data/sample_roadmap.json)
21
+
22
+ ## 最短链路
23
+
24
+ ```
25
+ start_session → intake(who/have/want) → finalize_profile
26
+ → fetch_company_jobs → analyze_gaps → save_gap_analysis
27
+ → generate_roadmap → save_roadmap
28
+ → detail_current_phase → save_current_detail → generate_tasks
29
+ → get_next_tasks → checkin_task
30
+ → export_dashboard
31
+ ```