feat: geek-side chat — messages, reply, exchange accept/reject#25
Open
DuanXiaoWen wants to merge 1 commit into
Open
feat: geek-side chat — messages, reply, exchange accept/reject#25DuanXiaoWen wants to merge 1 commit into
DuanXiaoWen wants to merge 1 commit into
Conversation
New commands for job seekers (geek mode): - boss messages [-n N] — list all conversations with last message - boss unread [-n N] — show conversations awaiting your reply - boss reply <id> "text" — send a message via MQTT/Protobuf - boss chat-history <id> — view bilateral chat history - boss send-resume <id> — send attachment resume - boss request-phone <id> — request phone number exchange - boss request-wechat <id> — request WeChat exchange - boss accept <id> — accept incoming exchange request (auto-detects type) - boss accept <id> --reject — reject incoming exchange request Technical highlights: - Reverse-engineered BOSS 直聘 MQTT over WSS chat protocol - Hand-written Protobuf encoder for TechwolfChatProtocol messages - MQTT auth: page_token (from getUserInfo) + wt2 (from /get/wt) + Cookie header - Exchange accept key param is `mid` (not `msgId`) — found after exhaustive search - New API endpoints: geekFilterByLabel, userLastMsg, getBossData, exchange/request Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
boss messages— list all conversations with last message per bossboss unread— show bosses who messaged you but you haven't repliedboss reply <friendId> "text"— send a message (MQTT over WSS + Protobuf)boss chat-history <friendId>— view bilateral chat historyboss send-resume <friendId>— send attachment resume to a bossboss request-phone <friendId>— request phone number exchangeboss request-wechat <friendId>— request WeChat exchangeboss accept <friendId>— accept incoming exchange request (auto-detects phone/wechat/resume)boss accept <friendId> --reject— reject incoming exchange requestTechnical
BOSS 直聘 uses MQTT over WSS for real-time messaging (not HTTP):
wss://ws6.zhipin.com:443/chatwsuserName = page_token|0,password = wt2(from/wapi/zppassport/get/wt), Cookie header required for WS 101 upgradeTechwolfChatProtocolExchange accept key discovery: the
acceptItemContact/acceptItemWeiXinRequestAPIs requiremid(notmsgId) — found after exhaustive parameter search across dozens of candidates.New API endpoints used:
POST /wapi/zprelation/friend/geekFilterByLabel— friend listGET /wapi/zpchat/geek/userLastMsg— last message per friendGET /wapi/zpchat/geek/getBossData— boss chat context + securityIdPOST /wapi/zpchat/exchange/request— initiate exchangePOST /wapi/zpchat/geek/acceptItemContact— accept phone/resume requestPOST /wapi/zpchat/geek/acceptItemWeiXinRequest— accept WeChat requestPOST /wapi/zpchat/geek/rejectItemContact— reject requestTest plan
python3.11 -m pytest tests/test_cli.py -q)--helpcoverageboss messages,boss unread,boss reply,boss accept,boss send-resume🤖 Generated with Claude Code