
打个工:基于 Electron + Puppeteer 的求职自动化工具技术解析
项目地址: https://dagong.awen.me/
GitHub: https://github.com/monkey-wenjun/dagegong
在求职市场竞争日益激烈的今天,如何高效地投递简历、与招聘方建立联系成为每个求职者面临的挑战。今天我要介绍的是一个名为「打个工」的开源项目,它是一个基于 Electron + Puppeteer 打造的 BOSS 直聘自动化工具,帮助求职者实现智能匹配、自动开聊、已读不回自动复聊等功能。



项目概述
「打个工」是一款面向打工人的求职助手桌面应用,核心功能包括:
- 自动开聊:根据求职偏好自动匹配职位并发送打招呼
- 智能筛选:基于公司名称、职位类型、职位描述自动筛选目标职位
- 已读不回自动复聊:检测已读不回的聊天并自动跟进
- AI 智能回复:集成大语言模型生成个性化回复内容
- 数据管理:职位库、公司库、BOSS 库管理
- 无头模式 - 登录后自动保存cookies 并在无头模式下进行工作
- 运行日志 - 可以在无头模式下检查是否正常工作
技术架构
整体架构
项目采用 Monorepo 架构,使用 pnpm workspace 管理多个子包:
|
核心技术栈
| 技术 | 用途 |
|---|---|
| Electron | 跨平台桌面应用框架 |
| Vue 3 | 前端 UI 框架,Composition API |
| TypeScript | 类型安全的 JavaScript 超集 |
| Vite | 快速的前端构建工具 |
| electron-vite | Electron 应用构建工具 |
| Element Plus | Vue 3 组件库 |
| UnoCSS | 原子化 CSS 引擎 |
| Pinia | Vue 状态管理 |
| Puppeteer | 无头浏览器自动化 |
| SQLite | 本地数据存储 |
核心实现原理
1. 浏览器自动化 (Puppeteer)
项目最核心的功能是与 BOSS 直聘网站的自动化交互,这通过 Puppeteer 实现。使用 puppeteer-extra-plugin-stealth 插件来隐藏自动化特征,避免被网站的反爬虫机制检测。
2. Monorepo 设计模式
项目将功能拆分为多个独立的 package,每个职责单一:
- UI 层:Electron 主进程 + 渲染进程架构
- 核心逻辑层:封装与 BOSS 直聘的交互逻辑
- 进程管理层:守护进程管理、子进程生命周期控制
- 数据层:SQLite 本地数据库操作
3. Cookie 助手实现
为了让用户能够便捷登录,项目实现了一个 Chrome 扩展,通过扩展注入脚本获取登录后的 Cookie,这种方式比直接让用户复制 Cookie 更加友好。
4. AI 智能回复集成
项目支持集成大语言模型(LLM)生成个性化回复,根据简历和聊天记录生成上下文,支持多种 LLM 提供商配置。
5. 已读不回检测机制
通过轮询检查聊天状态,检测消息是否已读但未回复,超过设定时间则自动跟进。
技术亮点
1. 反检测机制
- User-Agent 匿名化
- WebDriver 特征隐藏
- 行为模拟:模拟真实用户的鼠标移动、点击间隔
2. 智能限流
BOSS 直聘有每日沟通次数限制,项目实现了智能控制,自动检测沟通次数,用完后智能暂停,次日自动恢复。
3. 进程保活
使用守护进程模式确保核心任务稳定运行,Worker 崩溃后自动重启。
4. 跨平台构建
使用 electron-builder 实现一键打包 Windows、macOS、Linux 三个平台。
总结
「打个工」项目展示了如何使用现代前端技术栈构建实用的桌面应用,为 Electron + Puppeteer 的开发模式提供了很好的实践参考。
相关链接:
评论
0 条评论