深夜提醒

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

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

2024 桐庐半程马拉松
00:00:00
时间
0.00
距离(公里)
--:--
配速
--
步频
--
心率 (bpm)
--
配速
步频
|
share-image
ESC

打个工:基于 Electron + Puppeteer 的求职自动化工具技术解析

打个工

打个工:基于 Electron + Puppeteer 的求职自动化工具技术解析

项目地址: https://dagong.awen.me/
GitHub: https://github.com/monkey-wenjun/dagegong

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

clip_1773981325969_a79a7e.png

clip_1773981338005_1fpmlk.png

项目概述

「打个工」是一款面向打工人的求职助手桌面应用,核心功能包括:

  • 自动开聊:根据求职偏好自动匹配职位并发送打招呼
  • 智能筛选:基于公司名称、职位类型、职位描述自动筛选目标职位
  • 已读不回自动复聊:检测已读不回的聊天并自动跟进
  • AI 智能回复:集成大语言模型生成个性化回复内容
  • 数据管理:职位库、公司库、BOSS 库管理
  • 无头模式 - 登录后自动保存cookies 并在无头模式下进行工作
  • 运行日志 - 可以在无头模式下检查是否正常工作

技术架构

整体架构

项目采用 Monorepo 架构,使用 pnpm workspace 管理多个子包:

dagegong/
├── packages/
│ ├── ui/ # Electron 桌面应用 (Vue 3 + TS)
│ ├── geek-auto-start-chat-with-boss/ # 核心自动聊天逻辑
│ ├── run-core-of-geek-auto-start-chat-with-boss/ # 守护进程
│ ├── sqlite-plugin/ # SQLite 数据库插件
│ ├── pm/ # 进程管理
│ ├── utils/ # 公共工具库
│ ├── dingtalk-plugin/ # 钉钉通知插件
│ └── launch-bosszhipin-login-page-with-preload-extension/ # 登录扩展

核心技术栈

技术 用途
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 本地数据库操作

为了让用户能够便捷登录,项目实现了一个 Chrome 扩展,通过扩展注入脚本获取登录后的 Cookie,这种方式比直接让用户复制 Cookie 更加友好。

4. AI 智能回复集成

项目支持集成大语言模型(LLM)生成个性化回复,根据简历和聊天记录生成上下文,支持多种 LLM 提供商配置。

5. 已读不回检测机制

通过轮询检查聊天状态,检测消息是否已读但未回复,超过设定时间则自动跟进。
clip_1773989540814_3y3c7w.png

技术亮点

1. 反检测机制

  • User-Agent 匿名化
  • WebDriver 特征隐藏
  • 行为模拟:模拟真实用户的鼠标移动、点击间隔

2. 智能限流

BOSS 直聘有每日沟通次数限制,项目实现了智能控制,自动检测沟通次数,用完后智能暂停,次日自动恢复。

3. 进程保活

使用守护进程模式确保核心任务稳定运行,Worker 崩溃后自动重启。

4. 跨平台构建

使用 electron-builder 实现一键打包 Windows、macOS、Linux 三个平台。

总结

「打个工」项目展示了如何使用现代前端技术栈构建实用的桌面应用,为 Electron + Puppeteer 的开发模式提供了很好的实践参考。

相关链接

文章作者:阿文
文章链接: https://www.awen.me/post/77315.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客

评论

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

选择联系方式

留言反馈

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