GeekGeekRun: a Puppeteer and Electron desktop client that automates BOSS Zhipin outreach
牛人快跑 - GeekGeekRun,求职找工作自动化工具,基于 Puppeteer、Electron。界面友好,简单易用!开源,免费!快速海投、自动开聊、已读不回提醒、职位信息抓取、不合适职位标记、僵尸职位清理;让你即刻变身成为一台冇得感情的求职机器🤖,找工作不内耗。宝宝不用动,妈妈全自动~祝你收获好Offer!
At a glance
- What is it?
- GeekGeekRun is an open source Electron and Puppeteer application that batch-opens chats with recruiters on BOSS Zhipin, filters out stale and unsuitable listings, and follows up on messages that were read but never answered. This is what the repository documents, what it does not, and where it stops being the right tool.
- Who is it for?
- Adopt GeekGeekRun if you are actively job hunting on BOSS Zhipin, you can dedicate a separate account and machine to it, and you accept that the disclaimer puts account restriction risk on you. Do not adopt it for other platforms, for unattended bulk outreach, or on a company laptop where gateway monitoring may expose your job search.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 87 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What GeekGeekRun automates, and for whom
The README frames the problem in personal terms: once you have opened chats with many positions on BOSS Zhipin, the platform keeps recommending listings that are long inactive or plainly unrelated to your stated expectations. The author calls these zombie jobs, and notes that activity status is hidden until you open a job detail page, so filtering them by hand is tedious. GeekGeekRun exists to do that filtering and the resulting outreach for you.
The target user is a job seeker on BOSS Zhipin who wants volume without clicking through every card. The README states the tool can open chats with positions in the recommendation list, positions the platform recommends from your job expectations, and positions found through your own search keywords, with the search order set by drag and drop in the UI. It also covers follow-up: a module that finds recruiters who read your message and did not reply, and sends another message. The project describes itself as free and open source, with no paid features, and warns that anyone charging for a copy is likely selling a modified build.
How the matching loop actually decides to send a message
GeekGeekRun is not an API client. The README states the mechanism plainly: it simulates a user on the BOSS Zhipin web page, locating key elements and clicking them. The runtime stack in package.json supports that description, with puppeteer 24.19.0, puppeteer-extra, puppeteer-extra-plugin-stealth and puppeteer-extra-plugin-anonymize-ua as dependencies, plus a workspace package named @geekgeekrun/puppeteer-extra-plugin-laodeng.
The matching sequence documented for auto-chat is: pick a position source and filter conditions, find a target job by company name in the list, click it so the detail panel loads, then match on work location, salary, experience, job title, job type, job description and recruiter activity. A match triggers a click on the chat button. A miss falls through a three-level marking policy. The first level marks the job unsuitable on BOSS Zhipin itself, which the README says removes it from your view for a period and prompts a replacement recommendation; for jobs from the recommendation list or keyword search, this level falls back to the local-database policy. The second level records the job locally and skips it for seven days. The third only skips it for the current run.
Exhaustion is handled by rotation. When no more positions match under the current filter, the tool switches filters; when all filters under a source are exhausted, it switches sources; when every source is exhausted, it waits and returns to the first source and first filter. If the daily chat quota runs out, the README says the program pauses for 60 minutes and then tries again, continuing on the next day if that is when the retry lands. The follow-up module works from the chat list, and two settings govern it: a follow-up deadline that excludes recently active conversations, and a follow-up interval that suppresses re-pinging a recruiter until enough time has passed since the last nudge. The nudge itself is either a fixed [盼回复] emoji or text generated by a configured large language model from your resume and the conversation context.
Installing GeekGeekRun and running a first auto-chat pass
There is no source build to perform. The README directs users to the GitHub releases page and to platform installers: an .exe for Windows, a .deb for Linux, and a .dmg for macOS. The stated system requirements are Windows 10 1507 or later on x86_64, Ubuntu 20.04 with its default desktop environment on x86_64, and macOS Sonoma 14.0 on Apple Silicon or x86_64. Other Linux distributions and desktop environments are listed as untested.
The macOS path needs a manual step because the release is unsigned. After dragging the app into Applications, the README gives these two commands to run in Terminal, otherwise macOS reports the app as damaged:
sudo spctl --master-disable
xattr -cr /Applications/GeekGeekRun.appOn Linux the README says to install the downloaded .deb with dpkg, then launch from the desktop. After first launch the application walks you through configuration, so there is no command to type. You will be asked to log in to BOSS Zhipin through the built-in login assistant, which the README presents as a way to avoid handling cookies, credentials or JSON by hand, and to set your job expectations and filter conditions. The README notes that template presets exist for key configuration areas, including expected companies and job-detail filters for auto-chat, and for the language model settings.
Before enabling auto-chat, configure the language model if you intend to use generated follow-ups. The README describes support for multiple fallback models, so that generated content varies and another model can take over if one is unavailable. There is also a simulation screen for testing whether a configured model works and what kind of follow-up text it produces with your current settings, and a prompt template editor if the default output is not what you want. Only after that does it make sense to start the auto-chat run and watch the first pass against the recommendation list.
The failure modes the README admits to
The most concrete limitation is stated by the author directly: testing is done by one person on one macOS Apple Silicon machine and one Windows machine, and a release is considered ready when the main flows and new logic run on those two devices. The README says it cannot guarantee the program runs correctly on any given machine and asks users to test and file issues. That is an unusually honest release policy, and it also means a Linux user is running a configuration the author does not exercise.
A second failure mode is structural. Because the tool drives the BOSS Zhipin web UI, a site redesign or an A/B experiment can break the scripts. The README names the symptom: the browser repeatedly crashes and restarts at some step. The README also states that the recorded demo video shows the old BOSS Zhipin interface because the site has been redesigned.
A third constraint is account risk. The disclaimer says the program conflicts with clauses in the BOSS Zhipin user agreement, and that if abnormal behaviour is detected by risk controls, consequences can include forced logout, restricted use or a ban, with the user bearing the outcome. It recommends moderation, suggests pausing for several days after the daily chat quota is used up, and suggests registering a dedicated BOSS Zhipin account for the tool. It also warns that corporate network monitoring products from vendors such as QiAnXin, Sangfor and NSFOCUS could expose job-search activity to an employer, and advises against running the program on a company device or network. If you want quiet, low-volume, hand-written applications, this is the wrong tool.
Where GeekGeekRun differs from a browser script or a scraping library
The closest alternative is a plain Puppeteer or Playwright script that logs in, iterates a list of job URLs and clicks the chat button. That approach gives you full control and no GUI, and it is what many people build first. The difference is in what surrounds the click. GeekGeekRun stores state in SQLite through TypeORM, which is what makes the seven-day local skip and the follow-up interval possible; a throwaway script usually forgets every decision the moment it exits. It also ships an Electron interface for login, model configuration, prompt editing and simulation, none of which a raw script provides. The trade-off is the reverse: a small script is easy to read and patch when BOSS Zhipin changes its DOM, while GeekGeekRun asks you to wait for a new release, and the README's warning about A/B experiments means even a recent release can break mid-session.
A second comparison point is the platform's own recommendation feed. BOSS Zhipin already surfaces suggested positions and lets you ignore listings manually. GeekGeekRun does not replace that feed; it consumes it, and its marking policies push the platform to substitute new recommendations. If your search is narrow enough that the recommendation feed rarely contains anything useful, automating chat on top of it just sends more messages to the wrong recruiters.
Licence, maintenance signals and upgrade cost
The repository has no licence file in its top-level entries, and the root package.json declares "license": "ISC". Those two facts do not agree, and the README does not resolve the question. Treat the licensing position as unclear until the maintainer states it: the ISC declaration in package.json is the only licence identifier present, and the absence of a LICENSE file means a redistributor has nothing authoritative to point at. This is not legal advice, and anyone planning to fork, rebrand or ship the code commercially should get their own answer before relying on either signal.
The maintenance picture is active but single-handed. The last push to master was on 2026-07-06, and the most recent release tag is ui-v0.17.4 from 2026-05-02, following ui-v0.17.3 on 2026-04-03 and ui-v0.17.2 on 2026-03-19. The cadence is roughly monthly, which matches the README's account of evening development alongside a day job. The upgrade cost is low by design: installers are published per platform, so upgrading means downloading a newer .exe, .deb or .dmg rather than rebuilding. On macOS the xattr command from the install section has to be repeated after each replacement, since every unsigned build triggers the same Gatekeeper block. The real upgrade cost is not the download; it is that a BOSS Zhipin redesign can invalidate the DOM selectors at any time, and there is no documented rollback path if a new release regresses on your machine.
Editorial conclusion
Adopt GeekGeekRun if you are actively job hunting on BOSS Zhipin, you can dedicate a separate account and machine to it, and you accept that the disclaimer puts account restriction risk on you. Do not adopt it for other platforms, for unattended bulk outreach, or on a company laptop where gateway monitoring may expose your job search. Before your first run, verify three things: that your OS appears in the documented support list, that the release you download comes from the project's own GitHub releases page, and that the daily chat quota and follow-up interval settings match how patient you want the tool to be.
Frequently asked questions
Which operating systems does GeekGeekRun support?
The README lists Windows 10 1507 or later on x86_64, Ubuntu 20.04 with its default desktop environment on x86_64, and macOS Sonoma 14.0 on Apple Silicon or x86_64. Other Linux distributions and desktop environments are stated as untested.
Is GeekGeekRun free to download and use?
The README says the program has no built-in paid features and that downloading and using it are free. It also warns that if you paid for it somewhere other than GitHub, or were told payment is required, you were likely sold a modified build and should not expect a refund from the author.
Why does GeekGeekRun open and close the browser repeatedly?
The README names repeated browser crashes and restarts as the typical symptom of a broken script, which it attributes to BOSS Zhipin redesigns or A/B experiments changing the page. It asks users to report this through the GitHub issue tracker.
Can using GeekGeekRun get my BOSS Zhipin account banned?
The disclaimer states that the program conflicts with parts of the BOSS Zhipin user agreement and that detected abnormal behaviour can lead to forced logout, restricted use or a ban, with the user bearing the consequences. It recommends moderation and using a dedicated account for the tool.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/geekgeekrun-geekgeekrun)