深夜提醒

现在是深夜,建议您注意休息,不要熬夜哦~

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

share-image
中
ESC

DaGeGong: A Technical Deep Dive into an Electron + Puppeteer Job-Hunting Automation Tool

English 阅读中文版

DaGeGong

DaGeGong: A Technical Deep Dive into an Electron + Puppeteer Job-Hunting Automation Tool

Project site: https://dagong.awen.me/
GitHub: https://github.com/monkey-wenjun/dagegong

In today’s increasingly competitive job market, how to efficiently submit resumes and build connections with recruiters has become a challenge every job seeker faces. Today I want to introduce an open-source project called “DaGeGong“ — a BOSS Zhipin automation tool built on Electron + Puppeteer that helps job seekers with smart matching, automatic chat initiation, and automatic follow-up when a message has been read but not answered.

clip_1773981325969_a79a7e.png

clip_1773981338005_1fpmlk.png

Project Overview

“DaGeGong” is a job-hunting assistant desktop app for the working crowd. Its core features include:

  • Automatic chat initiation: automatically match jobs based on job-seeking preferences and send greetings
  • Smart filtering: automatically filter target jobs based on company name, job type, and job description
  • Automatic follow-up when read but not answered: detect chats that have been read but not replied to and automatically follow up
  • AI smart replies: integrate a large language model to generate personalized reply content
  • Data management: manage the job database, company database, and BOSS database
  • Headless mode — automatically save cookies after login and work in headless mode
  • Run logs — check in headless mode whether things are working correctly

Tech Architecture

Overall Architecture

The project uses a Monorepo architecture, managing multiple sub-packages with pnpm workspace:

dagegong/
├── packages/
│ ├── ui/ # Electron desktop app (Vue 3 + TS)
│ ├── geek-auto-start-chat-with-boss/ # Core auto-chat logic
│ ├── run-core-of-geek-auto-start-chat-with-boss/ # Daemon
│ ├── sqlite-plugin/ # SQLite database plugin
│ ├── pm/ # Process management
│ ├── utils/ # Shared utility library
│ ├── dingtalk-plugin/ # DingTalk notification plugin
│ └── launch-bosszhipin-login-page-with-preload-extension/ # Login extension

Core Tech Stack

Technology Purpose
Electron Cross-platform desktop app framework
Vue 3 Frontend UI framework, Composition API
TypeScript Type-safe superset of JavaScript
Vite Fast frontend build tool
electron-vite Electron app build tool
Element Plus Vue 3 component library
UnoCSS Atomic CSS engine
Pinia Vue state management
Puppeteer Headless browser automation
SQLite Local data storage

Core Implementation Principles

1. Browser Automation (Puppeteer)

The project’s most core feature is automated interaction with the BOSS Zhipin website, achieved via Puppeteer. It uses the puppeteer-extra-plugin-stealth plugin to hide automation fingerprints and avoid detection by the site’s anti-scraping mechanisms.

2. Monorepo Design Pattern

The project splits functionality into multiple independent packages, each with a single responsibility:

  • UI layer: Electron main-process + renderer-process architecture
  • Core logic layer: encapsulates the interaction logic with BOSS Zhipin
  • Process management layer: daemon management, child-process lifecycle control
  • Data layer: SQLite local database operations

To let users log in conveniently, the project implements a Chrome extension that injects a script to capture the Cookie after login. This is friendlier than asking users to copy the Cookie directly.

4. AI Smart Reply Integration

The project supports integrating a large language model (LLM) to generate personalized replies, producing context from the resume and chat history, and supports configuring multiple LLM providers.

5. Read-But-Not-Answered Detection Mechanism

It polls chat status to detect messages that have been read but not replied to, and automatically follows up after a set time.
clip_1773989540814_3y3c7w.png

Technical Highlights

1. Anti-Detection Mechanism

  • User-Agent anonymization
  • WebDriver fingerprint hiding
  • Behavior simulation: simulate real users’ mouse movement and click intervals

2. Smart Rate Limiting

BOSS Zhipin has a daily communication limit. The project implements smart control: it automatically detects the number of communications used, pauses intelligently once exhausted, and automatically resumes the next day.

3. Process Keep-Alive

It uses a daemon-process mode to ensure core tasks run stably, automatically restarting the Worker after a crash.

4. Cross-Platform Builds

It uses electron-builder to package Windows, macOS, and Linux platforms with one command.

Summary

The “DaGeGong” project demonstrates how to build a practical desktop app with a modern frontend tech stack, and offers a good practical reference for the Electron + Puppeteer development model.

Related links:

文章作者:阿文
文章链接: https://www.awen.me/post/17031bd9.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!
本文于 2026-03-20 11:09 发布,已超过半年(210天),请注意甄别内容是否已过期。

评论

0 条评论
😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️✋ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐⛎ ♈♉♊ ♋♌♍ ♎♏♐ ♑♒♓ 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘❌⭕ 🛑⛔📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭❗ ❕❓❔ ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️✅ 🈯💹❇️ ✳️❎🌐 💠Ⓜ️🌀 💤🏧🚾 ♿🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️
加载中...

留言反馈

😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️✋ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐⛎ ♈♉♊ ♋♌♍ ♎♏♐ ♑♒♓ 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘❌⭕ 🛑⛔📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭❗ ❕❓❔ ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️✅ 🈯💹❇️ ✳️❎🌐 💠Ⓜ️🌀 💤🏧🚾 ♿🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️