# 牛人快跑 - GeekGeekRun

一款可以帮助你在Boss直聘上**自动批量开聊Boss**的脚本，基于Puppeteer。

与每一位牛人站在一起

- 使命：用科技让复杂的求职过程变简单
- 愿景：天下没有难找的工作，天下牛人都有满意的工作

各行各业，无论你是小白还是大佬，都能通过几步简单的配置，快速开始求职！

## 程序有哪些功能？运行逻辑是什么？怎样使用？

### Boss炸弹
扩列神器！按照你所设置的求职偏好，自动开聊推荐职位列表中的匹配的Boss。

<img width="1024" alt="image" src="https://github.com/user-attachments/assets/ebf5c51c-f52c-4426-a60a-97916f663c6a" />


#### 匹配步骤
1. 按照公司名称查找职位，查找到目标职位后，自动点击这个职位，右侧将会展示职位详情
2. 检查Boss活跃度
    - 如果Boss活跃度为本月活跃或更往前的时间，则会把职位标记为不合适，一段时间内你将不会在Boss上看到这个职位，且将会推荐新职位置换这个职位
3. 对职位名称、职位类型、职位描述进行匹配
    - 如果匹配则自动点击开聊按钮
    - 不匹配则标记这个职位为不合适，一段时间内你将不会在Boss上看到这个职位，且将会推荐新职位置换这个职位

#### 异常情况
- 当前页面筛选条件下，如果没有更多职位，则自动切换备选筛选条件，以获取更多新职位
- 如当天开聊次数用完，本程序会暂停运行60分钟，之后尝试继续重新运行；如重新运行时间已在第二天，则将会继续开聊

#### 运行效果


https://github.com/user-attachments/assets/672f1637-dd54-416c-922e-1ecf09b0874a






### 已读不回提醒器
Boss不明原因已读不回？简历就是投不出去？

已读不回提醒器，有事没事提醒一下已读不回的 Ta，助力把握每次机会

<img width="1024" alt="image" src="https://github.com/user-attachments/assets/51a43b0f-118d-4b0a-957c-40a5367e29e4" />


#### 匹配逻辑
1. 在聊天列表中查找对你消息已读不回的Boss，再发一条消息，多次复聊；同时：
    - 如果设置了“跟进时限”，那么在这个时间之前活跃的聊天将不会被检查
    - 如果设置了“跟进间隔”，且再次检查时发现Boss已读不回，且距离上次提醒时间间隔小于这个时间，那么聊天将暂时不会跟进，直到下次检查时距离上次提醒时间间隔大于这个时间

#### 发送内容
以下二者之一：
1. “[盼回复]”表情
2. 由大语言模型（根据简历及当前聊天上下文）生成的内容

## 辅助功能介绍
### Boss 登录助手
帮你用十分简单的方式，登录到 Boss 直聘，以进行自动开聊、已读不回提醒，避免和乱七八糟的技术名词（类似：Cookie、登录凭证、JSON……）打交道

<img width="1680" alt="image" src="https://github.com/user-attachments/assets/b5d02385-f1c0-4045-b01a-66c5f747fec5" />


### 大语言模型设置
设置本程序运行过程中可能会使用的大模型，有大语言模型加持，让求职更智能。支持配置多个备用模型，确保生成内容更随机，同时确保当某个模型不可用时也能继续让其他模型继续为你服务

<img width="576" alt="image" src="https://github.com/user-attachments/assets/ef91642f-b0b0-438f-8c66-e650f0de139b" />


### 已读不回提醒器提示词模板编辑
对生成的提醒消息不够满意？您不妨可以自己进行编辑提示词，来获得您期望的结果

<img width="1139" alt="image" src="https://github.com/user-attachments/assets/db956573-61c0-44d4-b588-5c04fe941f84" />


### 已读不回提醒器提醒过程模拟
想要测试配置的某一款模型可不可用？想测试使用当前配置生成的内容效果如何？那就来这里试试吧

<img width="600" alt="image" src="https://github.com/user-attachments/assets/3b2776bd-ae5b-48d1-a01c-0819509d96a1" />


### 配置模板选项
初次见面，不会配置本程序？当心配置出现问题？本程序为一些关键的功能配置（例如：Boss炸弹中的期望公司设置、职位详情筛选设置；大语言模型设置）加入了配置模板，让本程序更易用，助你轻松完成配置，开始求职。不妨来试试吧

<img width="576" alt="image" src="https://github.com/user-attachments/assets/2cccfece-17e7-4cc2-bf33-67f0ce500625" />


<img width="1024" alt="image" src="https://github.com/user-attachments/assets/f0c7453d-454e-494a-8c03-246107b1384f" />


## 系统要求
- 操作系统及处理器
    - Windows（x86_64）：最低 Windows 10 1507（如果你的电脑是2016年后出厂、默认安装 Window 10 的电脑，一般都可以使用）
    - Linux（x86_64）：支持包含默认桌面环境的 Ubuntu 20.04；暂未测试其它 Linux 发行版及桌面环境
    - macOS（Apple Silicon、x86_64）：支持 Sonoma 14.0；暂未测试更早前的操作系统

