还在手动海投?我做了个 AI 求职助手,自动筛选 BOSS 职位再精准投递

前言

找工作真正让人疲惫的,往往不是认真了解一家公司,也不是准备一次重要面试,而是日复一日地搜索、筛选、复制、粘贴和重复填写。

看到一个职位,要重新读一遍要求;想判断自己合不合适,要来回翻简历和项目经历;决定投递以后,还要修改问候语、确认企业、发送简历。职位一多,人很容易只顾着"投了多少",却忘了"这个岗位到底值不值得投"。

Job Search Assistant 想解决的,就是这些重复但又不能完全省略的工作。

它可以帮你收集职位、整理信息、对照简历、检查规则并准备问候语,但不会越过你直接做决定。系统会在真正投递前停下来,把企业、岗位和准备发送的内容交给你确认。你负责判断方向,它负责处理重复劳动。

我们的目标不是让你投得更多,而是让你把时间留给更值得的职位:少做机械操作,多做真正影响求职结果的选择。

这篇文章写给第一次使用 Job Search Assistant 的人。

你不需要先理解 Docker、接口、任务队列这些技术名词。照着下面的顺序做,就可以完成安装、准备简历、采集职位和第一次安全投递。

先说清楚:Job Search Assistant 不是替你"无脑海投"的工具。它会先收集职位、分析匹配度、生成问候语,然后停下来让你确认。只有你确认企业清单以后,它才会真正操作 BOSS 页面。

它到底能做什么?

简单来说,它把下面这些重复工作串到了一起:

  1. 在 BOSS 直聘里按照关键词和筛选条件找职位;
  2. 把职位信息保存到你的本地数据库;
  3. 用你的简历、项目经历和规则分析职位是否合适;
  4. 为合适的职位准备问候语和简历材料;
  5. 把准备投递的企业列出来,让你最后检查一次;
  6. 你确认后,再由浏览器插件完成沟通和简历发送。

你的个人资料、职位记录和任务记录默认保存在自己的设备上。不同后台账号的数据是分开的,不会拿其他账号的历史职位参与去重。

先确认资料,再进行分析。系统不会把一份未经核对的简历直接用于投递。

开始前要准备什么?

请准备好下面几样东西:

  • 一台安装了 Docker Desktop 的电脑;
  • Google Chrome;
  • 一个能够正常登录的 BOSS 直聘求职者账号;
  • 一份 PDF、DOCX、TXT 或 Markdown 格式的简历;
  • 一个可用的大模型 API Key;
  • 大约 10 分钟的首次配置时间。

如果你只是想先看看界面,也可以暂时不配置模型,但职位分析和自动流程不能完整运行。

普通用户:直接使用发布版

找一个空文件夹,在这个文件夹中打开终端,然后执行:

bash 复制代码
curl -O https://raw.githubusercontent.com/a764506248/Job-Search-Assistant/main/docker-compose.release.yml
docker compose -f docker-compose.release.yml pull
docker compose -f docker-compose.release.yml up -d

启动完成后,在浏览器打开:

http://127.0.0.1:8765

看到登录页面,就说明后台已经启动成功。

开发者:直接运行 main 分支源码

如果你已经克隆了项目源码,可以在项目根目录执行:

bash 复制代码
git switch main
git pull
docker compose up -d --build

同样打开:

http://127.0.0.1:8765

不要把 8765 端口直接开放到公网。这个后台保存了你的求职资料和模型配置,只应该在自己的设备上访问。

第二步:创建后台账号

第一次启动时,系统会让你创建第一个管理员账号。

这个账号只用于登录 Job Search Assistant,不是你的 BOSS 账号。请设置一个自己记得住、别人猜不到的密码。

以后如果还要给其他人使用,由管理员进入"用户管理"创建新账号。每个账号都有自己的:

  • 个人档案;
  • 简历和项目资料;
  • 模型配置;
  • 职位快照;
  • 去重记录;
  • 投递任务和结果。

第三步:安装 Chrome 插件

打开项目的 GitHub 最新发布页面,在页面底部的 Assets 中下载:

job-search-assistant-chrome-mv3.zip

也可以使用插件直接下载地址。

下载后按下面操作:

  1. 解压 ZIP,不要直接双击 ZIP 里的文件;
  2. 在 Chrome 地址栏输入 chrome://extensions;
  3. 打开右上角的"开发者模式";
  4. 点击"加载已解压的扩展程序";
  5. 选择刚刚解压出来的插件文件夹;
  6. 打开 BOSS 直聘并完成登录;
  7. 刷新一次 BOSS 页面。

如果这里卡住,可以看更细的Chrome 插件安装指南。

第四步:把插件和后台连起来

回到 Job Search Assistant,打开"安装向导"。

点击"生成配对码",页面会显示一个 6 位数字。然后回到 BOSS 页面,在右下角的"自动投递控制台"中输入这个配对码。

看到"本地服务已连接"以后,说明配对成功。

