大专捞中捞就得海投,靠着工具重新做牛马

0 阅读5分钟

大专捞中捞就得海投,靠着工具重新做牛马

手动投递两个月之后,我发现问题不在简历怎么写,而在重复点 Boss 这条链路人扛不住。后来做了一套本地桌面端自动化(AI摸鱼求职)。

如果感兴趣欢迎试用,下载地址在结尾

产品概览

技术栈长什么样

先把用到的技术说清楚,对应到分层上:

层级技术干什么
客户端 UIVue 3 + Vite + Vuex配置、开关、统计、日志展示
桌面壳Electron主窗口、子浏览器窗口、进程生命周期
进程通信Electron IPCUI ↔ 主进程 ↔ 自动化引擎
页面操控Chromium DevTools Protocol(CDP)导航、取元素状态、执行页面脚本、听网络
自动化引擎Node.js 远程 bundle(可热更)投递、沟通、同步、调度逻辑
后端Node.js + Koa2 + Sequelize + MySQL账号、职位、沟通记录、授权、Token
管理端Vue(独立后台)账号/授权/版本发布等运营能力
AI 沟通大模型 API(Token 计费)复杂会话回复,规则挡不住的那一层
打包发布electron-vite + electron-builder安装包构建、版本更新

不是「Vue + Electron 拼个壳」那么简单——难点在 Electron 里的子浏览器怎么稳、CDP 怎么用、自动化怎么热更。下面拆开说。

先说架构:壳和自动化为什么要拆开

如果不拆开,常见结局是:招聘站改版一次,你得发一整个安装包;或者业务逻辑跟桌面进程缠死,改一处炸一片。

我们按四层来:

UI(Vue):配置 / 开关 / 统计
   IPC
桌面壳(Electron):窗口 / 远程包加载
  
自动化引擎(Node bundle,可热更):投递 / 沟通 / 调度
   CDP
本地子浏览器(Chromium):用户真实登录态
   HTTP
后端 API(Koa2 + MySQL):账号 / 职位 / 授权 / Token

拆开的收益很直接:

  • 壳用 Electron 稳住,少发版
  • 自动化用远程 bundle,跟着网页改版走热更
  • 登录态留在本机子浏览器,不走代登

难点一:开源自动化框架为什么不好直接套

第一反应通常是:Puppeteer / Playwright 现成的,自己搭 Electron 干嘛?

结论很硬:不是框架差,是 Boss 对自动化环境太敏感。

体感上最直观的一条:子浏览器里按 F12,页面直接关。不是禁用面板,是防调试。外围还有环境指纹、行为识别等,规则还会更新。

市面方案常见翻车:

  • Puppeteer / Playwright:自动化路径太标准化,容易被针对性识别
  • headless:环境和真人桌面浏览器差太远
  • stealth / 改 UA:能缓一阵,规则一更新就成片挂
  • Selenium:自动化特征更「老面孔」

所以业务没有绑死在「标准开箱自动化方案」上,而是桌面壳 + 本地子浏览器自己跑。对抗怎么做,是黑科技,本文不分享。

难点二:页面状态比点击更难

RPA 新人容易高估 click,低估「现在页面到哪一步了」。

列表页、详情页、沟通弹窗是多步链路。任一步没到位就继续点,整批失败,还很难复盘。

页面驱动层要统一几件事:

  • 导航别并发踩乱
  • 重定向中断别当硬失败
  • 登录检测和投递业务用不同等待策略

一句话:不是会不会点,是状态判不判得准。

难点三:投递必须是调度,不能是死循环

while(true) click() 撑不住挂机。我们做成定时 tick:

tick → 检查登录 → 检查权限 → 拉职位 → 过滤 → 投递 → 落库

过滤(薪资、关键词、排除词、同公司冷却)服务端配置、客户端执行。投递和沟通共用同一浏览器实例时必须互斥,否则互相改页面。

职位列表与投递统计

难点四:沟通自动化只要接住第一轮

聊天侧分三层就够:

  1. 感知新消息
  2. 简单意图(要简历、确认)走规则
  3. 复杂对话再走 LLM(耗 Token)

定位:接住 HR 第一轮,不替代面试。简历问句拖太久,机会经常就没了。

难点五:热更和授权必须是两道闸

能力策略
自动化热更有新包静默更新
账号授权过期可登录,自动任务执行前校验
Token开自动沟通前检查余额

热更管「逻辑能不能修好」,授权管「自动任务能不能跑」。合成一道,用户就收不到修复包。

控制台:调度与开关

另外几个工程坑

登录态检测很脆。没有稳定公开 API,只能靠页面状态。未登录时用长超时等元素,刷新像卡死;轮询和手动刷新一叠就更慢。原则:检测路径要短,别堆并发。

招聘站改版是常态。选择器批量失效消不掉,只能靠边界集中 + 热更追。

Windows 打包会锁文件。第二次构建经常删不掉旧产物(测试进程、IDE 索引都可能占着)。构建用独立临时目录,再拷安装包到发布目录,少和旧目录硬抢。

调试链路长。UI → 进程通信 → 主进程 → 子浏览器 → 页面,单点断点不够用,得靠分层日志。

小结

做这类工具,真正难的是:

  1. 本地会话能不能长期稳住
  2. 强反爬站点上,开源自动化为什么不好直接套
  3. 调度和互斥能不能撑住挂机
  4. 壳和引擎拆开后,热更能不能跟上改版
  5. 第三方变动能不能关在边界外

还没做完美的:登录检测仍不稳、自动沟通质量与 Token 成本、多平台扩展。

如果你也在做招聘站自动化,欢迎聊调度、登录态、热更。反爬对抗那块各凭本事,细节就不写了。

项目入口:AI摸鱼求职