🎉 Get Jobs v2.0.1 升级说明 - 更简单、更可靠、更强大的解决方案
一键启动,配置更灵活,部署更简单!
大家好!经过几天的优化和重构,Get Jobs 迎来了一次重要更新。这次升级的核心理念是:让使用更简单,让部署更可靠。如果你需要该工具,私信我吧~~
该升级是基于github.com/loks666/get…~~
📋 目录
🤔 为什么要升级?
旧版本的痛点
不知道你在使用旧版的过程中是不是也遇到了相同的问题。
- JAR 启动报错:无法使用jar启动,必须使用源码启动,需要了解的内容较多,以及安装jdk21
java -jar target\get_jobs-v2.0.1.jar
target\get_jobs-v2.0.1.jar中没有主清单属性
- 配置文件难找:不知道配置文件到底该放哪里,配置文件复杂
- 源码默认不启动任务投递简历的服务:增加配置目标投递简历的网站,选择性的投递,不需要修改源码
mvn exec:java
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< com.superxiang:get_jobs >-----------------------
[INFO] Building get_jobs v2.0.1
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- exec:3.0.0:java (default-cli) @ get_jobs ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.376 s
[INFO] Finished at: 2025-10-21T11:05:07+08:00
[INFO] ------------------------------------------------------------------------
2025-10-21 11:05:07.585 [Thread-1] INFO StartAll - 正在关闭线程池...
- 日志不够清晰:出问题了不知道从哪排查
- 代码复杂:文件加载逻辑复杂,维护困难
新版本的改进
✅ 智能文件加载 - 自动找到 JAR 同级目录的配置文件, 配置文件可以放在JAR同级目录,集中管理,方便维护
✅ 优先级清晰 - 启动参数 > JAR同级 > JAR内部
✅ 日志完善 - 每一步都有清晰的日志输出
✅ 解决源码中的bug - 解决源码中的bug,确保程序的正确运行
✅ 代码优化 - 代码优化,提高代码的可读性和可维护性
✅ AI配置检测 - AI配置检测,确保AI配置的正确性
✅ Boss过滤规则在外部维护 - Boss过滤规则在外部维护,方便维护,添加了日志,方便修改
效果截图如下:
启动的截图:
浏览器截图如下:
🚀 核心升级内容
1. 智能配置文件加载
现在的解决方案:
# 无论你在哪里运行
D:\work> java -jar D:\app\get_jobs.jar
# 程序自动去 JAR 所在目录找配置
✅ 找到了 D:\app\config.yaml
✅ 找到了 D:\app\.env
✅ 找到了 D:\app\boss\data.json
原理说明(技术细节):
程序会智能检测 JAR 文件的实际位置,而不是看你在哪个目录执行命令。这样无论你从哪里启动,都能正确加载配置文件。
2. 三级配置优先级
新版本支持三种方式指定配置文件,按优先级从高到低:
🥇 优先级1:启动参数(最灵活)
java -Dconfig.yaml=/custom/path/config.yaml \
-D.env=/custom/path/.env \
-Ddata.json=/custom/path/data.json \
-jar get_jobs-v2.0.1.jar
适用场景:
- 多环境部署(开发/测试/生产)
- Docker 容器化部署
- 集中式配置管理
🥈 优先级2:JAR 同级目录(最常用)
/opt/get_jobs/
├── get_jobs-v2.0.1.jar
├── config.yaml ← 自动加载
├── .env ← 自动加载
└── boss/
└── data.json ← 自动加载
适用场景:
- 本地运行
- 服务器部署
- 配置需要经常修改
🥉 优先级3:JAR 内部(默认配置)
程序内置的默认配置,打包时自动包含在 JAR 里。
适用场景:
- 首次使用
- 快速测试
- 默认配置足够用
3. 统一平台管理
以前的问题:
想用哪个平台要去改代码,注释这个、取消注释那个,很麻烦。
现在的解决方案:
只需在 config.yaml 顶部配置:
# 启用的平台列表(想用哪个就写哪个)
enabled:
- boss # Boss 直聘
- liepin # 猎聘网
# - lagou # 不用拉勾就注释掉
# - job51 # 不用51job也注释掉
# 下面是各平台的详细配置...
boss:
keywords:
- Java开发
# ...
好处:
- 不用改代码
- 一目了然
- 想启用哪个平台随时切换
4. AI 服务健康检查
智能检测 AI 是否可用:
[INFO] 正在检查 AI 服务连接...
[INFO] ✓ AI 服务连接正常,模型: gpt-4o-mini
如果 AI 不可用会怎么样?
[WARN] ✗ AI 服务响应异常,将跳过 AI 功能
[INFO] 使用默认打招呼语继续投递
不用担心!程序会自动降级:
- AI 可用 → 使用智能打招呼语
- AI 不可用 → 使用你配置的默认打招呼语
- 投递功能不受影响!
5. 更清晰的日志
每一步都有详细的日志输出:
[INFO] 检测到JAR目录: D:\app\get_jobs
[INFO] 从JAR同级目录加载: D:\app\get_jobs\config.yaml
[INFO] 从JAR同级目录加载: D:\app\get_jobs\.env
[INFO] 正在检查 AI 服务连接...
[INFO] ✓ AI 服务连接正常,模型: gpt-4o-mini
[INFO] 启用的平台: boss, liepin
[INFO] 已提交 boss 任务
[INFO] 已提交 liepin 任务
出问题也能快速定位:
[DEBUG] JAR同级目录文件不存在: D:\app\config.yaml
[INFO] 从 classpath 加载资源: config.yaml
[INFO] 读取 data.json 数据成功!
🎯 一键启动指南
JAR 包部署(推荐生产)
1. 环境准备
确保已安装:
1. 安装jdk21 双击 jdk-21_windows-x64_bin.msi,点击下一步开始安装
2. 安装nodejs 双击 node-v22.21.0-x64.msi,点击下一步开始安装
3. 运行 run.bat,完成!你现在就可以开始登陆后自动投递简历了~~
目录结构应该是这样:
/opt/get_jobs/
├── get_jobs-v2.0.1.jar
├── jdk-21_windows-x64_bin.msi
├── node-v22.21.0-x64.msi
├── config.yaml # 投递简历配置
├── .env # 在线模型配置
├── run.bat # 启动脚本
└── boss/
└── data.json # Boss过滤规则
方式三:自定义配置路径(高级)
适用场景:
- 多环境部署
- 配置文件集中管理
- Docker 容器化
示例:
java -Dconfig.yaml=/etc/get_jobs/config.yaml \
-D.env=/etc/get_jobs/.env \
-Ddata.json=/etc/get_jobs/boss/data.json \
-jar /opt/app/get_jobs-v2.0.1.jar
⚙️ 配置说明
必需环境变量(.env)
创建 .env 文件(从 .env_template 复制):
# AI 服务配置(可选,不配置则不使用 AI)
BASE_URL=https://api.ruyun.fun
API_KEY=sk-your-api-key-here
MODEL=gpt-4o-mini
# 企业微信推送(可选,不配置则不推送)
HOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx
# Bark 推送(可选,iOS 用户)
BARK_URL=https://api.day.app/your_key_here
说明:
BASE_URL- AI 服务地址(支持 OpenAI 兼容接口)API_KEY- AI 服务密钥(以sk-开头)MODEL- AI 模型名称(推荐gpt-4o-mini)HOOK_URL- 企业微信机器人 Webhook 地址BARK_URL- Bark 推送服务地址(iOS)
主配置文件(config.yaml)
1. 平台启用配置
# 启用的平台(最重要的配置)
enabled:
- boss # Boss 直聘
- liepin # 猎聘网
# 不用的平台就注释掉或删除
2. Boss 直聘配置
boss:
# 搜索关键词(必填)
keywords:
- Java开发工程师
- Python开发
- 后端开发
# 城市列表(必填)
cityCode:
- 北京
- 上海
- 深圳
- 杭州
# 打招呼语(必填)
sayHi: |
您好,我对贵公司的这个岗位很感兴趣。
我有X年相关工作经验,熟悉XXX技术栈。
期待能有机会详细了解岗位信息,谢谢!
# 启用 AI 功能(可选,默认 false)
enableAI: true
# 过滤不活跃 HR(可选,默认 false)
filterDeadHR: true
deadStatus:
- 本月活跃
- 今日活跃
# 发送图片简历(可选,默认 false)
sendImgResume: false
# 期望薪资范围(可选,单位:K)
expectedSalary: [20, 35] # 20K-35K
# 筛选条件(可选)
jobType: 全职
salary: 20-30K
experience:
- 3-5年
- 5-10年
degree:
- 本科
- 硕士
scale:
- 100-499人
- 500-999人
stage:
- 已上市
- D轮及以上
3. AI 配置
ai:
# 自我介绍(必填,如果启用 AI)
introduce: |
我是一名Java后端工程师,有5年工作经验。
熟悉Spring Boot、MySQL、Redis等技术栈。
有大型互联网项目经验,擅长高并发系统设计。
# 提示词模板(必填,如果启用 AI)
prompt: |
我的背景:%s
目标岗位关键词:%s
岗位名称:%s
职位描述:%s
默认打招呼语:%s
请根据以上信息,生成一段简洁专业的求职打招呼语(100字以内)。
4. Bot 推送配置
bot:
# 企业微信推送
is_send: true
# Bark 推送(iOS)
is_bark_send: false
黑名单配置(可选)
编辑 boss/data.json:
{
"blackCompanies": [
"公司A",
"公司B"
],
"blackRecruiters": [
"某猎头",
"某外包"
],
"blackJobs": [
"外包",
"驻场"
]
}
🎨 配置示例
示例1:只用 Boss,启用 AI
enabled:
- boss
boss:
keywords:
- Java开发
cityCode:
- 北京
enableAI: true
filterDeadHR: true
sayHi: "您好,我对这个岗位很感兴趣..."
expectedSalary: [25, 40]
ai:
introduce: |
5年Java开发经验,熟悉Spring全家桶。
prompt: |
我的背景:%s
请生成专业的打招呼语。
示例2:Boss + 猎聘,不用 AI
enabled:
- boss
- liepin
boss:
keywords:
- Python开发
cityCode:
- 上海
enableAI: false
sayHi: "您好,我是一名Python开发工程师..."
liepin:
keywords:
- Python
cityCode:
- 上海
示例3:只筛选大厂
enabled:
- boss
boss:
keywords:
- 后端开发
cityCode:
- 北京
scale:
- 10000人以上
stage:
- 已上市
- D轮及以上
expectedSalary: [30, 50]
sayHi: "您好..."
❓ 常见问题
Q1: AI 服务连接失败
问题现象:
[WARN] ✗ AI 服务响应异常,状态码: 401
解决方案:
-
检查 .env 配置
API_KEY是否正确BASE_URL是否可访问- 网络连接是否正常
-
测试 API
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.ruyun.fun/v1/models -
不影响投递
- AI 失败会自动使用默认打招呼语
- 投递功能正常工作
Q2: Playwright 报错找不到 Node.js
问题现象:
Error: Cannot find module 'package.json'
原因:
Playwright Java 版本需要 Node.js 运行时。
解决方案:
-
安装 Node.js
- 下载:nodejs.org/
- 推荐版本:20.x LTS
-
验证安装
node --version # 应显示 v20.x npm --version -
确保在 PATH 中
# Windows where node # Linux/Mac which node
Q4: 无法从任意目录启动
问题现象:
从其他目录运行找不到配置文件。
解决方案:
确保使用新版本(v2.0.1),新版本已修复此问题:
# 现在支持从任意目录启动
cd /home/user
java -jar /opt/get_jobs/get_jobs-v2.0.1.jar
# 会自动加载 /opt/get_jobs/ 下的配置
Q5: 怎么只启用部分平台?
解决方案:
在 config.yaml 顶部修改 enabled 列表:
# 只想用 Boss
enabled:
- boss
# 想用 Boss 和猎聘
enabled:
- boss
- liepin
# 不想用的就不写或注释掉
enabled:
- boss
# - liepin # 不用就注释
Q6: 怎么设置后台运行?
Linux/Mac:
# 使用 nohup
nohup java -jar get_jobs-v2.0.1.jar > get_jobs.log 2>&1 &
# 查看进程
ps aux | grep get_jobs
# 停止进程
kill -9 <pid>
# 查看日志
tail -f get_jobs.log
Windows:
# 使用 start
start /b java -jar get_jobs-v2.0.1.jar
# 或者创建 .bat 脚本
echo @echo off > start.bat
echo java -jar get_jobs-v2.0.1.jar >> start.bat
Q7: 配置修改后需要重启吗?
需要重启!
配置文件在程序启动时加载,修改后需要:
# 1. 停止程序(Ctrl+C 或 kill)
# 2. 修改配置文件
# 3. 重新启动
java -jar get_jobs-v2.0.1.jar
📚 详细文档
如需更详细的说明,请查看:
- 配置说明文档 - 每个参数的详细说明
- 文件加载优先级说明 - 配置文件加载机制
- Spring ResourceLoader实现说明 - 技术实现细节
💬 获取帮助
遇到问题?
- 查看日志 - 日志里有详细的错误信息
- 检查文档 - 先查看相关文档
- 搜索 Issues - GitHub Issues
- 加入 QQ 群 - 群里有热心的小伙伴帮忙
🎊 总结
这次升级重点解决了:
✅ 配置文件加载问题 - 智能检测 JAR 目录
✅ 启动方式灵活性 - 支持多种配置方式
✅ 日志可读性 - 清晰的日志输出
✅ 代码可维护性 - 使用 Spring ResourceLoader
希望这次升级能让大家用得更顺手!
如果觉得项目有帮助,请给个 ⭐ Star 支持一下!如果你需要该工具,私信我吧~~
祝大家早日拿到心仪的 Offer!🎉
黑暗无论多么长,光明迟早总是会来的
断剑重铸之日,便是英雄归来之时