需要特别注意两件事:

  1. 配对码属于当前登录的后台账号;
  2. 当前 BOSS 求职者身份必须和"个人档案"中的姓名一致。

不要用自己的后台账号去连接别人的 BOSS 登录页面,否则系统可能使用错误的简历和问候语。升级旧版插件后,也建议重新配对一次。

第五步:填写个人档案

进入"个人档案",至少填写:

  • 姓名;
  • 目标岗位;
  • 目标城市;
  • 搜索关键词;
  • 最低薪资;
  • 默认问候语;
  • 每日目标数量。

搜索关键词不要一开始就写得太多。第一次建议只写一个最明确的岗位,例如:

text 复制代码
AI Agent 工程师

等整个流程跑通以后,再增加其他关键词。

第六步:导入并确认简历

进入"简历库",选择自己的简历文件,然后点击"AI 识别并预览"。

系统识别完成后,不要马上确认,先检查:

  • 姓名有没有识别错;
  • 目标岗位是否正确;
  • 工作经历是否缺失;
  • 项目名称和项目描述是否真实;
  • 技能有没有被模型凭空补出来。

确认没有问题后,再点击"确认并写入知识库"。

这一步很重要。后面的职位分析、问候语和定制材料,都会使用这里确认过的内容。

第七步:配置模型

进入"模型配置",添加你正在使用的模型服务。

通常需要填写:

  • 模型服务商;
  • 模型名称或模型 ID;
  • API 地址;
  • API Key。

保存以后一定要点击"测试连接"。只有显示测试成功,这个模型才算真正配置完成。

如果有多个模型,可以设置主模型和备用模型。主模型调用失败时,系统会尝试备用模型。

API Key 会保存在本地服务的数据文件中,页面不会再次显示完整明文。不要把数据目录上传到 GitHub,也不要发给别人。

第八步:先做一次安全测试

第一次不要直接投 20 个职位。

建议先准备 1 个职位,完成一次安全测试,确认下面这些事情都正常:

  • 插件连接的是正确后台账号;
  • BOSS 页面登录的是本人账号;
  • 系统能读取职位;
  • 简历和模型配置可用;
  • 规则判断结果符合预期;
  • 问候语没有乱写经历;
  • 测试过程没有直接批量发送。

首次成功以后,再考虑配置项目库、匹配规则和更多模板。第一次使用不需要把所有高级功能都研究一遍。

第九步:启动一次自动投递

自动化负责收集和分析,最后的投递决定仍然由你确认。

准备完成后,进入"自动投递"。

1. 先在 BOSS 打开一个职位搜索页

这个标签页必须:

  • 已经登录;
  • 能正常看到职位列表;
  • 安装了并连接好项目插件;
  • 在采集完成前不要关闭。

只打开 Job Search Assistant 后台是不够的。插件需要一个真实的 BOSS 搜索页面才能读取职位。

2. 设置本次任务

第一次建议这样设置:

  • 目标投递数量:1;
  • 候选采集上限:10;
  • 采集间隔:2--5 秒;
  • 搜索关键词:只填一个明确岗位;
  • 其他筛选:先使用最必要的城市、经验和薪资条件。

"目标投递数量"和"候选采集上限"不是一回事。

例如目标投递 1 个,候选上限 10 个,意思是:系统最多读取 10 个新职位,从中找出合适的职位,最后最多投递 1 个。

3. 点击"启动自动流程"

启动后,系统会依次进行:

text 复制代码
扩展采集 → 本地分析 → 确认企业 → 自动投递

前两个阶段不会发送消息。

页面中的"本地去重"表示这个后台账号以前已经保存过的职位数量。系统会在打开职位详情前跳过这些职位,避免重复采集。不同用户之间不会互相去重。

4. 检查企业清单

采集和分析完成后,流程会停在"确认企业"。

请检查每一项:

  • 公司名称;
  • 岗位名称;
  • 薪资和地点;
  • 匹配结果;
  • 准备发送的问候语。

不想投的职位可以取消勾选。

只有点击"确认企业并开始投递"后,系统才会进入真实投递阶段。

简历图片怎么发送?

在 BOSS 页面右下角的插件控制台里,可以选择三种方式:

  • 自动发送:问候语成功后,自动发送简历图片;
  • 发送前确认:先显示预览,由你确认后再发送;
  • 不发送:只发送问候语,不发送图片。

第一次使用建议选择"发送前确认"。确认图片内容、清晰度和目标会话都正确以后,再考虑改成"自动发送"。

同时还要在个人档案中开启"随投递发送简历图片",并在简历库中准备好默认简历图片。只改插件里的选项,不会自动开启后台的图片发送开关。

页面上的状态是什么意思?

自动流程排队中

系统正在等待插件、BOSS 登录检查或后台任务开始。正常情况下只会短暂停留。

如果长时间不动,回到 BOSS 搜索页检查是否已经退出登录,然后刷新 BOSS 页面。

本地分析中

