@mazjq/zhiro 0.1.2 → 0.2.1

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.
package/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  # Zhiro · 职路
4
4
 
5
- **Local-first AI career research and job hunting — with the agent you already use.**
5
+ A job-search assistant that runs on your own computer: find jobs, look into companies, keep track of applications.
6
+ Works with AI assistants such as Claude Code and Codex.
6
7
 
7
8
  English | [简体中文](README.zh-CN.md)
8
9
 
@@ -12,90 +13,144 @@ English | [简体中文](README.zh-CN.md)
12
13
 
13
14
  </div>
14
15
 
15
- Zhiro keeps your whole job hunt in one place on your own computer: which companies are hiring, what fits you, what
16
- closes this week, where each application stands — and lets your own AI agent (Claude Code, Codex, WorkBuddy, or any
17
- MCP client) research industries and companies, track things for you and fill in application forms, **without ever
18
- pressing Submit for you**. It is built first for campus recruiting in China (校招), and works for any job search.
16
+ Every day Zhiro collects jobs from companies' recruiting sites, picks the ones that fit your degree, major and
17
+ experience, and reminds you which ones close soon. It can look up listed companies' financial reports and
18
+ announcements to help you decide whether a company is worth joining. After you apply, it can also keep track of your
19
+ progress, read interview emails and fill in application forms.
20
+
21
+ It is built mainly for campus recruiting in China (校招), and works for other job searches too.
19
22
 
20
23
  ![Zhiro: jobs ranked against your profile](docs/assets/jobs.png)
21
24
 
22
- | Today: what closes soon, what waits for you | Applications: every stage, with the job's own requirements |
25
+ <sub>Every company, job and number in the screenshots is made up.</sub>
26
+
27
+ ## Why Zhiro
28
+
29
+ ### 1. Know what to learn next
30
+
31
+ Zhiro gathers the requirements of the jobs related to your field, lists the skills your profile doesn't mention yet,
32
+ and counts how many jobs and companies ask for each one. In the screenshot below, C++ is required by 4 jobs and ROS by 2.
33
+
34
+ If you already have a skill, click *I can do this* and it is added to your profile. If you don't, click *haven't done
35
+ this*. Job recommendations are recalculated from your answers.
36
+
37
+ ![Opportunity gaps: how many jobs ask for each skill](docs/assets/gaps.png)
38
+
39
+ ### 2. See how a company is doing
40
+
41
+ For listed companies (A-shares, Hong Kong, US, NEEQ), Zhiro can look up:
42
+
43
+ - three years of revenue, profit, growth, gross margin and R&D spending;
44
+ - headcount, and the average cash the company pays per employee (salary, social insurance and so on);
45
+ - the past year's announcements, such as employee share plans or equity incentives, new production lines, government
46
+ grants, being named a "专精特新" company (usually a niche firm that is hard to replace in its industry), and share
47
+ sales by major shareholders.
48
+
49
+ You can also ask your AI assistant to research a whole industry. It writes a report from this data, broker research
50
+ and what it finds online. Every point names its source, and the numbers it quotes are checked against the original
51
+ data. If a company in the report is hiring, you can click through to its jobs.
52
+
53
+ ![A research report: key points, sources, the companies it names](docs/assets/research.png)
54
+
55
+ <img src="docs/assets/company-intel.png" alt="A company's financials: revenue, R&D, pay per employee" width="520">
56
+
57
+ ### 3. Don't miss a job or a deadline
58
+
59
+ Every day Zhiro reads the recruiting sites you subscribe to: companies' own hiring systems (Moka, Beisen, Feishu Jobs,
60
+ 51job, Zhaopin, iGuopin and more) and 高校人才网 (gaoxiaojob.com, where research institutes, labs, university teams and
61
+ public institutions post). It can also read spreadsheets you keep yourself (Feishu Base, CSV files).
62
+
63
+ The same job sometimes shows different deadlines on different sites. Zhiro compares them and notes which site each
64
+ date came from and whether it has been verified.
65
+
66
+ Your education, skills, projects and preferred cities are kept in your profile. Job recommendations, choosing a
67
+ resume and filling in forms all take their information from there.
68
+
69
+ | Today: jobs closing soon, things waiting for you | Profile: your education, skills and experience |
23
70
  |---|---|
