Skip to main content
Glama
1013503897

boss-cli

by 1013503897

boss-cli

English | 中文

ターミナルまたはAIエージェントから BOSS直聘 (com.hpbr.bosszhipin) の求人を検索できます。端末外で動作し、純粋なPythonのみで、実行にスマートフォンやエミュレータは不要です。アプリのネイティブリクエスト署名(libyzwg.so)をPythonで再現しているため、通常のHTTPリクエストがサーバーに受け入れられます。

$ boss search "安卓逆向" --city 北京,上海,杭州
# 12 jobs for '安卓逆向' (cities=['北京', '上海', '杭州'], page=1)
- [北京] 资深Android逆向与风控对抗专家 | 70-100K·13薪 | PureblueAI
- [上海] 移动安全/逆向工程师 | 30-60K | ...
- [杭州] android逆向开发 | 50-75K | 小算科技
...

研究 / 教育目的のプロジェクトです。自分自身のログイン済みアカウントのトークンで検索します。BOSS直聘の利用規約を遵守する責任はあなたにあります。APIに過剰なリクエストを送らないでください。

特徴

  • 端末外検索 — 実行時にスマートフォン、エミュレータ、unidbgは不要。Python + セッショントークンのみ。

  • 1回の呼び出しで複数都市 — --city 北京,上海,杭州。名称またはコードで指定。

  • キーワードフィルター — --filter 远程 / --filter 兼职 で一致する求人のみを保持(タイトル / ラベル / 会社)。

  • 見やすいまたはJSON出力 — 人間が読めるリスト、またはスクリプト用の --json。

  • MCPサーバー — 検索をツール(boss_search)としてClaude / 任意のMCPクライアントに公開。

Related MCP server: trackly-cli

インストール

pip install -r requirements.txt          # lz4, requests   (mcp only needed for the MCP server)

セッションを取得する(一度だけ)

クライアントは、自分が管理するデバイス上のログイン済みBOSS直聘アプリから3つの情報を必要とします。

フィールド

取得元

t2

t2 リクエストヘッダー — ログイントークン

client_info

client_info クエリパラメータ(JSONブロブ:model / uniqid / did …)

uniqid

client_info 内

任意のHTTPSインターセプタ(Reqable / Charles / mitmproxy。アプリがピン留めしている場合はfrida SSLアンピンスクリプトを使用)でアプリが送信する GET https://api5.zhipin.com/api/batch/requests を1件キャプチャし、それらの値を session.local.json にコピーしてください。

cp session.example.json session.local.json    # then paste your t2 / client_info / uniqid / cardlist_defaults

session.local.json はgitignoreされています(トークンが含まれるため)。t2 は有効期限があります。検索が invalid auth を返し始めたら、同じ方法で新しい t2 を取得してください。

使い方

# 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 深圳

オプション:--city(名前/コード、カンマ区切り)· --filter <text> · --page N · --sort -1 · --limit N · --json · --token <t2>(上書き)· --session <path>。

内蔵の都市名:全国 / 北京 / 上海 / 广州 / 深圳 / 杭州 / 成都 / 南京 / 武汉 / 西安 / 苏州 / 天津 / 长沙 / 重庆 / 郑州 / 厦门(その他の都市は生のコードを渡してください)。

MCPサーバー

BOSS_SESSION=./session.local.json python -m bosscli.mcp_server

MCPクライアント(例:~/.claude.json)に登録してください。ツールは boss_search(query, city?, page?, sort?) です。

仕組み(短く言うと)

BOSS直聘の検索はバッチエンドポイントを経由し、そのパラメータには2つの改ざん防止値 — sp(暗号化されたパラメータブロブ)と sig(署名)— が含まれ、どちらもネイティブライブラリ libyzwg.so によって生成されます。このプロジェクトは、そのライブラリの署名/暗号化を純粋なPython(bosscli/yzwg.py)で再現し、バッチリクエストを組み立て(bosscli/signer.py)、送信して応答を復号します(bosscli/client.py)。正確性は実際のキャプチャに対するバイトレベルのテスト(tests/)で保証されています。要するに、署名を再現できれば、検索は単なるHTTP呼び出しです。

python tests/test_yzwg.py       # native crypto — byte-exact vs real-device captures
python tests/test_signer.py     # request assembly round-trip

構成

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 | 中文

