Install
openclaw skills install @ywc668/jobwatchAutonomous job-market watcher: monitors target companies' career pages on a cron schedule, judges every posting against the user's personal profile with LLM-grade reasoning (visa, seniority, red lines), pushes Kill-Shot matches instantly, batches the rest into a daily digest, and archives everything into a knowledge base. Also tracks application status (applied/interview/offer) and answers queries like 'top jobs this week'. Use when: (1) user wants automated job hunting or job alerts, (2) user asks to monitor a company's careers page, (3) user says they applied to a job / got an interview (track it), (4) user asks about recent matched jobs or application stats, (5) a cron wake-up message references the jobwatch work cycle. Triggers: 'job search', 'job alert', 'monitor careers', 'find jobs for me', '求职监控', '盯岗位', '我投了', 'top jobs'.
openclaw skills install @ywc668/jobwatch一条可 cron 运行的「岗位抓取 → 画像比对 → 分级行动」流水线,加上投递跟踪与查询。 零必配依赖:判级由你(agent)完成——用的就是主人给你配的模型;通知发到你们对话的 渠道;知识库默认本地文件。Firecrawl / Telegram 直连 / 2brain 均为可选增强。
① 感知 Greenhouse/Ashby/Lever 官方 API + Google Careers/RSS(Firecrawl 渲染 SPA)
② 推理 去重 + 硬过滤 + 岗位年龄计算(脚本)→ 你 × 主人画像判级 P1/P2/P3
③ 行动 知识库入库 · P1 即时提醒 · P2 每日摘要 · 投递跟进提醒
数据目录(HOME):<workspace>/jobwatch/(config.json、profile/、state/、queue/、
runs/、kb_local/)。skill 目录本身保持只读。以下所有命令都从 HOME 目录运行:
cd <workspace>/jobwatch && python3 <skill目录>/scripts/xxx.py(首次运行任何脚本会
自动创建 HOME 并落地默认 config.json)。
一次只问一组,别倒问卷:
然后动手(主人不写任何文件):
profile.template.md 复制为 HOME/profile/JOB_PROFILE.md,按面试
答案填全五节,复述要点让主人确认。这个文件是判级质量的全部来源,写具体。python3 scripts/discover_board.py "<公司名>" [slug猜测],把命中的信源
写进 HOME/config.json 的 sources。探测不到的用 gcareers(Google 系)或 RSS。config.json 的 prefilter.title_keywords(20-30 个小写子串,宁宽勿窄)
和 exclude_keywords。python3 scripts/pipeline.py,按下方 Work Cycle 完成
判级,挑 5 个代表性结果(P1/P2/P3 各有)问主人:这些判对了吗?按反馈修画像重验。python3 scripts/setup_cron.py --agent <你的agentId>,
提醒主人跑 openclaw gateway restart。告诉主人上岗后会发生什么:P1 实时到这个
对话、每日 9:00 摘要、投递说一声我就记账。python3 scripts/pipeline.py,读 stdout 的 JSON 摘要。pending_judgment > 0:读 HOME/queue/pending_judgment.jsonl(每行
{item, jd_text, jd_tool},item 含 posted_at),逐条对照
HOME/profile/JOB_PROFILE.md 判级,追加写 HOME/queue/judgments.jsonl,
每行严格单行 JSON(无围栏无多余文字):
{"doc_id":"...","match":"kill_shot|comfort_zone|wrong_scene", "visa_risk":"low|medium|high|unknown","summary_zh":"≤150字:岗位/要求/匹配点差距", "tags":["#3-5个"],"reasons":"1-2句依据"}
判级准则:kill_shot=核心能力高度重合+符合级别意向+零红线;comfort_zone=相关但一般,
或高匹配但红线存疑;wrong_scene=触红线或错位。**挂出超 90 天的岗位视为疑似 ghost
job,除非匹配极强否则封顶 comfort_zone 并在 reasons 注明。**判不了的跳过(下轮重现),
不要编造。写完跑 python3 scripts/apply_judgments.py(校验/入库/通知入队/标已见)。python3 scripts/outbox.py list → 有待发消息就把每条 text 通过你和主人的对话渠道
原样发出,然后 python3 scripts/outbox.py archive。errors 非空:偶发静默;连续 3 次同类失败才向主人发简短告警(环节/诊断/建议)。digest 唤醒(jobwatch-digest):跑 python3 scripts/daily_digest.py 再执行第 3 步。
python3 scripts/tracker.py find "<关键词>" 拿 doc_id →
python3 scripts/tracker.py set <doc_id> applied [备注]tracker.py list [status];统计 tracker.py stats;
投递 7 天无更新的会自动出现在每日摘要的跟进提醒里。python3 scripts/query.py top 7(P1/P2 列表),
想看细节读 HOME/kb_local/ 里对应文档。python3 scripts/query.py stats 7 + 看 HOME/runs/ 最新日志。HOME/kb_local/ 的 JD 全文库。sources[]: kind ∈ greenhouse|ashby|lever|gcareers|rssjudge.mode: agent(默认)| api(OpenAI 兼容端点,.env 配 LLM_API_KEY /
LLM_BASE_URL,更快更稳)notify.mode: agent(默认,outbox 播报)| telegram(直连,低延迟,自动复用
OpenClaw 的 bot 配置)kb.backend: local(默认)| twobrain(.env 配 TWOBRAIN_*)prefilter: 标题关键词硬过滤,改完下轮生效