24
- | ![Today](docs/assets/today.png) | ![Applications](docs/assets/pipeline.png) |
25
-
26
- <sub>Screenshots use made-up data.</sub>
27
-
28
- ## What it does
29
-
30
- - **One job pool, always fresh.** Reads companies' own recruiting sites (Moka, Beisen, Feishu Jobs, Dayee, 51job,
31
- Zhaopin, iGuopin, and more) and your own spreadsheets (Feishu Base, CSV links or files), every day. Deadlines are
32
- reconciled across sources, and each one says where it came from.
33
- - **What fits you.** Your profile is a set of small, checkable cards (education, skills, projects, preferences); jobs
34
- are matched against them, and gaps become directions to grow in, not silent filters.
35
- - **Today.** What closes in the next 14 days, what changed, and the few things waiting for your decision.
36
- - **Applications.** Watch → prepare → applied → tests and interviews → result, with reminders and an inbox that
37
- turns recruiting mail into suggestions.
38
- - **Form filling up to Submit.** A separate Chrome profile fills in application forms from your profile and the
39
- right resume; it stops before *Submit*, and you press it.
40
- - **Research with your own agent.** Ask about an industry or a company; your agent searches the web and gets
41
- financial and industry data through Zhiro's tools, and the report links back to the jobs in your pool.
42
- - **Your agent, your rules.** Reversible actions happen and can be undone; anything with consequences becomes a card
43
- you confirm; logins and credentials are never an agent's to touch.
44
- - **Your data stays yours.** Everything is in one folder on your machine. Upgrades run on a copy and are checked
45
- before they replace anything; one command verifies, one rolls back.
71
+ | ![Today](docs/assets/today.png) | ![Profile](docs/assets/profile.png) |
46
72
 
47
- ## Install
73
+ ### 4. After you apply
48
74
 
49
- **Have Node 22.13 or newer?**
75
+ Zhiro records where each application stands (preparing, applied, written test, interview, result) and reminds you as
76
+ dates come up.
50
77
 
51
- ```bash
52
- npx @mazjq/zhiro # try it
53
- npm i -g @mazjq/zhiro && zhiro # keep it (the command is `zhiro`)
54
- ```
78
+ Once you connect your mailbox, Zhiro reads recruiting emails, recognises test and interview invitations, finds the
79
+ application each one belongs to, and asks whether to update it.
55
80
 
56
- **No Node?** One line installs everything it needs (its own Node, checked against nodejs.org's checksums; your system
57
- is not touched):
81
+ It can fill in application forms for you. It opens a separate Chrome window, fills the form from your profile and the
82
+ right resume, and then stops so you can check it and press *Submit* yourself.
83
+
84
+ | Applications: the progress and requirements of each one | Inbox: test and interview invitations found in your mail |
85
+ |---|---|
86
+ | ![Applications](docs/assets/pipeline.png) | ![Inbox](docs/assets/inbox.png) |
87
+
88
+ ### 5. Your data stays safe
89
+
90
+ An AI assistant can only directly do things that can be undone. Anything else waits until you click to confirm. It
91
+ never gets your logins for any site.
92
+
93
+ All your data is kept in one folder on your computer. Zhiro backs it up before every upgrade, and if an upgrade goes
94
+ wrong, one command restores it.
95
+
96
+ ## Install
97
+
98
+ Windows: search for "PowerShell" in the Start menu, open it, paste this line and press Enter:
58
99
 
59
100
  ```powershell
60
- # Windows (PowerShell)
61
101
  irm https://github.com/mazjq/zhiro/releases/latest/download/install.ps1 | iex
62
102
  ```
63
103
 
104
+ macOS / Linux: open Terminal, paste this line and press Enter:
105
+
64
106
  ```bash
65
- # macOS / Linux
66
107
  curl -fsSL https://github.com/mazjq/zhiro/releases/latest/download/install.sh | sh
67
108
  ```
68
109
 
69
- <details><summary>Prefer to read the script first?</summary>
110
+ The first start asks where to keep your data (press Enter for the default), then opens Zhiro in your browser. Running
111
+ the same line again later upgrades it.
70
112
 