## 安装方式
- Windows
    1. 打开 https://github.com/geekgeekrun/geekgeekrun/releases ，下载最新发行版安装包（文件名后缀`.exe`）
    1. 双击安装包，即可开始安装
    1. 安装完成后，程序将自动启动，并引导你为初次使用进行一些配置

- Linux
    1. 打开 https://github.com/geekgeekrun/geekgeekrun/releases ，下载最新发行版安装包（文件名后缀`.deb`）
    1. 使用 `dpkg` 进行配置
    1. 从桌面启动；启动后，将引导你为初次使用进行一些配置

- macOS
    1. 打开 https://github.com/geekgeekrun/geekgeekrun/releases ，根据处理器架构，下载最新发行版安装包（文件名后缀`.dmg`）
    1. 双击以挂载dmg文件，然后将应用程序图标拽入Application文件夹
    1. 进入Application文件夹；由于发行包无签名，因此不能直接通过双击运行（直接双击将提示`“GeekGeekRun”已损坏，无法打开。 你应该将它移到废纸篓。`），您需要在终端中依次执行如下命令以解决此问题，详情请百度搜索
        ```sh
        sudo spctl --master-disable
        xattr -cr /Applications/GeekGeekRun.app
        ```
    1. 双击应用程序图标以启动程序；启动后，将引导你为初次使用进行一些配置

## 关于软件不能正常启动、不能按预期运行的一些说明（朋友们帮忙测试一下吧）
本程序一直都在不断地更新迭代中，包括新功能的增加以及Bug的修复。

然而作者本人只有 1台 macOS （Apple Silicon）设备、1台 Windows 设备，且只有作者1人自测（白天工作，晚上熬夜开发、测试），测试条件不是太好（人力不足、设备不足），测试时只要确保两台设备能够正常运行本程序主要流程以及新增逻辑时，就会准出、发版。

这将不能确保任何设备一定能够正确运行本程序；因此期望朋友们使用过程中，可以帮忙**参与测试**并通过Issue区**反馈问题**。Issue区任何内容我都会看，问题也会尝试进行修复。

