首页 / 资讯中心 / 文章详情

用 Claude Code 驱动 Playwright 与 Chromium 自动搜岗:career-ops 实战拆解与 TaoToken 接入

用 Claude Code 驱动 Playwright 与 Chromium 自动搜岗:career-ops 实战拆解与 TaoToken 接入 ★ FEATURED ARTICLE
1. 为什么要把搜岗这件事交给 Claude Code 和 Playwright求职最耗时的环节往往不是面试而是每天重复打开几十个招聘页面、复制 JD、对照自己的简历判断匹配度。career-ops 这个开源项目的思路很直接把 Claude Code 当成调度中枢用 Playwright 驱动 Chromium 去真实浏览招聘门户抓取岗位描述再让模型按结构化维度打分。它不是一个海投工具而是一个筛选器——从几百个岗位里挑出值得你花时间的那几个。我关注它是因为它把三件事串成了一条流水线浏览器自动化负责看到Claude Code 负责理解与判断本地 Markdown/TSV 负责记录。对想搭建本地自动化求职流水线的开发者来说这套组合比纯 API 爬虫更稳因为 Playwright 渲染的是真实页面能处理 Greenhouse、Ashby、Lever 这类前端动态加载的招聘站。适合谁有 Node.js 基础、愿意折腾命令行、希望把求职过程数据化的人。如果你只是想手动投几份简历这套系统反而偏重。但如果你每天要面对大量岗位、想建立可复用的评估标准那它值得投入一个下午配置。核心检索词先明确career-ops 是基于 Claude Code 的 AI 求职管道用 Playwright 与 Chromium 完成招聘岗位自动搜索与初步分析。本文会给出可复制的环境配置、任务脚本、运行验证以及把模型调用 endpoint 改到 TaoToken 统一通道的完整步骤。2. 环境准备Node、Playwright 与 Chromium 安装踩坑career-ops 的运行依赖三样东西Node.js 运行时、Playwright 框架、以及 Playwright 专用的 Chromium 浏览器。很多人卡在第一步不是不会装而是装完发现 PDF 生成失败原因通常是 Chromium 没装全。先克隆项目并安装依赖git clone https://github.com/santifer/career-ops.git cd career-ops npm install npx playwright install chromium这里重点说npx playwright install chromium。它下载的不只是一个浏览器而是四个组件Chrome for Testing约 179 MiBPlaywright 专用的 Chromium、FFmpeg约 1.3 MiB用于视频录制、Chrome Headless Shell约 111.5 MiB无头模式运行、以及 Windows 下的 Winldd 依赖检查工具。career-ops 生成 ATS 优化 PDF 时用的是无头 Chromium 渲染 HTML 模板所以这个 Headless Shell 必须存在否则后面/career-ops pdf会直接报找不到浏览器。为什么用npx而不是全局安装三个实际好处。第一无需全局安装npx会自动查找项目node_modules里的 Playwright 版本避免全局版本和项目版本冲突。第二版本管理更灵活项目锁定哪个版本就用哪个。第三临时执行本地没装时会临时下载执行完不污染全局环境。装完后跑一次自检npm run doctor这个命令会验证所有前置条件包括 Node 版本、Playwright 是否可用、Chromium 路径是否正确。如果输出里有任何 FAIL先解决再往下走。接下来复制配置文件cp config/profile.example.yml config/profile.yml cp templates/portals.example.yml portals.ymlprofile.yml是你的个人信息与偏好portals.yml是要扫描的公司列表。然后在项目根目录创建cv.md把你的简历用 Markdown 写进去——career-ops 评估匹配度时读的就是这个文件。这里有个我踩过的坑cv.md不要写成流水账尽量包含具体项目、量化结果、技术栈关键词。模型做的是语义匹配而非关键词匹配但语义匹配也需要足够的上下文才能判断你和岗位的真实契合度。简历越具体A-F 评分越准。3. 把模型调用切到 TaoToken 统一通道career-ops 默认走 Claude Code 的模型调用。如果你希望统一管理模型通道、方便切换和计费可以把 endpoint 改到 TaoToken。这一步的核心是配置 Base URL、API Key 和 Model ID 三件套。先到 TaoToken 控制台创建 API Key地址是 https://taotoken.net/api-keys 。拿到 Key 后Claude Code 的配置通常放在用户目录下的 settings 文件里。以常见的~/.claude/settings.json为例写入如下 JSON{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }如果你用的是 Codex 风格的auth.json结构类似把 Base URL 指向https://taotoken.net/apiKey 填 TaoToken 的密钥Model ID 按你实际要用的模型填写。三件套缺一不可Base URL 决定请求发到哪Key 决定身份Model ID 决定用哪个模型。配置完成后在 career-ops 目录里启动 Claude Codeclaude进入交互后先让它读一遍项目结构确认它能识别CLAUDE.md、modes/和cv.md。你可以直接说读一下 CLAUDE.md 和 modes/_shared.md告诉我这个系统怎么工作。如果模型能正确复述模式列表和评估流程说明通道已经通了。这里要注意TaoToken 是统一的模型调用通道不是编辑器替代品也不做任何网络代理。它只负责把你的模型请求转发到对应模型。配置时只改 Base URL 和 Key不要动其他无关设置。验证通道是否真正生效最直接的办法是发一个最小请求。在 Claude Code 里输入一句简单指令比如用一句话说明 Playwright 和 Puppeteer 的区别。如果几秒内返回合理回答说明模型调用正常。如果报 401说明 Key 有问题如果报连接失败检查 Base URL 是否写成了https://taotoken.net/api注意不要多加路径。4. 运行一次完整搜岗任务并验证结果配置就绪后跑一次真实的搜岗任务。career-ops 的入口是一个 slash command支持多种模式/career-ops scan这个命令会读取portals.yml里的公司列表用 Playwright 驱动 Chromium 逐个打开招聘页面抓取新岗位。扫描完成后结果会进入待处理队列。接着做批量评估/career-ops batch它会用claude -p工作线程并行评估多个岗位每个岗位生成一份报告包含角色概述、简历匹配、职级策略、薪资调研、个性化建议和面试准备STARR 方法。评估结果同时写入reports/目录的 Markdown 文件和 tracker 的 TSV 记录。如果你想针对单个岗位做完整管道直接粘贴 JD 或 URL/career-ops {粘贴岗位链接}系统会自动检测输入类型跑完评估 PDF tracker 记录全流程。生成的 PDF 在output/目录用的是 ATS 优化的 HTML 模板字体是 Space Grotesk 加 DM Sans。验证成功的标志有三个。第一reports/下出现了新的.md报告打开能看到结构化的 A-F 评分和分维度分析。第二output/下生成了对应的.pdf能正常打开且排版完整。第三tracker 的 TSV 文件里多了一行记录状态字段是规范化的值。我实测下来一次扫描加批量评估 10 个岗位从启动到出报告大约几分钟具体取决于岗位页面加载速度和模型响应。如果某个岗位页面一直加载不出来通常是该招聘站有反爬或需要登录Playwright 会超时这时可以在portals.yml里把该公司暂时移除。还有一个内置的终端仪表盘用 Go 写的可以可视化浏览管道cd dashboard go build -o career-dashboard . ./career-dashboardWindows 下编译后要把文件改成career-dashboard.exe再执行。仪表盘支持 6 个筛选标签、4 种排序模式、分组与平铺视图以及行内状态修改。5. 常见报错排查401、local proxy failed 与 reading choices配置和运行过程中最容易撞上几类报错逐个说清楚。401 Unauthorized模型调用返回 401几乎都是 Key 的问题。检查ANTHROPIC_API_KEY是否填了完整的 TaoToken 密钥有没有多余空格是否过期。如果 Key 正确但仍 401确认 Base URL 是https://taotoken.net/api不要写成带/v1或其他路径的形式。local proxy failed / connection refused这类报错通常出现在 Base URL 写错或本地网络配置异常时。先确认ANTHROPIC_BASE_URL拼写正确再确认没有其他工具在占用同名环境变量。如果你之前配过别的通道环境变量可能被覆盖用echo $ANTHROPIC_BASE_URL检查实际生效的值。Error reading choices / unexpected response shape模型返回的结构和预期不符常见于 Model ID 填错。比如填了一个不存在的模型名通道返回的是错误对象而非标准响应Claude Code 解析时就报 reading choices 失败。解决方法是核对 Model ID 是否为你账号下可用的模型改回正确值后重启 Claude Code。OAuth 相关报错如果你之前用 OAuth 方式登录过 Claude Code切换通道后可能残留旧凭证导致冲突。清理旧的认证缓存改用 API Key 方式确保settings.json里没有同时存在 OAuth token 和 API Key。Playwright 找不到 Chromium报错信息里出现 browser not found 或 Executable doesnt exist说明 Chromium 没装或路径不对。重新执行npx playwright install chromium确认下载完成。如果公司网络限制下载可以设置PLAYWRIGHT_DOWNLOAD_HOST指向可访问的镜像源。PDF 生成空白或排版错乱多半是字体文件缺失。检查fonts/目录下是否有 Space Grotesk 和 DM Sans模板引用的字体路径是否正确。另外确认 Headless Shell 已安装因为 PDF 渲染走的是无头模式。排查时有个通用思路先看报错发生在哪一层。是模型调用层401、choices、浏览器层browser not found、timeout、还是文件层字体、路径。分层定位能省很多时间。6. 把这条流水线用起来从配置到日常career-ops 真正的价值不在于一次跑通而在于它把求职变成了可迭代的系统。第一次评估结果通常一般因为系统还不了解你。你需要持续喂上下文更新cv.md、补充article-digest.md里的成果证明、在profile.yml里写清楚你的偏好和想避开的方向。信息越充分A-F 评分越贴近真实匹配度。日常使用上我建议把/career-ops scan设成每天固定跑一次把新岗位拉进队列然后批量评估只对评分 4.0 以上的岗位生成定制 PDF。系统本身强烈建议不要申请低于 4.0 的岗位这不是技术限制而是时间管理的建议——你的时间和招聘方的时间都值得被尊重。模型通道方面把 endpoint 统一到 TaoToken 后切换模型、查看用量、管理密钥都在一个地方完成不用在多个配置间来回改。需要长期跑编码或 Agent 任务时可以了解 Coding Plan想直接验证模型对话效果用模型对话页面即可接入细节看接入文档密钥管理在 API Keys。最后留一个实用技巧modes/目录下的 14 个模式文件都是纯 Markdown你可以直接让 Claude 改它们。比如把 archetypes 改成后端工程方向把评分权重里薪资调研的占比调低给 portals.yml 加这 5 家公司。系统读的就是这些文件所以它知道该改哪里。这种让 Claude 自己定制自己的设计是 career-ops 比一般脚本工具更耐用的原因。
阅读完成 · 觉得有帮助?
咨询建站