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 + 세션 토큰만 있으면 됩니다.

  • 한 번의 호출로 여러 도시 — --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)

세션 가져오기 (1회)

클라이언트는 사용자가 제어하는 기기의 로그인된 BOSS直聘 앱에서 세 가지가 필요합니다:

필드

출처

t2

t2 요청 헤더 — 로그인 토큰

client_info

client_info 쿼리 매개변수 (JSON blob: model / uniqid / did …)

uniqid

client_info 안에 있음

앱에서 GET https://api5.zhipin.com/api/batch/requests 요청 하나를 아무 HTTPS 인터셉터(Reqable / Charles / mitmproxy; 앱이 인증서 고정을 사용한다면 frida SSL-unpin 스크립트 사용)로 캡처한 다음, 해당 값들을 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直聘의 검색은 배치 엔드포인트를 거치며, 매개변수에는 두 가지 위변조 방지 값 — sp(암호화된 매개변수 blob)와 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, 기기 외부에서 실행되며 실행 시 휴대폰/에뮬레이터가 필요 없습니다. 앱의 네이티브 요청 서명 라이브러리(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 + 세션 토큰만 있으면 됩니다.

  • 한 명령으로 여러 도시 — --city 北京,上海,杭州, 도시 이름 또는 도시 코드를 지원합니다.

  • 키워드 필터링 — --filter 远程 / --filter 兼职, 제목/라벨/회사가 일치하는 공고만 유지합니다.

  • 텍스트 또는 JSON 출력 — 읽을 수 있는 목록 또는 스크립트용 --json.

  • MCP 서비스 — 검색을 도구(boss_search)로 노출하여 Claude / 모든 MCP 클라이언트에 제공합니다.

설치

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

세션 가져오기 (1회)

클라이언트는 사용자가 소유한 로그인된 BOSS直聘 기기에서 세 가지를 얻어야 합니다:

필드

출처

t2

요청 헤더의 t2 — 로그인 토큰

client_info

query 매개변수 client_info (JSON 블록: 기기 모델 / uniqid / did …)

uniqid

client_info 안에 있음

아무 HTTPS 패킷 캡처 도구(Reqable / Charles / mitmproxy; 앱이 인증서 고정을 사용한다면 frida SSL unpin 스크립트를 설정)로 앱이 보낸 GET https://api5.zhipin.com/api/batch/requests 요청 하나를 캡처하고 위 값들을 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直聘의 검색은 배치 엔드포인트를 사용하며, 매개변수에는 두 가지 위변조 방지 값 — 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