boss-cli
boss-cli
English | 中文
Durchsuche BOSS直聘 (com.hpbr.bosszhipin)-Stellenangebote von deinem Terminal oder von einem KI-Agenten aus – geräteunabhängig,
reines Python, kein Telefon/Emulator nötig. Es reproduziert die native Anfragesignatur der App
(libyzwg.so) in Python, sodass eine einfache HTTP-Anfrage vom Server akzeptiert wird.
$ boss search "安卓逆向" --city 北京,上海,杭州
# 12 jobs for '安卓逆向' (cities=['北京', '上海', '杭州'], page=1)
- [北京] 资深Android逆向与风控对抗专家 | 70-100K·13薪 | PureblueAI
- [上海] 移动安全/逆向工程师 | 30-60K | ...
- [杭州] android逆向开发 | 50-75K | 小算科技
...Forschungs-/Bildungsprojekt. Es sucht mit dem Token deines eigenen angemeldeten Kontos; du bist dafür verantwortlich, die Nutzungsbedingungen von BOSS直聘 einzuhalten. Überlaste die API nicht.
Funktionen
Geräteunabhängige Suche – keine Telefon-, Emulator- oder unidbg-Laufzeit; nur Python + dein Session-Token.
Mehrere Städte in einem Aufruf –
--city 北京,上海,杭州, nach Name oder Code.Suchwortfilter –
--filter 远程/--filter 兼职behält nur passende Jobs (Titel / Labels / Firma).Saubere oder JSON-Ausgabe – menschenlesbare Liste oder
--jsonfür Skripte.MCP-Server – Suche als Tool (
boss_search) für Claude / jeden MCP-Client bereitstellen.
Installation
pip install -r requirements.txt # lz4, requests (mcp only needed for the MCP server)Session abrufen (einmalig)
Der Client benötigt drei Dinge von einer angemeldeten BOSS直聘-App auf einem Gerät, das du kontrollierst:
Feld | Herkunft |
| der |
| der |
| innerhalb von |
Fange eine GET https://api5.zhipin.com/api/batch/requests-Anfrage der App mit einem beliebigen HTTPS-Interceptor ab (Reqable / Charles / mitmproxy; verwende ein Frida-SSL-Unpin-Skript, falls die App Zertifikat-Pinning nutzt), und kopiere diese Werte dann in session.local.json:
cp session.example.json session.local.json # then paste your t2 / client_info / uniqid / cardlist_defaultssession.local.json ist per .gitignore ausgenommen (es enthält deinen Token). t2 läuft ab – wenn Suchen invalid auth zurückgeben, hol dir auf dieselbe Weise ein neues t2.
Verwendung
# by city name or code, one or several
boss search "Python" # default city from your session
boss search "数据分析" --city 上海
boss search "安卓逆向" --city 北京,上海,杭州 # multi-city, results tagged [city]
# filter / paginate / cap
boss search "逆向" --city 北京,上海 --filter 远程 # only jobs mentioning 远程 (remote)
boss search "Golang" --page 2 --limit 20
boss search "算法" --json # parsed jobs as JSON
# run without installing (module form)
python -m bosscli.cli search "AIGC" --city 深圳Optionen: --city (Name/Code, kommagetrennt) · --filter <text> · --page N · --sort -1 ·
--limit N · --json · --token <t2> (Überschreibung) · --session <path>.
Eingebaute Städtenamen: 全国 / 北京 / 上海 / 广州 / 深圳 / 杭州 / 成都 / 南京 / 武汉 / 西安 / 苏州 / 天津 / 长沙 / 重庆 / 郑州 / 厦门 (andere: gib den rohen Code an).
MCP-Server
BOSS_SESSION=./session.local.json python -m bosscli.mcp_serverRegistriere ihn in deinem MCP-Client (z. B. ~/.claude.json); das Tool ist
boss_search(query, city?, page?, sort?).
So funktioniert es (Kurzfassung)
Die Suche von BOSS直聘 läuft über einen Batch-Endpunkt, dessen Parameter zwei Manipulationsschutz-Werte tragen – sp
(ein verschlüsselter Parameter-Blob) und sig (eine Signatur) – beide werden von der nativen Bibliothek
libyzwg.so erzeugt. Dieses Projekt reproduziert das Signieren/Verschlüsseln dieser Bibliothek in reinem Python
(bosscli/yzwg.py), baut die Batch-Anfrage zusammen (bosscli/signer.py), sendet sie und entschlüsselt die
Antwort (bosscli/client.py). Die Korrektheit wird durch bytegenaue Tests gegen reale Aufzeichnungen abgesichert
(tests/). Das ist der ganze Trick: Ist die Signatur erst einmal reproduziert, ist die Suche nur ein HTTP-Aufruf.
python tests/test_yzwg.py # native crypto — byte-exact vs real-device captures
python tests/test_signer.py # request assembly round-tripAufbau
bosscli/yzwg.py signing / encryption primitives (pure Python)
bosscli/signer.py batch-request assembly
bosscli/client.py search: build → send → decrypt → parse
bosscli/cli.py the `boss search ...` CLI
bosscli/mcp_server.py MCP wrapper (tool: boss_search)
tests/ byte-exact regression tests + fixtures
session.example.json template for your session中文
English | 中文
Durchsuche BOSS直聘(com.hpbr.bosszhipin)-Stellenangebote im Terminal oder über einen KI-Agenten – reines Python, geräteunabhängig, ohne dass ein Telefon/Emulator benötigt wird.
Es reproduziert die native Anforderungssignatur-Bibliothek der App (libyzwg.so) in Python, sodass eine normale HTTP-Anfrage vom Server akzeptiert wird.
$ boss search "安卓逆向" --city 北京,上海,杭州
# 12 jobs for '安卓逆向' (cities=['北京', '上海', '杭州'], page=1)
- [北京] 资深Android逆向与风控对抗专家 | 70-100K·13薪 | PureblueAI
- [杭州] android逆向开发 | 50-75K | 小算科技
...Forschungs-/Lernzweck. Es sucht mit dem Token deines eigenen angemeldeten Kontos; bitte beachte die Nutzungsbedingungen von BOSS直聘 und überlaste die API nicht.
Funktionen
Geräteunabhängige Suche – keine Telefon-/Emulator-/unidbg-Laufzeit, nur Python + dein Session-Token.
Mehrere Städte mit einem Befehl –
--city 北京,上海,杭州, unterstützt Städtenamen oder Stadtcodes.Suchwortfilter –
--filter 远程/--filter 兼职, behält nur passende Jobs (Titel/Labels/Firma).Text- oder JSON-Ausgabe – lesbare Liste oder
--jsonfür Skripte.MCP-Dienst – stellt die Suche als Tool (
boss_search) für Claude / jeden MCP-Client bereit.
Installation
pip install -r requirements.txt # lz4、requests(MCP 服务另需 mcp 包)Session abrufen (einmalig)
Der Client benötigt drei Dinge von einem dir gehörenden, angemeldeten BOSS直聘-Gerät:
Feld | Herkunft |
| der |
| der Query-Parameter |
| innerhalb von |
Fange mit einem beliebigen HTTPS-Abfangtool (Reqable / Charles / mitmproxy; falls die App Zertifikat-Pinning verwendet, richte ein Frida-SSL-Unpin-Skript ein)
eine von der App gesendete GET https://api5.zhipin.com/api/batch/requests-Anfrage ab und trage die obigen Werte in session.local.json ein:
cp session.example.json session.local.json # 再把你的 t2 / client_info / uniqid / cardlist_defaults 粘进去session.local.json ist per .gitignore ausgenommen (es enthält deinen Token). t2 läuft ab – sobald Suchen invalid auth zurückgeben, schnapp dir einfach auf dieselbe Weise ein neues.
Verwendung
# 按城市名或城市码,单个或多个
boss search "Python" # 用 session 里的默认城市
boss search "数据分析" --city 上海
boss search "安卓逆向" --city 北京,上海,杭州 # 多城市,结果带 [城市] 标签
# 筛选 / 翻页 / 限量
boss search "逆向" --city 北京,上海 --filter 远程 # 只看提到“远程”的岗
boss search "Golang" --page 2 --limit 20
boss search "算法" --json # 解析后的职位 JSON
# 不安装、直接模块方式跑
python -m bosscli.cli search "AIGC" --city 深圳Parameter: --city (Städtename/-code, kommagetrennt) · --filter <文本> · --page N · --sort -1 ·
--limit N · --json · --token <t2> (temporäre Überschreibung) · --session <路径>.
Eingebaute Städtenamen: 全国 / 北京 / 上海 / 广州 / 深圳 / 杭州 / 成都 / 南京 / 武汉 / 西安 / 苏州 / 天津 / 长沙 / 重庆 / 郑州 / 厦门 (andere Städte: übergib einfach den Stadtcode).
MCP-Dienst
BOSS_SESSION=./session.local.json python -m bosscli.mcp_serverRegistriere ihn in deinem MCP-Client (z. B. ~/.claude.json); der Toolname ist boss_search(query, city?, page?, sort?).
So funktioniert es (Kurzfassung)
Die Suche von BOSS直聘 läuft über einen Batch-Endpunkt, dessen Parameter zwei Manipulationsschutz-Werte enthalten – sp (verschlüsselter Parameter-String) und sig (Signatur) –, die beide von der nativen Bibliothek
libyzwg.so erzeugt werden. Dieses Projekt reproduziert das Signieren/Verschlüsseln dieser Bibliothek in reinem Python (bosscli/yzwg.py), baut die Batch-Anfrage zusammen
(bosscli/signer.py), sendet sie und entschlüsselt die Antwort (bosscli/client.py). Die Korrektheit wird durch bytegenaue Tests gegen echte Aufzeichnungen abgesichert
(tests/). Das ist der Kern: Ist die Signatur erst einmal reproduziert, ist die Suche nur eine normale HTTP-Anfrage.
Haftungsausschluss
Nur für Sicherheitsforschung und Lernzwecke. Nicht für Nutzungen verwenden, die gegen die Nutzungsbedingungen von BOSS直聘 oder geltende Gesetze verstoßen; sämtliche Folgen aus der Nutzung dieses Projekts trägt der Verwender selbst.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
GetJobzi MCP server for job search, application tracking, and career forecasting.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/1013503897/boss-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server