Skip to main content
Glama
1013503897

boss-cli

by 1013503897

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 --json fü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

t2

der t2 Request-Header – dein Login-Token

client_info

der client_info-Query-Parameter (ein JSON-Blob: Modell / uniqid / did …)

uniqid

innerhalb von client_info

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_defaults

session.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_server

Registriere 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-trip

Aufbau

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 --json fü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

t2

der t2 im Request-Header – dein Login-Token

client_info

der Query-Parameter client_info (ein JSON-Blob: Modell / uniqid / did …)

uniqid

innerhalb von client_info

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_server

Registriere 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.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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