agent: add adapter for BOSS Zhipin - #2648
Open
alectimison-maker wants to merge 2 commits into
Open
Conversation
|
@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds mirrored BOSS Zhipin adapters with safer job research and communication guidance.
Changes:
- Matches trusted desktop/mobile BOSS Zhipin surfaces.
- Adds salary, city, privacy, verification, and action-boundary guidance.
- Adds adapter security and browser-parity tests.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
src/chrome/src/agent/adapters.js |
Adds the Chrome adapter. |
src/firefox/src/agent/adapters.js |
Mirrors the adapter for Firefox. |
test/run.js |
Tests matching, guidance, and parity. |
Suppressed comments (3)
src/chrome/src/agent/adapters.js:16783
- The completion checklist omits contact exchange even though the PR says every authenticated action must have an observable completion state. Clicking “交换联系方式” can merely send a request, so completion should only be reported after an accepted/exchanged state or the requested details are visible.
- Verify completion from the resulting state: a sent chat must be visible in the message thread, a resume must show a sent/delivered status if one was requested, and an interview invitation must show its explicit status. Opening a card or clicking into a conversation is not proof of application, delivery, or an offer.
src/firefox/src/agent/adapters.js:16781
- The completion checklist omits contact exchange even though the PR says every authenticated action must have an observable completion state. Clicking “交换联系方式” can merely send a request, so completion should only be reported after an accepted/exchanged state or the requested details are visible.
- Verify completion from the resulting state: a sent chat must be visible in the message thread, a resume must show a sent/delivered status if one was requested, and an interview invitation must show its explicit status. Opening a card or clicking into a conversation is not proof of application, delivery, or an offer.
test/run.js:2462
- The completion-state test checks resume and interview outcomes but not the separate contact-exchange action. Add an assertion so a future prompt cannot regress to treating an exchange request click as completed.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - "立即沟通" / "开聊" starts a direct conversation; it is not an application or an offer. Treat starting the chat and sending its first message as an external social action, and require the user's explicit request and reviewed message. | ||
| - Sending or attaching a resume, choosing "交换联系方式", and accepting an 面试邀请 are separate consequential actions that can expose the registered phone number or 微信. Ask for explicit confirmation immediately before each action; permission to find jobs does not authorize any of them. | ||
| - Resume visibility controls are under "通知与隐私设置" and include "对BOSS隐藏简历" and "屏蔽公司". Report these options when relevant, but never change privacy or blocking settings without the user's request. | ||
| - Login may require SMS, QR-code scanning, or the "安全验证" route at /web/passport/zp/verify.html. Pause for the user. A search route can also end at about:blank or show no content after an initial HTTP 200; treat that as an access/anti-automation restriction, not "no jobs", avoid rapid retries, and use a public /zhaopin/... listing or request user verification. |
| - "立即沟通" / "开聊" starts a direct conversation; it is not an application or an offer. Treat starting the chat and sending its first message as an external social action, and require the user's explicit request and reviewed message. | ||
| - Sending or attaching a resume, choosing "交换联系方式", and accepting an 面试邀请 are separate consequential actions that can expose the registered phone number or 微信. Ask for explicit confirmation immediately before each action; permission to find jobs does not authorize any of them. | ||
| - Resume visibility controls are under "通知与隐私设置" and include "对BOSS隐藏简历" and "屏蔽公司". Report these options when relevant, but never change privacy or blocking settings without the user's request. | ||
| - Login may require SMS, QR-code scanning, or the "安全验证" route at /web/passport/zp/verify.html. Pause for the user. A search route can also end at about:blank or show no content after an initial HTTP 200; treat that as an access/anti-automation restriction, not "no jobs", avoid rapid retries, and use a public /zhaopin/... listing or request user verification. |
| assert.match(adapter?.notes || '', /交换联系方式.*面试邀请.*phone number.*微信/s); | ||
| assert.match(adapter?.notes || '', /explicit confirmation/); | ||
| assert.match(adapter?.notes || '', /通知与隐私设置.*对BOSS隐藏简历.*屏蔽公司/s); | ||
| assert.match(adapter?.notes || '', /安全验证.*\/web\/passport\/zp\/verify\.html/s); |
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
Adds a mirrored BOSS Zhipin / BOSS直聘 adapter for Chrome and Firefox.
Without this adapter, the agent can silently search the wrong geolocated city, misread
·15薪as a monthly amount, or treat opening a chat as a completed application.安全验证, and blank-page anti-automation states.Validation
/web/passport/zp/verify.html; the title was安全验证 - BOSS直聘, and the final URL selected theboss-zhipinadapter.node test/run.js: 1404/1405 passed; the single failure predates this branch (package.json26.0.4 versusCHANGELOG.md26.0.0).node test/security/injection-corpus.mjs: 60/60 passed.git diff --check: passed.Compatibility and risks
Prompt-only and mirrored across browser builds. Authenticated chat, resume, contact-exchange, and interview flows could not be exercised anonymously, so the guidance requires explicit confirmation and observable completion state for each action. No login, message, resume, privacy-setting, or application action was performed.