大模型应用
需要搭建 AI 求职自动化流水线时:用 Claude…
在 Claude Code 环境中,把职位评估、ATS PDF 生成、门户扫描、批量处理和申请跟踪整合成一条求职流水线。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要搭建 AI 求职自动化流水线时:用 特定
解决思路
- 克隆仓库:git clone https://github.com/santifer/career-ops.git && cd career-ops
- 安装 Node 依赖:npm install && npx playwright install chromium
- 配置个人资料:cp config/profile.example.yml config/profile.yml,然后编辑 config/profile.yml 填入姓名、目标职位、地点、薪酬范围等
- 配置门户扫描器:cp templates/portals.example.yml portals.yml,然后在 portals.yml 中添加或删除要跟踪的公司
- 在项目根创建 cv.md 并写入 Markdown 格式的 CV 内容,AI 会读取它来评估匹配度
- 构建 Go 仪表盘(可选但推荐):cd dashboard && go build -o career-dashboard . && cd ..
- 验证环境:运行 claude --version 检查 Claude Code 已安装;在 career-ops 目录运行 claude 打开 Claude Code
- 在 Claude Code 中使用 /career-ops 显示所有可用模式
- 运行 /career-ops {job URL 或 JD} 执行完整自动流水线:评估 + PDF + tracker 条目
- 运行 /career-ops scan 扫描预配置门户寻找新 offer
- 运行 /career-ops pdf 为最近评估的 offer 生成 ATS 优化 CV
- 运行 /career-ops batch 并行批量评估多个 offer
- 运行 /career-ops tracker 查看申请 pipeline 状态
- 运行 /career-ops apply 使用 AI 辅助填写申请表单
- 运行 /career-ops pipeline 处理队列中所有待处理 URL
- 运行 /career-ops contacto 生成 LinkedIn 外联消息
- 运行 /career-ops deep 生成深度公司研究报告
- 运行 /career-ops training 评估课程或认证
- 运行 /career-ops project 评估作品集项目匹配
- 自动检测快捷方式:直接粘贴原始职位 URL 或职位描述文本,career-ops 会自动检测并运行完整流水线
- 配置 config/profile.yml:写入姓名、头衔、地点、时区、远程偏好、目标职位、薪酬货币/最低/目标/股权、语言、archetypes 等字段
- 配置 portals.yml:在 companies 下列出公司 name、url、board;在 job_boards 下配置 ashby/greenhouse/lever 的 base_url;在 search_queries 下写搜索查询
- 配置 templates/states.yml:编辑 statuses 的 id/label,匹配你的工作流(pending、evaluating、applied、screening、interview、offer、rejected、withdrawn)
- 了解 modes/ 目录:每个文件是一个 Claude skill,定义 /career-ops 一个命令的行为;先定制 _shared.md
- modes/ 文件包括:_shared.md、oferta.md、pdf.md、scan.md、batch.md、tracker.md、apply.md、pipeline.md、contacto.md、deep.md、training.md、project.md
- 通过 Claude 定制 modes:在 Claude Code 会话中让 Claude 修改 _shared.md 的 archetypes、翻译 modes、添加公司到 portals.yml、修改 oferta.md 评分权重、新增 referral 模式等
- 构建并运行 Go Dashboard TUI:cd dashboard && go build -o career-dashboard . && ./career-dashboard
- 使用 Dashboard 的 6 个过滤标签:All、Pending、Applied、Interviewing、Offer、Rejected
- 使用 Dashboard 的 4 种排序:Date、Score、Company、Status
- 使用 Dashboard 的分组/平面视图切换
- 使用 Dashboard 的懒加载预览:按 Enter 阅读完整评估报告
- 使用 Dashboard 的内联状态更改:无需离开 TUI 更新状态
- Go 模块结构参考:main.go 入口使用 tea.NewProgram/WithAltScreen;model.go 定义 Application/Model;data.go 从 pipeline.tsv 读取 TSV(Comma 设为制表符,LazyQuotes=true,跳过表头,至少 8 列)
- model.go 字段参考:Application 含 ID、Company、Role、Score、Status、URL、ReportPath、PDFPath、CreatedAt、UpdatedAt、Archetype、CompRange、Notes;Model 含 applications、filtered、cursor、activeTab、sortMode、grouped、preview、showPreview、width、height
- 批量处理设置:创建 batch/queue.txt,每行一个 URL
- 运行批量评估:在 Claude Code 中运行 /career-ops batch,或终端 cd batch && ./batch-runner.sh queue.txt
- batch-runner.sh 要点:QUEUE_FILE 默认为 queue.txt,MAX_PARALLEL=4,PROMPT_FILE=batch-prompt.md;循环读取 URL,跳过空行和 # 注释;对每个 URL 运行 claude -p "$(cat $PROMPT_FILE)\n\nEvaluate this offer: $url" --output-format json >> ../data/batch-results.jsonl &;通过 jobs -r | wc -l 节流到 MAX_PARALLEL,sleep 2;最后 wait 并输出 data/batch-results.jsonl
- PDF 生成:在 Claude Code 评估后运行 /career-ops pdf;Claude 读取最近评估报告,从 JD 提取关键词,注入 templates/cv-template.html,用 Playwright 渲染到 output/{company}-{role}.pdf
- 手动 Playwright PDF 渲染:在 scripts/generate-pdf.js 中使用 chromium,page.setContent(htmlContent, {waitUntil:'networkidle'}),page.pdf({path, format:'A4', margin:{top:'20mm',bottom:'20mm',left:'15mm',right:'15mm'}, printBackground:true}),然后关闭浏览器;运行 node scripts/generate-pdf.js 以 templates/cv-template.html 和参数 company role 输出 PDF
- Pipeline 数据存储:data/ 下 pipeline.tsv 主跟踪器,batch-results.jsonl 批量评估输出,urls-pending.txt 队列;reports/{company}-{role}-{date}.md 完整报告;output/{company}-{role}.pdf 生成 CV
- Pipeline TSV 格式:列顺序 id、company、role、score、status、url、archetype、comp_range、created_at、updated_at、report_path、pdf_path
- 评估评分系统:按 10 个加权维度评分:Role fit 20%、Level alignment 15%、Compensation 15%、Tech stack 15%、Company stage 10%、Remote policy 10%、Growth potential 5%、Mission alignment 5%、Interview signals 3%、Recruiter quality 2%
- 按阈值分级:A ≥85,B+ ≥75,B ≥65,C ≥50,D ≥35,F <35
- 单职位端到端评估:在 Claude Code 中运行 /career-ops {URL};Claude 会抓取 JD、检测 archetype、根据 cv.md 和 profile.yml 评分、生成 6 段评估报告到 reports/、创建 ATS 优化 PDF 到 output/、添加条目到 data/pipeline.tsv
- 添加公司到扫描器:在 portals.yml 的 companies 下添加 name/url/board/filter_keywords,然后运行 /career-ops scan
- 构建面试故事库:运行 /career-ops tracker,Claude 会展示最强 STAR 故事并映射到常见行为问题;故事积累在 reports/_story-bank.md
- 生成薪资谈判脚本:收到 offer 后运行 /career-ops {粘贴 offer 详情};Claude 生成包含具体数字的反报价脚本、地理折扣反驳、竞争 offer 杠杆语言、各场景邮件模板
- Playwright/PDF 排障:运行 npx playwright install chromium;用 node scripts/generate-pdf.js 2>&1 | head -50 查看错误;确保 fonts/ 下有 SpaceGrotesk-*.woff2 和 DMSans-*.woff2
- Go dashboard 构建排障:cd dashboard && go mod tidy && go build -o career-dashboard .;缺少依赖时 go get github.com/charmbracelet/bubbletea、lipgloss、bubbles
- TSV 解析排障:用 awk -F'\t' 'NF != 12 {print NR": "NF" fields: "$0}' data/pipeline.tsv 检查异常行;或让 Claude 运行 pipeline integrity check 修复 pipeline.tsv 中 malformed rows
- Claude Code 找不到 modes 排障:确认 CLAUDE.md 在项目根,ls CLAUDE.md;确认 modes/ 有 *.md;如果无法识别 /career-ops,从项目根重新打开:cd /path/to/career-ops && claude
- Scanner 被 bot detection 阻止排障:在 portals.yml 为限速站点添加 scrape_delay_ms: 3000 和 user_agent: "Mozilla/5.0 (compatible)"
- 项目结构:按 career-ops/ 组织,包含 CLAUDE.md、cv.md、article-digest.md、config/、modes/、templates/、batch/、dashboard/、fonts/、data/、reports/、output/、docs/、examples/
- 设计原则:质量优于数量,评分系统用于过滤不匹配机会而非最大化申请量
- 设计原则:Claude 自定义 Claude,让 Claude 编辑 modes、权重、archetypes,它了解文件结构
- 设计原则:保持 data/pipeline.tsv 为单一事实来源,所有命令一致读写它
- 设计原则:将 data/、reports/、output/、cv.md 加入 gitignore,个人数据保留在本地
适用边界 · 注意事项
- 没有 Claude Code CLI 和 Anthropic API key,或不想使用 Claude/Anthropic 服务
- 没有 Node.js 18+ 或 Go 1.21+ 环境,且不需要 PDF/仪表盘功能
- 只需要手动投递少量职位,不需要自动化扫描、批量评估或申请跟踪