关于 job-search
job-search 是通过浏览器自动化执行每日求职搜索的技能,依据候选人的简历和偏好评估职位。它记录搜索历史、为高匹配职位查找雇主发布页,并汇总新的高、中匹配职位。
主要功能
- 01通过浏览器搜索职位
- 02按简历和偏好评估职位
- 03记录职位以避免重复
- 04查找高匹配职位的雇主链接
- 05将结果与 LinkedIn 联系人匹配
适用场景
- 01查找符合候选人偏好的职位
- 02查看新匹配项并排除历史结果
- 03保存高匹配职位的雇主发布页
- 04识别匹配公司中的联系人
MCP 相关
工作流使用 Claude in Chrome MCP 工具进行浏览器求职搜索。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill job-search安装后在 Claude Code 中输入/job-search确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/templates/job-entry.mdjob-history-init.mdmatching-rules.mdreferences/browser-setup.mddata-directory.mdfit-scoring.mdprerequisites.mdpriority-hierarchy.mdscripts/evaluate-jobs.md详细介绍
求职搜索技能
优先级层级:如需解决冲突,请参阅
references/priority-hierarchy.md。
使用浏览器自动化进行每日自动求职搜索。
文件结构
scripts/
evaluate-jobs.md # Subagent for parallel job evaluation
assets/
templates/ # Format templates (committed)
数据目录
根据 references/data-directory.md 确定数据目录。
工作流
步骤 0:检查前置条件
确定数据目录,然后根据 references/prerequisites.md 检查前置条件。简历和求职偏好都是必需的。
步骤 1:加载上下文
读取以下文件:
DATA_DIR/resume/*(候选人档案)DATA_DIR/preferences.md(求职偏好)DATA_DIR/job-history.md(用于避免重复)DATA_DIR/linkedin-contacts.csv(如果存在——用于匹配人脉)
从以下内容中提取搜索词:
- 如果提供了
$ARGUMENTS,则使用其中的内容 - 求职偏好中的目标职位
步骤 2:浏览器搜索
根据 references/browser-setup.md 使用 Claude in Chrome MCP 工具,访问 https://hiring.cafe。对每个搜索词输入查询,并应用相关筛选条件(发布日期、地点等)。
**提取搜索结果——重要:**不要在 hiring.cafe 或任何大型职位列表页面上使用 get_page_text。它会返回整个页面的内容,导致上下文窗口被占满。
改用 javascript_tool 提取职位列表,只获取结构化数据:
// Extract visible job listing data from the page
Array.from(document.querySelectorAll('[class*="job"], [class*="listing"], [class*="card"], tr, [role="listitem"]'))
.slice(0, 50)
.map(el => el.innerText.trim())
.filter(t => t.length > 20 && t.length < 500)
.join('\n---\n')
如果该选择器无法匹配,请截取屏幕截图以了解页面结构,然后针对该网站编写专用的 JS 选择器。目标是只提取职位列表条目(职位名称、公司、地点、薪资)——绝不获取整个页面。
作为备用方案,可使用 read_page(不要使用 get_page_text)并查找职位列表元素。
**注意:**Hiring.cafe 只是我们的搜索工具。不要向用户分享 hiring.cafe 链接——你将在步骤 5 中为匹配度最高的职位找到雇主的直接链接。
步骤 3:评估职位
根据 references/fit-scoring.md 中的标准,结合候选人的简历和求职偏好为每个职位评分。
步骤 4:保存历史记录
将所有职位追加到 DATA_DIR/job-history.md:
## [DATE] - Search: "[terms]"
| Job Title | Company | Location | Salary | Fit | Notes |
|-----------|---------|----------|--------|-----|-------|
| ... | ... | ... | ... | ... | ... |
步骤 5:查找雇主 URL 并保存热门职位
对于每个高匹配度职位:
- 点击 hiring.cafe 职位列表,进入雇主实际的招聘页面
- 获取该职位发布页的雇主直接 URL
- 使用
javascript_tool提取职位描述内容(例如document.querySelector('[class*="description"], [class*="content"], article, main')?.innerText)。不要使用get_page_text——雇主页面通常有很长的页脚、导航栏和相关职位列表,会导致输出膨胀并占满上下文窗口。 - 保存到
DATA_DIR/jobs/[company-slug]-[date]/posting.md,并将雇主 URL 放在文件顶部
对于中等匹配度职位,尝试查找雇主 URL,但不要保存完整的职位信息。
如果无法找到某个职位的直接链接,请记下公司名称,以便用户自行查找。绝不要向用户显示 hiring.cafe URL。
步骤 6:展示结果
仅展示之前的历史记录中没有的新高匹配度或中等匹配度职位。
如果已加载 LinkedIn 联系人,则将每个结果的公司名称与 CSV 中的“Company”列交叉匹配。使用模糊匹配(例如,“Google”可匹配“Google LLC”或“Alphabet/Google”)。如果匹配成功,请附上联系人的姓名和职位。
## Top Matches for [DATE]
### 1. [Title] at [Company]
- **Fit**: High
- **Salary**: $XXXk
- **Location**: Remote
- **Why**: [reason]
- **Network**: You know [First Last] ([Position]) at [Company]
- **Apply**: [direct employer URL]
如果该公司没有联系人,则省略“Network”行。
步骤 7:后续步骤
展示结果后,告知用户:
- 立即申请(调整简历、按需撰写求职信并填写表单):使用 apply 技能
- 仅调整简历:使用 tailor-resume 技能
- 仅撰写求职信:使用 cover-letter 技能
**重要:**不要尝试自行调整简历、撰写求职信或填写申请表。这些都是独立技能,各自有专属工作流。如果用户要求你为某个职位执行其中任何操作,请引导他们使用相应的技能命令。
步骤 8:从反馈中学习
如果用户提供反馈,请更新 DATA_DIR/preferences.md:
- “不要中介机构” → 添加到排除项
- “优先考虑 AI 公司” → 添加到优先项
- “最低薪资 $350k” → 更新薪资门槛
响应格式
面向用户的输出应包含以下部分:
- 最匹配项 — 使用表格或列表列出匹配度高/中等的职位,并包含公司、职位、匹配度评级、薪资、地点、人脉联系人和直接 URL
- 后续步骤 — 建议针对最匹配的职位调整简历并撰写求职信