Chrome 插件 + 本地 DeepSeek API。浏览 Upwork 页面时自动分析 job,标记 APPLY / PASS / EDGE。
MacBook Chrome 插件 (content.js)
↓ POST /analyze
MacBook 后端 (backend/server.py, localhost:8765)
↓ DeepSeek V4 Flash API
verdict JSON → 插件渲染标记
↓ 自动 append
backend/job_log.jsonl ← 所有分析记录 (JSONL, claude-code / hermes 可读)
1. 启动后台 API
cd ~/sandbox/backend
export DEEPSEEK_API_KEY=sk-你的key
export UPWORK_FILTER_MODEL=deepseek-v4-flash
python3 server.py &2. 装 Chrome 插件
- Chrome →
chrome://extensions/ - 开启 Developer mode
- Load unpacked → 选本目录
- 打开
upwork.com/nx/search/jobs/...→ 每个 job card 自动加标记 - 点进单个 job → 页面顶部显示详细分析面板
upwork-filter-extension/
├── manifest.json
├── content.js # 提取 DOM + 调 API + 渲染
├── content.css # 标记样式
├── start.sh # 启动后端
├── README.md # 本文件
├── deploy_to_mac.sh # MacBook 拉取最新 server.py
├── icons/
└── backend/
├── server.py # HTTP 服务 (stdlib http.server + DeepSeek API)
├── prompt.md # bluebird 筛选标准 (人手复制粘贴用; API 调用时自动追加 JSON 指令)
└── job_log.jsonl # 自动累积的分析记录 (每行一条 JSON)
每行一条分析记录:
{"ts": "2026-05-26 15:30:00", "title": "ESP32 firmware...", "verdict": "PASS", "red_lines": ["PCB design"], "reason": "..."}- 源码 (权威):
~/code/upwork-filter-extension/(matrix_l) - 运行 (MacBook):
~/sandbox/backend/server.py - 更新方式:
scp matrix_r:~/code/upwork-filter-extension/backend/server.py ~/sandbox/backend/
- prompt.md 给人手动用(纯文本输出),API 调用时 server.py 自动追加 JSON 指令
- deepseek-v4-flash 偶发空响应,代码已处理
- max_tokens=800(够长防止 JSON 截断)
- 非贪婪匹配 + 多策略 JSON 提取,不用原来的
re.search(r'\{[\s\S]*\}')贪婪匹配