职位已经采集回来,后台正在逐条分析。这时不要重复创建相同任务。

确认企业

系统已经准备好候选清单,但还没有真实投递。请人工检查并勾选。

自动投递

你已经确认了企业清单,执行器正在操作 BOSS 页面。此时可以暂停、继续或停止任务。

已中断 / 失败

打开任务记录查看具体原因。修复问题后,可以重新采集或使用"投递重试"。不要连续快速点击多个重试按钮。

最常见的几个问题

1. 提示"没有找到已登录的 BOSS 页面"

先打开一个 BOSS 职位搜索页,确认页面能看到职位列表,然后刷新页面。不要只停留在聊天页或 Job Search Assistant 后台。

2. 插件显示未连接

回到"安装向导"重新生成配对码,再到 BOSS 页面右下角控制台重新配对。插件升级后也需要重新加载并刷新 BOSS 页面。

3. 后台显示的 BOSS 姓名不对

立即停止任务。检查:

  • Job Search Assistant 登录的是哪个账号;
  • "个人档案"填写的是谁;
  • BOSS 页面右上角登录的是谁。

三处身份必须一致。

4. 采集了很多职位,但通过的很少

这通常不是故障。可以依次检查:

  • 搜索关键词是不是过窄;
  • 最低薪资是不是过高;
  • 匹配规则是不是太严格;
  • 候选采集上限是不是太小;
  • 简历和项目库是否缺少相关经历。

一次只改一个条件,再重新采集,比较容易找到原因。

5. "本地去重"数量很大

这个数字表示当前后台账号已经保存过多少个 BOSS 职位 ID,不代表系统刚刚丢失了这么多职位,也不包含其他账号的数据。

系统默认不会重复采集已经保存的职位。如果你想重新查看历史职位,可以去"职位快照"搜索,不需要再次采集。

6. 页面一直没有变化

依次检查:

  1. BOSS 搜索页是否还开着;
  2. BOSS 是否仍处于登录状态;
  3. 插件控制台是否显示连接成功;
  4. 后台"启动检查"是否全部通过;
  5. Docker 服务是否正常运行。

查看服务状态:

bash 复制代码
docker compose ps

使用发布版 Compose 时:

bash 复制代码
docker compose -f docker-compose.release.yml ps

平时最省事的使用顺序

首次配置完成以后,每天使用时只需要记住下面几步:

  1. 启动 Docker;
  2. 打开并登录 BOSS 职位搜索页;
  3. 确认右下角插件显示已连接;
  4. 打开 http://127.0.0.1:8765;
  5. 进入"自动投递",设置目标和筛选条件;
  6. 启动流程并等待本地分析完成;
  7. 人工检查企业、岗位和问候语;
  8. 确认后再开始投递;
  9. 完成后查看任务记录和投递结果。

更新和停止服务

更新发布版

bash 复制代码
docker compose -f docker-compose.release.yml pull
docker compose -f docker-compose.release.yml up -d

停止服务但保留数据

bash 复制代码
docker compose -f docker-compose.release.yml down

更新 main 分支源码版

bash 复制代码
git switch main
git pull
docker compose up -d --build

正常的容器更新不会删除数据,但不要手动删除项目中的 data 或 deploy-data 目录。

最后提醒

  • 第一次只投 1 个职位;
  • 发送前检查企业、岗位和问候语;
  • 不要把后台端口直接开放到公网;
  • 不要把模型 API Key、数据库或个人简历提交到 Git;
  • 遇到验证码、登录过期或账号身份不一致时,先停止任务并人工处理;
  • 不要为了数量盲目提高采集和投递速度。

工具可以帮你减少重复操作,但最终投给谁、发送什么内容,仍然应该由你决定。

相关推荐
尤水就下1 小时前
🔥预热:在线文档的 block 架构是如何实现的(未完待续...)
前端·javascript·架构
全栈项目管理程序猿1 小时前
ArcGIS JS 基础教程(29):CSVLayer 表格点位图层
前端·javascript
码哥字节1 小时前
Spring Boot 4.1 默认开虚拟线程,连接池为什么反而打满了?
spring boot·后端
大白802 小时前
CSS 盒模型精讲:标准盒模型与 IE 怪异盒模型区别
后端
深蓝AI2 小时前
Python 写 JSON 写到一半崩了?用 os.replace 保住上一版配置(附故障注入)
后端
十年Java程序媛2 小时前
String / StringBuilder / StringBuffer|别再乱用字符串拼接,底层原理一次讲透
java·spring boot·后端
大勇前进2 小时前
CSS 选择器优先级详解,一次搞懂权重计算规则
后端
骑着蜗牛撵大象3272 小时前
豆包 Seed 驱动的记账智能体:从拍票抽取到月报生成的全链路落地记录
java·前端·javascript·结构化输出·豆包seed·多模态识别·记账系统
溪语流沙2 小时前
【Web全栈进阶】前端世界观:现代工具链与框架为什么存在
前端·javascript·vue.js