如果部分朋友超级喜欢写代码，或者本身工作就是写代码，可以帮忙下载 [Debugtron](https://github.com/pd4d10/debugtron/releases/tag/v1.0.0-alpha.0) 来调试本程序，查看反馈本程序的日志（如下图）。

![image](https://github.com/user-attachments/assets/4ee9955c-e1c0-4399-9d00-ce89f6657bba)

在此先谢过了~

## 为什么要写这个程序？
### 个人而言
以我为例，我真的求职求累了

2023年初~2025年初，这段时间
- 求职经历：离职求职5个月，在职求职3个月；曾面试66个岗位，各种面试（一面、二面、三面、HR面）加起来134次；Offer 寥寥无几
- 被动失业经历：1 次裁员，1 次卡试用期
- 目前状态：有工作（但愿明天也有工作）

如此多的经历，已经让我成为了一位资深Boss用户

2023年，处于Gap期时，一天差不多可以有8小时浪费在Boss上挑选工作、开聊Boss上，这让我内心经常会很心累，时常陷入内耗，有种被全世界放弃的感觉

当时就有了想法，要让求职自动化。虽然后续也有新工作，但同工不同酬、卡试用期等情况，我还是有一些感受的。由此，便有了这个项目

我把之前的求职经验，通过这个程序表现了出来，假设你也在看机会，或许我的求职经验可以帮到你，让你少走弯路、减少内耗，愿你也能找到一份更好的工作

本程序完全公益、免费、开源。如需使用大模型功能，请自行到你喜欢的平台（例如：DeepSeek、阿里云、火山引擎、OpenAI）开通、充值，并在本程序中配置

### 大环境而言
个人感受，大环境真的差，对于求职者相当不友好

一个岗位可以收到一堆简历投递，大部分简历最终的归宿都是人才库或者垃圾场

当然，如果运气好：
- 好不容易过了 HR 面，到了 Offer 阶段，HR / 用人部门 几乎都在极限压缩用人成本，经常能被恶心到，但你又没有其它更好 Offer ，不敢贸然放弃这个不满意的 Offer
- 终于你自我催眠（类似：“领导看我薪资低，所以一定会争取给我涨薪”、“领导看我薪资低，所以假设我加倍努力工作绩效一定会向我倾斜”、“领导画的饼很好，吃了一定能有好结果”），接了不满意的 Offer 入了职，然而经过一段时间的接触，最终结果完全不符合期望（诸如：“团队很难融入”、“协作方经常踢皮球”、“你需要做很多脏活累活，而且要帮前人擦屁股”、“领导希望用最小成本把你招来，这样裁员时可以最小成本把你打发走”、“团队需要新人来背C/M-/3.25/裁员指标”、“领导分配的工作和领导入职时画的诱人的饼完全不一致”）

为了避免这种情况的发生，找工作时还是需要尽可能多的面试，多个选择。如果真的不慎遭遇了这些情况，让你认为在当前岗位继续做下去的收益不如离职换工作的收益，那就做好走的准备吧

因此，我编写了Boss炸弹，可以帮你尽可能多地将当日开聊机会用完；也编写了已读不回提醒器，帮你戳一戳列表里读了消息但无回应的 Boss

### 求职平台（Boss直聘）而言
根据日常使用经验，Boss直聘在已经开聊很多职位的情况下，经常会推荐：
1. 一些长时间不活跃的“僵尸”职位 - 活跃信息默认隐藏，需要点开职位详情才能看到
2. 牛头不对马嘴，不符合求职期望的职位

人工筛选这些职位会有很大的心智负担，真的会吐……

因此，我在Boss炸弹代码中，加入了清理机制，将通过标记不合适的方式，尝试让这些不活跃职位、不合适职位消失；保证只开聊符合你口味的职位。

## 使用必读及免责声明
如下是使用必读及免责声明，请您务必逐条阅读；本程序首次启动时，您还会再看到一次；若您不接受如下提到的任何内容，请不要使用本程序。
- 本程序从某种程度上说属于辅助工具，与《<a href="https://about.zhipin.com/agreement/?id=registerprotocol_30" rel="noreferer noopener" target="blank">Boss直聘用户协议</a>》（2023年3月版）相关条款相违背，您在注册Boss直聘时已签署过这一条款；根据该条款`七、用户的平台使用义务`、`八、违约责任` 章节，如果一些非正常用户行为被风控监测到，您需要承受包括不仅限于**账号被强制退出登录**、**账号被限制使用**、**账号被封禁**等对您不利的风险；因此使用本程序即意味着**您愿意接受以上风险**，且如果相关风险发生，您需要自行承担相关后果，**本程序概不负责** 。
- 本程序需要存储您的登录凭据，即Cookie，来模拟您在Boss直聘上开聊Boss的行为；本程序仅会把您的Cookie存储在本地，并在您访问Boss直聘时将其传输到Boss直聘，**不会泄露给第三方**，也不会进行除自动开聊Boss以外的行为；**请勿向他人泄漏您的Cookie**。
- 本程序会通过尽可能模仿用户行为来规避相关风险，但并不能保证可以完全规避。建议您使用本程序时**注意节制**，建议当天开聊次数用尽后，隔几天再使用。建议您**注册一个本程序专用的新的Boss直聘账号**进行求职。
- 本程序原理是模拟用户在Boss直聘网页上，寻找关键元素并进行点击操作；Boss直聘网站经常**发生改版**，且有可能**包含A/B实验**，这将导致本程序相关脚本失效（典型表现为本程序运行到某一步骤后，浏览器重复“闪退、重新启动”）。如果您在使用过程中遇上程序未按照预期执行的情况，请[点击这里](https://github.com/geekgeekrun/geekgeekrun/issues/new)进行反馈。
- 您所在公司可能会对您的计算机终端或网络进行**监控**，从而**审计**、**跟踪**您的行为；上级/HRBP团队可能会从 IT 团队处获取到监控数据，从而了解团队成员离职倾向。如果您不希望上级/HRBP团队了解到您正在求职，建议您**不要在您所在公司提供的计算机终端或网络上使用本程序**。
- 本程序尊重您的隐私，**不会参与任何钓鱼活动**、**不会上报能够识别出您身份的信息**、**不会向您所在公司及上级/HRBP报告您的求职行为**、**不会向任何猎头公司泄露您的个人信息**。
- 本程序**没有内置任何付费功能**，**下载**、**使用**是**免费**的，任何人可以**免费获得**、**免费使用**。**作者没有利用本程序赚到过任何收入**。如果您是从GitHub以外的地方付费后“购买”的本程序，或您被提示“必须付费后才能使用本程序”，那**您大概率被骗了**，或者**您下载到了本程序修改版**。**本程序对此概不负责，请勿找作者商讨退款、售后事宜，相关事宜请咨询卖方**。
- 本程序**不对您的求职过程与结果负责**，为您开聊的职位均在Boss直聘上发布，职位信息真实性由Boss直聘负责；请**自行甄别为您开聊的公司**、**认真决定是否参加面试**、**慎重选择Offer**。
- 请在Boss直聘上自行**屏蔽您不期望投递的公司**；如果您不希望您当前公司其它具有招聘账号的员工看到您在Boss直聘上活跃，请**在Boss直聘上屏蔽当前公司及与之关联的公司**。
- 本程序经历过了多次测试，理论上来说大部分情况下可以正常运行，但可能也会出现测试用例覆盖不到位，导致程序不按预期运行的情况；如果您有顾虑，建议通过VMware Workstation/Fusion、Oracle VirtualBox、Microsoft Hyper-V等虚拟化技术运行本程序。如果您在使用过程中遇上程序未按照预期执行的情况，请[点击这里](https://github.com/geekgeekrun/geekgeekrun/issues/new)进行反馈。

--------

以上

更多功能还在开发中~

祝你求职成功，事业顺利，事事顺心

## Star

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=geekgeekrun/geekgeekrun&type=Date&theme=dark" />
  <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=geekgeekrun/geekgeekrun&type=Date" />
  <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=geekgeekrun/geekgeekrun&type=Date" />
</picture>

感谢支持
