[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11661":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":13,"forks30d":13,"starsTrendScore":17,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":13,"starSnapshotCount":13,"syncStatus":14,"lastSyncTime":26,"discoverSource":27},11661,"auto-resume","wangrujun2016\u002Fauto-resume","wangrujun2016",null,"Python",127,21,1,0,2,3,86,6,4.03,false,"main",true,[],"2026-06-12 02:02:33","# BOSS 直聘自动招呼助手 (auto-resume)\n\n一个 Electron + React + Python(FastAPI + Playwright) 的桌面应用：\n\n- ✅ 多账号并行：每个账号一个独立的 Chromium `user_data_dir`，cookie\u002F登录态互不污染\n- ✅ 自定义筛选：关键词、城市、薪资、经验、学历、公司规模、黑名单关键词\n- ✅ 自动打招呼：默认每 30 秒一次（含随机抖动），每天默认上限 10 次\n- ✅ 已招呼幂等：SQLite 记录每日已招呼岗位，避免重复\n- ✅ 实时日志：WebSocket 推送每条操作日志\n- ✅ 启停可控：开始 \u002F 暂停 \u002F 继续 \u002F 停止\n\n> 说明：BOSS 直聘服务条款不允许自动化操作，本项目仅供学习交流。请合理控制频率，账号风险自担。\n\n---\n\n## 一、依赖准备（首次运行必读）\n\n### 1. Python 3.10+\n\n> 你当前环境只有 Python 2.7，**必须**额外安装 Python 3。\n\n- 下载：\u003Chttps:\u002F\u002Fwww.python.org\u002Fdownloads\u002F>\n- 安装时勾选 **\"Add Python to PATH\"**\n- 验证：\n\n  ```powershell\n  python --version   # 应显示 3.10 或更高\n  ```\n\n### 2. Node.js 18+\n\n你已有 Node 22，无需操作。\n\n### 3. Chrome 浏览器\n\nPlaywright 默认通过 `channel=\"chrome\"` 调用本机 Chrome；如果没有 Chrome 也可以改成下载 Chromium（见下方\"可选\"）。\n\n---\n\n## 二、安装项目依赖\n\n打开 PowerShell，进入项目目录：\n\n```powershell\ncd E:\\PROJECT\\auto-resume\n```\n\n### 1. 前端 \u002F Electron 依赖\n\n```powershell\nnpm run install:all\n```\n\n### 2. Python 依赖（建议虚拟环境）\n\n```powershell\ncd backend\npython -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\npip install -r requirements.txt\nplaywright install chromium\ncd ..\n```\n\n> 如果你**已经装了 Chrome**，`playwright install chromium` 这一步可以省略；automator 会优先使用本机 Chrome。\n\n---\n\n## 三、启动开发模式\n\n```powershell\nnpm run dev\n```\n\n会同时启动三个进程：\n\n| 名称       | 端口 \u002F 说明                            |\n| ---------- | -------------------------------------- |\n| `PY`       | Python FastAPI（127.0.0.1:8765）       |\n| `VITE`     | React 前端开发服务器（127.0.0.1:5173） |\n| `ELECTRON` | Electron 桌面壳，加载前端              |\n\nElectron 窗口出现后，你就能看到主界面。\n\n> 如果 PowerShell 提示 `python` 命令找不到，需要确认 Python 3 已加入 PATH，重启终端再试。\n\n---\n\n## 四、使用流程\n\n1. **新建账号任务**：左上角「+ 新建账号任务」按钮\n\n   - 任务别名：随便起一个，用于区分账号（如「账号 A - Python 后端」）\n   - 关键词：BOSS 搜索框里的内容\n   - 其他筛选项：可选\n   - 招呼语：可留空（用 BOSS 默认），也可写多条（每行一条，每次随机选一条更像真人）\n   - 间隔秒数 \u002F 每日上限：默认 30s \u002F 10 次\n\n2. **点击「开始」**：会弹出一个独立的 Chromium 窗口\n\n   - 第一次需要自己手动登录（扫码或账密均可）\n   - 登录成功后程序自动跳转到搜索页，开始打招呼\n   - 之后再次启动同一个任务，**会复用上次的 cookie 自动登录**\n\n3. **添加更多账号**：再次「新建任务」用不同的别名 → 点击「开始」会弹出**另一个独立**的浏览器窗口，账号互不污染\n\n4. **暂停 \u002F 继续 \u002F 停止**：在任务卡片上操作\n\n5. **查看进度**：点击任务卡片进入详情页，可看到：\n   - 实时运行日志（WebSocket 推送）\n   - 今日已招呼列表\n\n---\n\n## 五、目录结构\n\n```\nauto-resume\u002F\n├── package.json              # 根：electron + dev 脚本\n├── electron\u002F                 # Electron 主进程\n│   ├── main.cjs\n│   └── preload.cjs\n├── frontend\u002F                 # React + Vite + TS + Tailwind\n│   ├── package.json\n│   └── src\u002F\n│       ├── App.tsx\n│       ├── api\u002Fclient.ts     # REST + WebSocket 客户端\n│       ├── store\u002FuseTasks.ts\n│       └── components\u002F\n│           ├── NewTaskModal.tsx\n│           ├── TaskCard.tsx\n│           ├── TaskDetail.tsx\n│           └── StatusBadge.tsx\n└── backend\u002F                  # Python FastAPI + Playwright\n    ├── requirements.txt\n    └── app\u002F\n        ├── main.py\n        ├── api\u002Ftasks.py            # REST + WebSocket 路由\n        ├── core\u002F{config,logger}.py\n        ├── schemas\u002Ftask.py         # Pydantic DTO\n        └── services\u002F\n            ├── boss_automator.py   # 核心：列表抓取 + 自动打招呼\n            ├── task_manager.py     # 多任务编排\n            └── storage.py          # SQLite：任务定义 + 已招呼幂等\n```\n\n数据存放：\n\n- `backend\u002Fdata\u002Fprofiles\u002F\u003Ctask_id>\u002F` 每个任务的浏览器 profile（cookie 等）\n- `backend\u002Fdata\u002Fauto_resume.sqlite` 任务与已招呼记录\n- `backend\u002Flogs\u002F\u003Ctask_id>.log` 文件日志\n\n这些目录**不会**被 git 追踪。\n\n---\n\n## 六、常见问题\n\n**Q1. 打招呼按钮点不到 \u002F 选择器失效？**\nBOSS 前端会改 DOM。`backend\u002Fapp\u002Fservices\u002Fboss_automator.py` 里的选择器（`.start-chat-btn` \u002F `.dialog-container textarea` 等）可能需要按当前页面调整。日志里会有 `打招呼失败` 提示。\n\n**Q2. 提示\"登录超时\"？**\n默认等待登录 10 分钟。如需更长，调 `boss_automator._wait_for_login(timeout_seconds=...)`。\n\n**Q3. 想改成隐藏浏览器（headless）？**\n不推荐——首次必须登录、且 BOSS 风控对 headless 较敏感。如确实要，把 `boss_automator._launch` 中的 `headless=False` 改 `True`。\n\n**Q4. 怎么彻底退出某个账号？**\n删除任务时浏览器 profile 会保留。如需重新登录，手动删除 `backend\u002Fdata\u002Fprofiles\u002F\u003Ctask_id>\u002F`。\n\n---\n\n## 七、生产打包\n\n> 浏览器二进制（Chromium）是平台专属，**Windows 包必须在 Windows 上打，macOS 包必须在 macOS 上打**，不能交叉编译。\n\n### 7.1 Windows（在 Windows 上）\n\n```powershell\n$env:CSC_IDENTITY_AUTO_DISCOVERY=\"false\"\nnpm run dist:win\n```\n\n产物：\n\n| 路径                                       | 用途                                  |\n| ------------------------------------------ | ------------------------------------- |\n| `release\u002FBOSS自动招呼助手-Setup-0.1.0.exe` | NSIS 安装包（双击安装）               |\n| `release\u002Fwin-unpacked\u002F`                    | 解压版（直接跑里面的 .exe，不用安装） |\n\n### 7.2 macOS（在 Mac 上）\n\n依赖一次性准备：\n\n```bash\ncd backend\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npip install -r requirements.txt\npip install pyinstaller==6.10.0\npython -m patchright install chromium\ncd ..\nnpm run install:all\n```\n\n打包：\n\n```bash\n# 同时出 Intel(x64) 和 Apple Silicon(arm64) 的 .dmg + .zip\nnpm run dist:mac\n\n# 只打当前架构 + dmg\nnpm run dist:mac:dmg\n\n# 只想要解压目录（调试时用，最快）\nnpm run dist:mac:dir\n```\n\n产物：\n\n| 路径                                       | 用途                            |\n| ------------------------------------------ | ------------------------------- |\n| `release\u002FBOSS自动招呼助手-0.1.0-x64.dmg`   | Intel Mac 安装镜像              |\n| `release\u002FBOSS自动招呼助手-0.1.0-arm64.dmg` | Apple Silicon 安装镜像          |\n| `release\u002Fmac-arm64\u002FBOSS自动招呼助手.app`   | 解压版 .app（直接拖进去就能跑） |\n\n### 7.3 安装与首次运行注意\n\n**Windows**：未签名，SmartScreen 会拦截，点「更多信息 → 仍要运行」。\n\n**macOS**：未做 Apple 公证，首次启动会提示「已损坏 \u002F 无法验证开发者」。两种解决：\n\n```bash\n# 方法 A：右键点 .app → 打开 → 仍然打开（一次后系统会记住）\n\n# 方法 B：直接清掉 quarantine 标记（推荐）\nxattr -dr com.apple.quarantine \"\u002FApplications\u002FBOSS自动招呼助手.app\"\n```\n\n### 7.4 数据目录\n\n打包后的应用，用户数据（浏览器 profile \u002F SQLite \u002F 日志）写在：\n\n| 平台    | 路径                                        |\n| ------- | ------------------------------------------- |\n| Windows | `%APPDATA%\\AutoResume\\`                     |\n| macOS   | `~\u002FLibrary\u002FApplication Support\u002FAutoResume\u002F` |\n| Linux   | `~\u002F.local\u002Fshare\u002FAutoResume\u002F`                |\n\n卸载或重装应用都不会清掉数据；想重新登录某账号就删对应的 `profiles\u002F\u003Ctask_id>\u002F` 即可。\n\n## 直接下载可运行包（windows）\n\n链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1e5lkqYONlNzEwfoY3aVMmQ?pwd=8bkt 提取码: 8bkt\n","BOSS直聘自动招呼助手是一个基于Electron、React和Python的桌面应用程序，旨在自动化地向求职者发送问候信息。该项目利用FastAPI构建后端服务，并使用Playwright进行网页操作，支持多账号并行处理、自定义筛选条件（如关键词、城市等）以及自动打招呼功能。此外，它还具备已打招呼记录幂等性处理与实时日志推送能力。此工具适用于希望提高招聘效率但需注意遵守平台规则的企业HR或猎头，在合理控制使用频率的前提下探索更高效的候选人接触方式。请注意，根据BOSS直聘的服务条款，此类自动化行为可能违反其规定，请谨慎使用并对任何潜在风险负责。","2026-06-11 03:32:13","CREATED_QUERY"]