yangfeng20/ai-job: an AI job application bot for Boss直聘
找工作,用AI工作猎手!让AI帮您找工作!【DeepSeek+ChatGpt】赋能,ai助理作为您的求职者分身7*24小时在线找工作,并结合您的简历信息定制化回复。批量投递,自动发送简历,交换联系方式。hr拒绝挽留。高意向邮件通知,让您不错过每一份工作机会。BOSS直聘
At a glance
- What is it?
- AI 工作猎手 is a userscript plus Spring Boot backend that hooks Boss直聘's Protobuf traffic and lets an LLM answer recruiters and batch-apply on your behalf. It is a self-hosting project with real operational cost, and the README says the author's own server shuts down around 2026-04-13.
- Who is it for?
- Adopt it if you are comfortable running a Spring Boot 3 service with MySQL and an LLM key, and you want an AI agent answering Boss直聘 recruiters while you sleep. Do not adopt it if you expect a hosted service: the README states the author's server shuts down around 2026-04-13, so you are the operator.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 29 days ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What yangfeng20/ai-job actually automates on Boss直聘
The project targets one narrow, repetitive workflow: applying to jobs on Boss直聘 and answering the recruiter messages that follow. It is not a general job board aggregator and it does not search LinkedIn, Indeed or company career pages. Everything in the README is framed around Boss直聘, from the Protobuf hook to the work list page URL where the panel appears.
The README describes two audiences. The first is an individual who deploys the backend for personal use and lets an AI agent apply and reply on their behalf. The second is a commercial operator: the repository ships an Alipay payment integration, so someone can run the backend as a paid service for other job seekers. That second path is unusual for an open source side project and shapes the whole architecture, because it means the backend has to handle multiple users, model quotas and billing rather than being a single-user script.
The feature list is concrete: batch applications with a configurable count per run, custom greeting text, filters by company, position and salary, email notifications for every AI-to-recruiter exchange, and a keyword or turn-count trigger for high-intent job alerts. There is also a rejection-retention feature: when a recruiter declines, the agent can send a resume and a custom retention message. Whether that reads as helpful or as spam depends on the recruiter, and the README does not discuss rate limits or recruiter-side complaints.
The userscript, the Protobuf hook and the Spring Boot 3 backend
The architecture is split in three. A browser userscript built with vite-plugin-monkey injects a Vue 3 and Vite UI into the Boss直聘 page. That UI talks over HTTPS or SSE through an Nginx reverse proxy to a Spring Boot 3 backend. The backend integrates Spring AI for model access (the README names Kimi and GPT in the architecture diagram and DeepSeek and ChatGPT in the product description) and stores state in MySQL, with Alipay for payments.
The interesting layer is the protocol hook. The README states the project uses a self-developed WebSocket Hook to intercept and parse Boss直聘's Protobuf communication in real time. That is why the whole thing only works inside a browser session on the real site: the agent is not calling a public API, it is reading the same traffic your browser reads and writing back through the same channel. The repository also contains a file named AntiAnti-Hook.js, which suggests the authors have had to deal with anti-automation countermeasures on the site side. The README does not explain what that file does.
Two userscript builds ship in the repository root. ai-job-hunting.user.js loads dependencies from a CDN, and the README warns that some networks cannot reach it. ai-job-hunting.bundle.user.js bundles the dependencies, and the README recommends switching to it if the UI fails to appear after repeated page refreshes. That is a small but telling detail: the failure mode of a CDN-blocked script is a blank panel, not an error message.
Installing the userscript and pointing it at a backend
The README gives three installation routes for the script itself. You can find it on greasyfork under the name AI工作猎手, import the local ai-job-hunting.user.js file into Tampermonkey by hand, or open the raw Gitee URL so Tampermonkey offers to install it automatically.
https://gitee.com/yangfeng20/ai-job/raw/master/ai-job-hunting.user.jsThe README notes that recent Tampermonkey versions require browser developer mode to be enabled before the script will run. After installing, the panel does not appear on the Boss直聘 home page; it only appears on the job list page.
https://www.zhipin.com/web/geek/jobFor the backend, the README points to a separate document, 部署指南v1.md, in the repository root, and does not restate the steps here. Once the server is running, you open the script's server configuration panel, enter the API address, and click the test-connection button to bind the UI to your backend. The README shows a screenshot named server_add.png for this step but no config keys, ports or environment variables, so treat the deployment guide as the only source for those values.
If you only want local applying without AI features, the README states that local applying is now supported, which matters because the author's hosted server is going away.
Where yangfeng20/ai-job breaks or is the wrong tool
The most concrete limitation is stated by the author directly: the hosted server shuts down around 2026-04-13, and the README says cloud vendor pricing plus token consumption made it uneconomical to keep renewing. Anyone who installed the script expecting a free hosted backend should read that line before anything else. The alternatives the README offers are switching to a server someone else deployed, or deploying your own carefully.
Second, the AI seat is a paid feature. The README describes buying an AI seat and then enabling the global AI seat toggle in the AI assistant. The batch applying and filtering tools are described separately from the AI seat, but the automated replies, preset-question matching and rejection retention all sit behind it. So the free tier is closer to a bulk-apply tool than to the "24/7 job-seeking分身" the product description advertises.
Third, this is a browser-session automation of a site that has an interest in detecting it. The presence of AntiAnti-Hook.js and the CDN-versus-bundle troubleshooting note both point at fragility. The README's own FAQ says that if the script is not running you should try refreshing the page, and that after updating your resume on Boss you must re-import it. Neither is a bug report, but together they describe a system that needs babysitting.
Finally, the wrong-tool case: if your job search is not on Boss直聘, or if you want to write each application yourself because the cover letter is the point, this project has nothing for you. Batch applying plus automated replies optimizes for volume, and volume is not always the variable that gets you hired.
How it compares with writing your own scraper or using an LLM directly
The obvious alternative is a personal Playwright or Selenium script that logs into Boss直聘, clicks apply, and calls an LLM API to draft replies. The difference in approach is where the automation lives. A Playwright script drives the DOM: it finds buttons, clicks them, and reads rendered text. yangfeng20/ai-job instead hooks the WebSocket layer and parses Protobuf frames, which means it sees the same structured messages the site's own frontend sees, and it can react to a recruiter message without waiting for a DOM update. That is a more stable surface than selectors, but it only works when you are in a real browser session with the script injected, and it is tightly coupled to Boss直聘's wire format.
The second alternative is not building anything: use an LLM chat window to draft replies and apply manually. That keeps you in control of tone and avoids the account risk of automated messaging, at the cost of the hours this project is designed to reclaim. The honest framing is that yangfeng20/ai-job is a bet that reply volume and response speed matter more than per-message quality. If your target roles are competitive and recruiter-facing, that bet may be wrong for you.
Maintenance, upgrade cost and the MIT licence
The repository was last pushed on 2026-08-18, so it is not archived and has seen recent activity, but there are no retrieved releases, which means you should expect to build from the master branch rather than pin a version. The update log in the README shows a single dated entry, 2025.03.13, covering AI greeting text, product trial support and page optimization. That is a thin changelog for a project with a payment system and a protocol hook, and it means upgrade notes are unlikely to tell you what broke.
Operationally, you own a Spring Boot 3 service, MySQL, Nginx and an LLM key. The README's own note about token consumption and server renewal cost is the most useful maintenance data point here: the author found the running cost hard to justify. Budget for model tokens per conversation turn, not per application, because the AI seat replies to every recruiter message in a session.
The licence is MIT, which permits commercial use and modification, and the README explicitly invites commercial operation with the built-in Alipay integration. MIT also means no warranty and no support obligation. If you run this as a paid service, the compliance questions (site terms of service, handling other people's resumes and contact details, payment regulation) sit with you, not with the licence. This is not legal advice; those are questions for a lawyer in your jurisdiction.
Editorial conclusion
Adopt it if you are comfortable running a Spring Boot 3 service with MySQL and an LLM key, and you want an AI agent answering Boss直聘 recruiters while you sleep. Do not adopt it if you expect a hosted service: the README states the author's server shuts down around 2026-04-13, so you are the operator. Before committing, verify that your Boss直聘 session still works with the current userscript build, and confirm the local-apply path covers your use case without the paid AI seat.
Frequently asked questions
What is AI 工作猎手 (yangfeng20/ai-job)?
It is an open source AI job application bot for Boss直聘. A Tampermonkey userscript injects a UI into the site and a Spring Boot 3 backend, built with Spring AI, answers recruiter messages and runs batch applications.
How do I install yangfeng20/ai-job?
Install the userscript from greasyfork under the name AI工作猎手, import ai-job-hunting.user.js into Tampermonkey locally, or open the raw Gitee URL. Enable browser developer mode, then open the job list page, because the panel does not appear on the Boss直聘 home page.
Does yangfeng20/ai-job need my own server?
Yes, unless you use someone else's deployment. The README points to 部署指南v1.md for backend deployment and states the author's own server shuts down around 2026-04-13, with local applying now supported for non-AI use.
Is the AI seat in yangfeng20/ai-job free?
No. The README describes buying an AI seat and then enabling the global AI seat toggle in the AI assistant. Automated replies, preset-question matching and rejection retention are tied to that seat.
Why does the yangfeng20/ai-job panel not show up?
The README gives two causes. You may be on the wrong page, since the panel only appears on the Boss直聘 job list page, or the CDN build may be blocked on your network, in which case switch to ai-job-hunting.bundle.user.js.
What is the licence for yangfeng20/ai-job?
It is MIT licensed, which allows commercial use and modification. The README also describes running it as a paid service using the built-in Alipay payment system.
Community notes