端末またはAIエージェントで BOSS直聘(com.hpbr.bosszhipin) の求人を検索します。純粋なPython、端末外で動作し、実行時にスマートフォン/エミュレータは不要です。Appのネイティブリクエスト署名ライブラリ(libyzwg.so)をPythonで再現しているため、通常のHTTPリクエストをサーバーが受け付けることができます。

$ boss search "安卓逆向" --city 北京,上海,杭州
# 12 jobs for '安卓逆向' (cities=['北京', '上海', '杭州'], page=1)
- [北京] 资深Android逆向与风控对抗专家 | 70-100K·13薪 | PureblueAI
- [杭州] android逆向开发 | 50-75K | 小算科技
...

研究 / 学習用途です。自分自身のログイン済みアカウントのトークンを使って検索します。BOSS直聘の利用規約を自己責任で遵守してください。APIに高頻度でアクセスしないでください。

特徴

  • オフデバイス検索 — 実行時にスマートフォン / エミュレータ / unidbgは不要。Python + セッショントークンのみ。

  • 1つのコマンドで複数都市 — --city 北京,上海,杭州。都市名または都市コードに対応。

  • キーワードフィルター — --filter 远程 / --filter 兼职 で、タイトル/ラベル/会社に一致する求人のみを保持。

  • テキストまたはJSON出力 — 読み取り可能なリスト、またはスクリプト用の --json。

  • MCPサーバー — 検索をツール(boss_search)としてClaude / 任意のMCPクライアントに公開。

インストール

pip install -r requirements.txt          # lz4、requests(MCP 服务另需 mcp 包)

セッションを取得する(一度だけ)

クライアントは、自分自身のログイン済みBOSS直聘デバイスから、次の3つの情報を取得する必要があります。

フィールド

取得元

t2

リクエストヘッダー内の t2 — ログイントークン

client_info

クエリパラメータ client_info(JSONブロブ:model / uniqid / did …)

uniqid

client_info 内

任意のHTTPSキャプチャツール(Reqable / Charles / mitmproxy。Appが証明書ピンニングをしている場合はfrida SSLアンピンスクリプトを設定)でAppが送信した GET https://api5.zhipin.com/api/batch/requests を1件キャプチャし、上記の値を session.local.json に記入します。

cp session.example.json session.local.json    # 再把你的 t2 / client_info / uniqid / cardlist_defaults 粘进去

session.local.json はgitignoreされています(トークンが含まれているため)。t2 は有効期限があります。検索が invalid auth を返し始めたら、上記と同じ方法で新しいものをキャプチャしてください。

使い方

# 按城市名或城市码,单个或多个
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 深圳

パラメータ:--city(都市名/コード、カンマ区切り)· --filter <文本> · --page N · --sort -1 · --limit N · --json · --token <t2>(一時上書き)· --session <路径>。

内蔵の都市名:全国 / 北京 / 上海 / 广州 / 深圳 / 杭州 / 成都 / 南京 / 武汉 / 西安 / 苏州 / 天津 / 长沙 / 重庆 / 郑州 / 厦门(その他の都市は都市コードを直接渡します)。

MCPサーバー

BOSS_SESSION=./session.local.json python -m bosscli.mcp_server

MCPクライアントに登録します(例:~/.claude.json)。ツール名は boss_search(query, city?, page?, sort?) です。

仕組み(一言で言うと)

BOSS直聘の検索はバッチエンドポイントを経由し、パラメータには2つの改ざん防止値 — sp(暗号化されたパラメータ文字列)と sig(署名)— が含まれ、どちらもネイティブライブラリ libyzwg.so によって生成されます。このプロジェクトはこのライブラリの署名/暗号化を純粋なPythonで再現し(bosscli/yzwg.py)、バッチリクエストを組み立て(bosscli/signer.py)、送信して応答を復号します(bosscli/client.py)。正確性は実際のキャプチャに対するバイトレベルのテスト(tests/)で担保されています。核心はこれだけです:署名が再現できれば、検索は単なる通常のHTTPリクエストです。

免責事項

安全研究と学習交流のみを目的としています。BOSS直聘の利用規約や関連法規に違反する用途には使用しないでください。本プロジェクトの使用によって生じる一切の結果は利用者の責任となります。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for job search and application tracking, enabling AI agents to search jobs, get details, manage applications, and find contacts across 128K+ jobs and 1,900+ companies.
    379 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Unified job search MCP server that aggregates live listings from multiple job boards with deduplication, enabling AI agents to find and filter jobs by keyword and location.
    MIT