71
- Download [`install.ps1`](https://github.com/mazjq/zhiro/releases/latest/download/install.ps1) or
72
- [`install.sh`](https://github.com/mazjq/zhiro/releases/latest/download/install.sh), look at it, then run it. Running it
73
- again upgrades; the previous version is kept.
113
+ <details><summary>Already have Node.js 22.13 or newer</summary>
114
+
115
+ ```bash
116
+ npx @mazjq/zhiro # try it
117
+ npm i -g @mazjq/zhiro && zhiro # keep it; start it later by typing zhiro
118
+ ```
74
119
  </details>
75
120
 
76
- **Want to change the code?** See [CONTRIBUTING.md](CONTRIBUTING.md): `git clone`, `pnpm install`, `pnpm dev`.
121
+ <details><summary>Want to see what the install script does first</summary>
122
+
123
+ Download [`install.ps1`](https://github.com/mazjq/zhiro/releases/latest/download/install.ps1) or
124
+ [`install.sh`](https://github.com/mazjq/zhiro/releases/latest/download/install.sh) and read it before running it. The
125
+ script downloads an official copy of Node.js into Zhiro's own folder (checked against the checksums nodejs.org
126
+ publishes) and leaves the software already on your computer alone. When you upgrade, the previous version is kept.
127
+ </details>
77
128
 
78
- The first start asks where to keep your data (press Enter for the usual place), then opens the app in your browser.
129
+ To work on the code, see [CONTRIBUTING.md](CONTRIBUTING.md).
79
130
 
80
- ### Let your agent install it
131
+ ### Let an AI assistant install it
81
132
 
82
- Paste this into Claude Code, Codex or any coding agent:
133
+ If you use an AI coding assistant such as Claude Code or Codex, send it this:
83
134
 
84
135
  ```text
85
136
  Install Zhiro for me by following https://raw.githubusercontent.com/mazjq/zhiro/main/llms-install.md
86
137
  (fetch it with curl, not a summarizer).
87
138
  ```
88
139
 
89
- ## Use it from your own agent
140
+ ## Connect your AI assistant
141
+
142
+ You can use Zhiro in your browser without any AI assistant. Once you connect one, you can ask it in chat to find jobs,
143
+ research companies or fill in applications for you.
90
144
 
91
- Zhiro is a set of MCP tools. Start Zhiro, then connect your agent once:
145
+ AI assistants use Zhiro through MCP (a common way for AI to call outside tools). Start Zhiro, then set it up once for
146
+ the assistant you use:
92
147
 
93
148
  <details><summary>Claude Code</summary>
94
149
 
95
150
  ```bash
96
151
  claude mcp add zhiro -- zhiro mcp # Windows: claude mcp add zhiro -- cmd /c zhiro mcp
97
152
  ```
98
- Or open Claude Code inside Zhiro's agent folder (shown on the settings page) — everything is set up there.
153
+ Or open Claude Code in the folder Zhiro prepares for it (shown on Zhiro's settings page); it is already set up there.
99
154
  [More](docs/harness/claude-code.md)
100
155
  </details>
101
156
 
@@ -104,7 +159,7 @@ Or open Claude Code inside Zhiro's agent folder (shown on the settings page) —
104
159
  ```bash
105
160
  codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- zhiro mcp
106
161
  # Windows: codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- cmd /c zhiro mcp
107
- # (ZHIRO_RESULT_MODE: Codex then gets each result once instead of twice — about half the tokens)
162
+ # (ZHIRO_RESULT_MODE=text stops Codex receiving each result twice, which saves about half the usage)
108
163
  ```
109
164
  [More](docs/harness/codex.md)
110
165
  </details>
@@ -114,22 +169,38 @@ codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- zhiro mcp
114
169
  [WorkBuddy](docs/harness/workbuddy.md) · [any MCP client](docs/harness/others.md)
115
170
  </details>
116
171
 
117
- Then just ask: *"What closes this week?"*, *"Watch the control-algorithm jobs in Wuhan"*, *"Research the humanoid
118
- robot industry"*, *"Fill in the application for the first one."*
172
+ Then just ask, for example: *"What closes this week?"*, *"Watch the control-algorithm jobs in Wuhan"*, *"Research the
173
+ humanoid robot industry"*, *"Fill in the application for the first job."*
174
+
175
+ ### Use AI inside Zhiro
176
+
177
+ You can also use AI without leaving Zhiro. Pick who answers on the settings page (Claude Code, Codex, DeepSeek, or
178
+ Zhiro's built-in assistant), then click *Assistant* in the bottom-left corner to chat.
179
+
180
+ With Claude Code or Codex you pick the model from a list. Zhiro reads the list from the Claude Code and Codex installed
181
+ on your computer, newest first; if you don't pick one, it uses whatever you have set in them. The choice only applies
182
+ inside Zhiro and doesn't change their own settings.
183
+
184
+ The folder shown on the settings page is set up for your own AI assistant: open Claude Code or Codex there and there is
185
+ nothing else to configure. [More](docs/harness/embedded.md)
186
+
187
+ ![Settings: choose the AI assistant and its model](docs/assets/settings.png)
188
+
189
+ With the built-in assistant, choose a model provider (DeepSeek, OpenAI, Anthropic and others) in the same card and sign
190
+ in or enter an API key.
119
191
 
120
- You can also pick which agent answers in Zhiro's own chat panel (Claude Code, Codex, or an optional built-in
121
- assistant): [docs/harness/embedded.md](docs/harness/embedded.md).
192
+ ![Settings: the built-in assistant and its model](docs/assets/builtin.png)
122
193
 
123
194
  ## Your data
124
195
 
125
- One folder, on your machine: `%APPDATA%\Zhiro\data` (Windows), `~/Library/Application Support/Zhiro` (macOS),
126
- `~/.local/share/zhiro` (Linux), or wherever you chose. Nothing is uploaded; the only network traffic is the
127
- recruiting sites you subscribe to and the agent or model you pick.
196
+ Everything is kept in one folder on your computer. By default that is `%APPDATA%\Zhiro\data` (Windows),
197
+ `~/Library/Application Support/Zhiro` (macOS) or `~/.local/share/zhiro` (Linux), or you can choose a folder at the first
198
+ start. Zhiro only connects to the recruiting sites you subscribe to and the AI assistant you choose.
128
199
 
129
200
  ```bash
130
- zhiro vault verify # is everything intact?
131
- zhiro vault backup # a checked backup, any time
132
- zhiro vault rollback # back to before the last upgrade
201
+ zhiro vault verify # check that the data is intact
202
+ zhiro vault backup # make a backup now
203
+ zhiro vault rollback # go back to before the last upgrade
133
204
  ```
134
205
 
135
206
  More: [docs/data.md](docs/data.md) · Bring your own spreadsheet: [docs/data-sources.md](docs/data-sources.md)
@@ -147,11 +218,12 @@ Most user docs are in Chinese for now; PRs translating them are welcome.
147
218
 
148
219
  ## Contributing
149
220
 
150
- Bug reports, recruiting sites to support, and pull requests are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md).
151
- Adding a recruiting site is one file plus a test ([how](apps/daemon/src/data/readers/README.md)).
152
- Security issues: please report privately ([SECURITY.md](SECURITY.md)).
221
+ Bug reports, suggestions for recruiting sites to support, and pull requests are welcome. See
222
+ [CONTRIBUTING.md](CONTRIBUTING.md). Adding a recruiting site takes one file plus a test
223
+ ([how](apps/daemon/src/data/readers/README.md)). Please report security issues privately ([SECURITY.md](SECURITY.md)).
153
224
 
154
225
  ## License
155
226
 
156
227
  [MIT](LICENSE). The Moka reader includes three files from [career-ops](https://github.com/career-ops-hq/career-ops)
157
- (MIT).
228
+ (MIT). The financial-report and announcement sources behind company profiles follow the public endpoints collected in
229
+ Simon Lin's [a-stock-data](https://github.com/simonlin1212/a-stock-data) (Apache-2.0).
package/README.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Zhiro · 职路
4
4
 
5
- **本地优先的 AI 职业调研与求职工具——用你已经在用的 agent。**
5
+ 在你自己电脑上运行的求职助手:找岗位、了解公司、管理投递。可以配合 Claude Code、Codex 等 AI 助手使用。
6
6
 
7
7
  [English](README.md) | 简体中文
8
8
 
@@ -12,75 +12,119 @@
12
12
 
13
13
  </div>
14
14
 
15
- 职路把整个求职过程放在你自己的电脑上:哪些公司在招、哪些适合你、这周什么截止、每份申请走到哪一步。你自己的 AI agent(Claude Code、Codex、WorkBuddy,或任何支持 MCP 的客户端)可以帮你调研行业和公司、盯进度、填网申——**但提交按钮永远由你来点**。先为国内校招做,社招也能用。
15
+ 职路每天从各公司的招聘网站收集岗位,按你的学历、专业和经历挑出合适的,并提醒你哪些快截止了。它能查上市公司的财报和公告,帮你判断一家公司值不值得去。投递以后的进度、面试邮件和网申表格,也可以交给它。
16
16
 
17
- ![职路:按你的画像排好的岗位](docs/assets/jobs.png)
17
+ 目前主要面向国内校招,社招也能用。
18
18
 
19
- | 今日:快截止的、等你拍板的 | 投递:每一步进度,岗位要求原文随手可查 |
19
+ ![职路:按你的资料排好的岗位](docs/assets/jobs.png)
20
+
21
+ <sub>截图里的公司、岗位和数字都是虚构的。</sub>
22
+
23
+ ## 为什么用职路
24
+
25
+ ### 1. 知道自己该补什么
26
+
27
+ 职路会把和你方向相关的岗位要求汇总起来,列出你的资料里还没写到的技能,并算出每一项出现在多少个岗位、多少家公司的要求里。比如下图中,C++ 出现在 4 个岗位的要求里,ROS 出现在 2 个。
28
+
29
+ 其实会的,点「我会」,它会记进你的资料;没学过的点「没做过」。岗位推荐会按你的回答重新算一遍。
30
+
31
+ ![机会缺口:每项技能出现在几个岗位的要求里](docs/assets/gaps.png)
32
+
33
+ ### 2. 了解公司的经营情况
34
+
35
+ 对上市公司(A 股、港股、美股、新三板),职路能查到:
36
+
37
+ - 近三年的营收、利润、增长率、毛利率和研发投入;
38
+ - 员工人数,以及公司平均为每位员工支付的现金(工资、社保等);
39
+ - 近一年的公告,比如员工持股或股权激励、扩建产线、获得政府补助、被认定为「专精特新」企业(一般是某个细分领域里很难被替代的公司)、大股东减持。
40
+
41
+ 你也可以让 AI 助手调研一个行业。它会结合这些数据、券商研报和网上的资料写一份报告,每条结论注明出处,引用的数字会自动和原始数据核对一遍。报告里提到的公司如果正在招聘,可以直接点进去看岗位。
42
+
43
+ ![调研报告:要点、出处、提到的公司](docs/assets/research.png)
44
+
45
+ <img src="docs/assets/company-intel.png" alt="一家公司的经营情况:营收、研发、人均薪酬" width="520">
46
+
47
+ ### 3. 不错过岗位和截止日期
48
+
49
+ 你订阅的招聘网站,职路每天自动去读一遍:公司自己的招聘系统(Moka、北森、飞书招聘、前程无忧、智联校园、国聘等),还有高校人才网(研究院、实验室、高校团队、事业单位常在这里发公告)。也可以读你自己整理的表格(飞书多维表格、CSV 文件)。
50
+
51
+ 同一个岗位在不同网站上写的截止日期有时对不上。职路会把它们放在一起比对,注明每个日期来自哪个网站、有没有核实过。
52
+
53
+ 你的学历、技能、项目经历和意向城市都存在「求职资料」里。推荐岗位、挑简历、填网申,都从这里取信息。
54
+
55
+ | 今日:快截止的岗位、等你确认的事 | 求职资料:你的学历、技能、经历 |
20
56
  |---|---|
21
- | ![今日](docs/assets/today.png) | ![投递](docs/assets/pipeline.png) |
57
+ | ![今日](docs/assets/today.png) | ![求职资料](docs/assets/profile.png) |
22
58
 
23
- <sub>截图里都是虚构数据。</sub>
59
+ ### 4. 投递之后
24
60
 
25
- ## 能做什么
61
+ 每份申请到了哪一步(准备中、已投递、笔试、面试、结果)都会记下来,日子临近时提醒你。
26
62
 
27
- - **一个岗位库,每天自动更新。** 读公司自己的招聘站(Moka、北森、飞书招聘、大易、前程无忧、智联校园、国聘等)和你自己的表格(飞书多维表格、CSV 链接或文件)。多个来源的截止日期会对照合并,每条都标明出处。
28
- - **哪些适合你。** 画像是一张张能核对的小卡片(教育、技能、项目、偏好);岗位按它匹配,差距会变成「往哪补」,而不是悄悄筛掉。
29
- - **今日。** 14 天内截止的、有变化的、等你拍板的几件事。
30
- - **投递进度。** 关注 → 准备申请 → 已投递 → 笔试面试 → 结果,带提醒;收件箱把招聘邮件变成建议,由你确认。
31
- - **网申填到提交前。** 用一个单独的 Chrome 档案,按你的画像和合适的那份简历填表;停在「提交」前,由你自己点。
32
- - **用你自己的 agent 做调研。** 问一个行业或一家公司:你的 agent 上网查,再通过职路的工具拿财报、行业研报等数据,报告和你岗位库里的岗位对上号。
33
- - **你的 agent,你定规矩。** 能撤销的事它直接做、你能撤销;有影响的事变成确认卡等你点;登录和凭据 agent 碰不到。
34
- - **数据在你手里。** 全部在你电脑上的一个文件夹里。升级在副本上做、核对全对才换上;一条命令检查,一条命令回退。
63
+ 接入邮箱后,职路会读招聘邮件,认出笔试和面试通知,找到对应的申请,问你要不要更新进度。
35
64
 
36
- ## 安装
65
+ 网申表格也可以让它填。它会打开一个单独的 Chrome 窗口,用你的资料和合适的简历把表格填好,然后停下来,由你检查后自己点提交。
66
+
67
+ | 投递:每份申请的进度和岗位要求 | 收件箱:从招聘邮件里认出的笔试、面试通知 |
68
+ |---|---|
69
+ | ![投递](docs/assets/pipeline.png) | ![收件箱](docs/assets/inbox.png) |
37
70
 
38
- **装了 Node 22.13 或更新?**
71
+ ### 5. 数据安全
39
72
 
40
- ```bash
41
- npx @mazjq/zhiro # 试一下
42
- npm i -g @mazjq/zhiro && zhiro # 长期用(装好后命令叫 zhiro)
43
- ```
73
+ AI 助手只能直接做可以撤销的操作,其他操作要你点确认才会执行。你在各个网站的登录信息它拿不到。
74
+
75
+ 所有数据都存在你电脑上的一个文件夹里。每次升级前会先备份,升级出了问题,一条命令就能恢复。
76
+
77
+ ## 安装
44
78
 
45
- **没有 Node?** 一行命令,自带它需要的一切(自带一份官方 Node,按 nodejs.org 的校验和核对过;不动你系统里的东西):
79
+ Windows:在开始菜单搜「PowerShell」并打开,粘贴下面这行,回车:
46
80
 
47
81
  ```powershell
48
- # Windows(PowerShell)
49
82
  irm https://github.com/mazjq/zhiro/releases/latest/download/install.ps1 | iex
50
83
  ```
51
84
 
85
+ macOS / Linux:打开「终端」,粘贴下面这行,回车:
86
+
52
87
  ```bash
53
- # macOS / Linux
54
88
  curl -fsSL https://github.com/mazjq/zhiro/releases/latest/download/install.sh | sh
55
89
  ```
56
90
 
57
- <details><summary>想先看看脚本再运行?</summary>
91
+ 装好后,第一次启动会问数据存在哪(直接回车用默认位置),然后在浏览器里打开职路。以后再运行同一行命令就是升级。
92
+
93
+ <details><summary>已经装了 Node.js 22.13 或更新版本</summary>
58
94
 
59
- 下载 [`install.ps1`](https://github.com/mazjq/zhiro/releases/latest/download/install.ps1) 或 [`install.sh`](https://github.com/mazjq/zhiro/releases/latest/download/install.sh),看过再运行。再运行一次就是升级,上一个版本会保留。
95
+ ```bash
96
+ npx @mazjq/zhiro # 先试一下
97
+ npm i -g @mazjq/zhiro && zhiro # 长期用,之后输入 zhiro 就能启动
98
+ ```
60
99
  </details>
61
100
 
62
- **想改代码?** 见 [CONTRIBUTING.md](CONTRIBUTING.md):`git clone`、`pnpm install`、`pnpm dev`。
101
+ <details><summary>想先看看安装脚本做了什么</summary>
63
102
 
64
- 第一次启动会问数据放哪(直接回车用默认位置),然后在浏览器里打开。
103
+ 下载 [`install.ps1`](https://github.com/mazjq/zhiro/releases/latest/download/install.ps1) 或 [`install.sh`](https://github.com/mazjq/zhiro/releases/latest/download/install.sh) 看过再运行。脚本会下载一份官方的 Node.js 放在职路自己的文件夹里(按 nodejs.org 公布的校验值核对),不改动你电脑上原有的软件。升级时上一个版本会保留。
104
+ </details>
105
+
106
+ 想参与开发,见 [CONTRIBUTING.md](CONTRIBUTING.md)。
65
107
 
66
- ### 让你的 agent 帮你装
108
+ ### 让 AI 助手帮你装
67
109
 
68
- 把这句话贴给 Claude Code、Codex 或任何编程 agent:
110
+ 如果你在用 Claude Code、Codex 这类 AI 编程助手,把这句话发给它:
69
111
 
70
112
  ```text
71
113
  按 https://raw.githubusercontent.com/mazjq/zhiro/main/llms-install.md 帮我安装 Zhiro(用 curl 取原文,不要用网页摘要)。
72
114
  ```
73
115
 
74
- ## 在你自己的 agent 里用
116
+ ## 接到你的 AI 助手
117
+
118
+ 不接 AI 助手,也能直接在浏览器里用职路。接上以后,你可以用聊天的方式让 AI 助手替你查岗位、做调研、填网申。
75
119
 
76
- 职路是一组 MCP 工具。启动职路后,给你的 agent 接一次:
120
+ AI 助手通过 MCP(一种让 AI 调用外部工具的通用接口)使用职路。先启动职路,再按你用的助手设置一次:
77
121
 
78
122
  <details><summary>Claude Code</summary>
79
123
 
80
124
  ```bash
81
125
  claude mcp add zhiro -- zhiro mcp # Windows:claude mcp add zhiro -- cmd /c zhiro mcp
82
126
  ```
83
- 或者在职路的 agent 工作目录(设置页里有位置)里打开 Claude Code,那里都配好了。[详细](docs/harness/claude-code.md)
127
+ 也可以在职路准备好的文件夹里打开 Claude Code(位置在职路的设置页),那里已经设置好了。[详细](docs/harness/claude-code.md)
84
128
  </details>
85
129
 
86
130
  <details><summary>Codex</summary>
@@ -88,7 +132,7 @@ claude mcp add zhiro -- zhiro mcp # Windows:claude mcp add zhiro --
88
132
  ```bash
89
133
  codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- zhiro mcp
90
134
  # Windows:codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- cmd /c zhiro mcp
91
- #(ZHIRO_RESULT_MODE:让 Codex 每个结果只收一份,省约一半 token)
135
+ #(ZHIRO_RESULT_MODE=text 让 Codex 少收一份重复内容,大约省一半用量)
92
136
  ```
93
137
  [详细](docs/harness/codex.md)
94
138
  </details>
@@ -98,18 +142,30 @@ codex mcp add zhiro --env ZHIRO_RESULT_MODE=text -- zhiro mcp
98
142
  [WorkBuddy](docs/harness/workbuddy.md) · [任何 MCP 客户端](docs/harness/others.md)
99
143
  </details>
100
144
 
101
- 然后直接说:「这周有什么截止的」「关注武汉的控制算法岗」「调研一下人形机器人行业」「给第一个岗位填网申」。
145
+ 设置好后直接跟它说,比如:「这周有什么快截止的」「关注武汉的控制算法岗」「调研一下人形机器人行业」「帮我填第一个岗位的网申」。
146
+
147
+ ### 在职路里直接用 AI
148
+
149
+ 不想另开 AI 助手,也可以在职路里直接用。在设置页选好由谁来回答(Claude Code、Codex、DeepSeek,或职路自带的助手),之后点左下角的「助手」就能聊天。
150
+
151
+ 选 Claude Code 或 Codex 时,模型可以直接在下拉框里挑。列表是职路从你电脑上装的 Claude Code、Codex 里读出来的,最新的排在前面;不挑就和你平时在它们里面设的一样。这里的选择只影响职路,不会改动它们自己的设置。
152
+
153
+ 设置页里那行文件夹地址,是给你自己的 AI 助手准备好的:在那里打开 Claude Code 或 Codex,不用再做任何设置。[详细](docs/harness/embedded.md)
154
+
155
+ ![设置页:选 AI 助手和模型](docs/assets/settings.png)
156
+
157
+ 选「内置助手」时,在同一张卡片里选模型服务(DeepSeek、OpenAI、Anthropic 等)并登录或填 API key。
102
158
 
103
- 职路窗口里的聊天面板也可以选由谁来回答(Claude Code、Codex,或可选的内置助手):[docs/harness/embedded.md](docs/harness/embedded.md)。
159
+ ![设置页:内置助手和它用的模型](docs/assets/builtin.png)
104
160
 
105
161
  ## 你的数据
106
162
 
107
- 一个文件夹,在你的电脑上:`%APPDATA%\Zhiro\data`(Windows)、`~/Library/Application Support/Zhiro`(macOS)、`~/.local/share/zhiro`(Linux),或者你选的位置。不上传任何东西;联网的只有你订阅的招聘站、你选的 agent 或模型。
163
+ 都存在你电脑上的一个文件夹里,默认位置是 `%APPDATA%\Zhiro\data`(Windows)、`~/Library/Application Support/Zhiro`(macOS)、`~/.local/share/zhiro`(Linux),也可以第一次启动时自己选。职路只会连接你订阅的招聘网站,以及你选用的 AI 助手。
108
164
 
109
165
  ```bash
110
- zhiro vault verify # 数据完整吗
111
- zhiro vault backup # 随时备份一次(带检查)
112
- zhiro vault rollback # 回到上次升级前
166
+ zhiro vault verify # 检查数据是否完整
167
+ zhiro vault backup # 手动备份一次
168
+ zhiro vault rollback # 恢复到上次升级前
113
169
  ```
114
170
 
115
171
  详细:[docs/data.md](docs/data.md) · 接你自己的表格:[docs/data-sources.md](docs/data-sources.md)
@@ -129,4 +185,4 @@ zhiro vault rollback # 回到上次升级前
129
185
 
130
186
  ## 许可
131
187
 
132
- [MIT](LICENSE)。Moka 读取器包含来自 [career-ops](https://github.com/career-ops-hq/career-ops) 的三个文件(MIT)。
188
+ [MIT](LICENSE)。Moka 读取器包含来自 [career-ops](https://github.com/career-ops-hq/career-ops) 的三个文件(MIT)。企业情况的财报、公告接口参考了 Simon Lin 的 [a-stock-data](https://github.com/simonlin1212/a-stock-data)(Apache-2.0)整理的公开数据源。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: zhiro
3
- description: 用 Zhiro 管校招:找岗位、关注、准备申请、网申填写(到提交前)、申请进展、今日截止、主题调研、接岗位表。当用户提到 岗位 / 校招 / 秋招 / 投递 / 截止 / 申请 / 简历投到哪 / 调研某行业 / zhiro / jobos 时使用。前提是 Zhiro 在跑且 MCP `zhiro` 可用(老配置里可能叫 `jobos`,是同一个)。
3
+ description: 用 Zhiro 管校招:找岗位、关注、准备申请、网申填写(到提交前)、申请进展、今日截止、主题调研、接岗位表。当用户提到 岗位 / 校招 / 秋招 / 投递 / 截止 / 申请 / 简历投到哪 / 调研某行业 / BOSS 直聘 / 实习 / zhiro / jobos 时使用。前提是 Zhiro 在跑且 MCP `zhiro` 可用(老配置里可能叫 `jobos`,是同一个)。
4
4
  ---
5
5
 
6
6
  # Zhiro · 职路
@@ -59,9 +59,15 @@ Zhiro 是本机的校招系统(岗位库、截止、申请、画像、调研
59
59
 
60
60
  交回的报告只是存档,不会改动岗位库。
61
61
 
62
+ ## BOSS 直聘:用户自己浏览,用捕获书签收
63
+
64
+ BOSS 直聘的用户协议不允许程序(爬虫、「拟人程序」)代为读取、复制平台内容。不要替用户在 BOSS 上自动搜索、翻页或读取岗位,也不要用浏览器工具代开 BOSS 页面。用户说「去 BOSS 看看」时,请用户自己在浏览器里看,遇到合适的岗位用 Zhiro 的捕获书签收进库;agent 用 `listing.capture` 送 BOSS 链接会被拒绝。
65
+
62
66
  ## 公司经营状况
63
67
 
64
- `company.intel` 先看卡;`stale` 或没数据再 `company.intelRefresh`;非上市公司用 `research.company`(先问档,联网调研)。
68
+ `company.intel` 先看卡:过期的类会在后台自动更新(`refreshing` 为真时稍后再读);从没生成过(`listing` 为空)才调 `company.intelRefresh`;非上市公司用 `research.company`(先问档,联网调研)。
69
+
70
+ 用户问「这几家哪家更值得去」「帮我排一下」时,先 `employer.compare` `{ "companies": ["汇川技术", "埃斯顿", …] }`(最多 15 家 A 股、新三板、港股、美股公司,不花模型额度;新三板按同一证监会行业的 A 股公司来量,港美股按 peerIndustry 或一起比的 A 股公司所在行业、没有待遇信号;每家的 yardstick 要告诉用户)。它不给总分:每家在本行业同行里的百分位、在三种偏好下的名次和名次范围、谁在四项上都不如谁、同期一起发生的变化。转述时:说「在均衡偏好下第 2 名,通常第 2–3 名」,不要说「综合得分」;「进前三的比例」是偏好情景的比例,不是概率;`movedTogether` 只是同时发生,原因要读年报 / 公告再说;未上市和港美股单独讲,不要硬排进去。用户说更看重哪方面,就把 `weights` 带上重算。
65
71
 
66
72
  ## 接岗位表、运维
67
73
 
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  jobosTool
3
- } from "./chunk-ZL2RKXOF.js";
4
- import "./chunk-UMCKC7XP.js";
5
- import "./chunk-NNH4ZG6F.js";
6
- import "./chunk-LH25QWMP.js";
7
- import "./chunk-YYNUPNBH.js";
8
- import "./chunk-5KCN32HQ.js";
3
+ } from "./chunk-ZUUYRVX6.js";
4
+ import "./chunk-VOUILWMI.js";
5
+ import "./chunk-H3EFVYGD.js";
6
+ import "./chunk-ZKD2BKN3.js";
7
+ import "./chunk-4UWMDKMH.js";
8
+ import "./chunk-4EPNDXRS.js";
9
9
  import "./chunk-4JJEOOW2.js";
10
10
  import {
11
11
  __name