Skip to main content
ClaudeWave
Skill374 repo starsupdated 5d ago

linkedin-job-search-skill

LinkedIn 岗位发现与匹配排序。根据用户给的一份种子 JD 和简历,提取目标岗位画像,自动生成多组 LinkedIn Jobs 搜索,采集、去重并按证据给岗位分层,最终输出可直接投递的 shortlist。用户说‘帮我找工作’、‘在 LinkedIn 搜适合我的岗位’、‘找相似职位’、‘根据简历推荐岗位’、‘job search’、‘find jobs like this’时必须使用。只搜索和推荐,不自动投递、不代替用户登录、不绕过验证码。

Install in Claude Code
Copy
git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill /tmp/linkedin-job-search-skill && cp -r /tmp/linkedin-job-search-skill/job-search-skill ~/.claude/skills/linkedin-job-search-skill
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# LinkedIn Job Search Skill

把「一份我喜欢的 JD + 我的简历」转成一份有证据、可行动的 LinkedIn 岗位 shortlist。

这个 skill 是 Offer Toolkit 的第 0 步:

```text
种子 JD + 简历 → 搜索画像 → LinkedIn 候选池 → 匹配排序 → shortlist
                                                        ↓
                                              Job Description Skill 深度解码
```

## 边界

- 只做岗位搜索、读取公开职位信息、去重、匹配排序和推荐。
- 永远不自动点击 Apply,不填写申请表,不发送消息,不代表用户投递。
- 永远不索取或处理 LinkedIn 密码、验证码、Cookie 或 session token。
- 遇到登录墙、验证码、频率限制或 robots 限制就停止该路径,不尝试绕过;改用公开搜索结果或输出可点击的 LinkedIn 查询链接。
- 岗位是否仍开放只能按搜索当时页面判断;报告必须写明搜索时间。

## 输入流程

### Step 1 · 收集种子 JD

先要一份用户真正感兴趣的 JD 链接或全文。它不是唯一目标,而是用来提取岗位语义:title、level、scope、domain、核心能力和排除项。

若用户没有种子 JD,接受 2-3 个目标 title + 一句方向描述作为降级输入,并标注「无种子 JD,搜索画像置信度较低」。

### Step 2 · 收集简历

接受 PDF、Word、纯文本或已结构化简历。只从用户提供的事实提取:

- 当前/最近 title 与大致 level
- 年限和最近 3 年的核心 scope
- 3-6 个有直接证据的能力
- 行业、产品阶段、客户类型和团队类型
- 地点、语言、签证等明确约束

不得把种子 JD 的要求写回用户画像,除非简历里有直接证据。

### Step 3 · 补齐硬筛选条件

只追问会显著改变结果集的缺失条件,并且一次只问一个:

1. 工作地点,以及是否接受 remote / hybrid / relocation
2. 目标 level 或可接受的上下浮动
3. 时间范围:24 小时 / 7 天 / 30 天
4. 必须排除的公司、行业、合同类型或签证条件

默认值:最近 7 天、full-time、目标 level 上下浮动一级。默认值必须在最终报告显式列出,不能静默假设。

## 搜索执行

### Step 4 · 生成搜索画像

先在内存中形成这份结构:

```yaml
target_titles: []       # 2-5 个,不堆同义词
level: ""
locations: []
workplace: []           # remote / hybrid / on-site
date_posted: "7d"
employment_types: []
core_capabilities: []   # 3-6 个,必须有简历证据
domains: []             # 0-3 个
company_preferences: []
exclusions: []
seed_signals: []        # 从种子 JD 提取,但不等同于简历能力
```

回显一段不超过 8 行的搜索画像供用户快速纠错。用户没有纠正就继续,不要求第二次确认。

### Step 5 · 构造查询矩阵

生成 6-10 组互补查询,而不是把所有词塞进一个 query:

1. **Exact title**:目标 title + 地点
2. **Adjacent title**:相邻 title + 地点
3. **Capability-led**:title + 1 个核心能力
4. **Domain-led**:title + 目标 domain
5. **Scope-led**:title + 0→1 / platform / enterprise / growth 等 scope 信号

每组查询只放 1-2 个判别词。过长查询会漏掉用词不同但实际匹配的岗位。

LinkedIn 查询 URL 使用公开 Jobs Search 参数;优先设置 keywords、location、date posted、workplace 和 employment type。记录每组实际执行的 query 与 URL。

### Step 6 · 采集候选池

使用浏览器打开 LinkedIn Jobs Search。逐组读取可见结果卡并采集:

- title
- company
- location / workplace
- canonical job URL 或 job id
- posted age
- salary(页面有才记)
- 卡片摘要或命中的关键词

按 canonical URL/job id 去重;没有 job id 时按 `company + normalized title + location` 去重。

停止条件取最先满足者:

- 已有 30 个唯一且通过硬条件的候选
- 每组查看前 2 页或前 25 条
- 页面要求登录、出现验证码或限制访问

不要为了凑满 30 个保留地点、level、岗位类型明显不符的结果。

若 LinkedIn 不可访问:

1. 使用公开 Web 搜索,限定 `site:linkedin.com/jobs/view`,执行同一查询矩阵;或
2. 输出查询矩阵的可点击 LinkedIn URL,让用户打开;
3. 明确标注本次未完成实时采集,不得伪造岗位。

### Step 7 · 两阶段评分

**快速筛选全部候选:**

- 硬条件通过/失败:地点、工作方式、employment type、明确签证门槛
- Title/level fit:0-30
- 核心能力关键词命中:0-30
- Domain/scope 相似度:0-20
- 新鲜度:0-10
- 用户偏好:0-10

只把快速筛选前 10 名带入深度评分。对这 10 个逐个打开职位页,读取可见的完整 JD;读不到完整 JD 的岗位可以保留,但必须标 `Description unavailable`,且最高只能进入 Tier B。

**深度评分前 10:** 读取 [frameworks/ranking-rubric.md](frameworks/ranking-rubric.md),逐条用简历证据对照 Must Have、Nice to Have 和 Hidden Signals。给区间,不给伪精确单点。

## 输出

默认输出一份 Markdown shortlist;除非用户明确要 HTML,不为一次搜索制造大型报告。

```markdown
# LinkedIn Job Shortlist — YYYY-MM-DD

## Search profile
[目标、地点、时间范围、默认假设]

## Best bets
| Tier | Match | Role | Company | Location | Posted | Why it fits | Main risk | Link |

## Worth a look
[Tier B 表格]

## Skipped patterns
[被批量排除的模式和原因,不逐条堆岗位]

## Search log
[执行过的 queries、采集时间、LinkedIn/公开搜索、访问限制]
```

分层规则:

- **Tier A · Apply first**:深度匹配区间下限 ≥ 70%,无未命中的门槛型 Must Have
- **Tier B · Review**:下限 55-69%,或 JD 不完整但快速评分强
- **Tier C · Skip**:下限 < 55%,或硬条件失败;不进入主表,只汇总排除原因

每个 Tier A 岗位必须给:

- 2 条来自简历的直接匹配证据
- 1 个招聘经理可能担心的风险
- 1 个下一步:直接投 / 先找内推 / 先补 portfolio / 交给 JD Skill 深度解码

最终推荐 5-10 个,不把 30 个搜索结果原样倾倒给用户。链接必须指向具体职位,不只链接搜索页。

## 与 Toolkit 的衔接

- 用户选中某个岗位后,把该 JD + 原简历交给 `job-description-skill` 生成完整 Offer Strategy Report。
- 用户决定投后,把目标 JD + 原简历交给 `resume-skill` 做定向简历。
- 不在本 skill 内复制完整 JD 报告或重写整份简历;岗位发现、岗位决策和简历制作是三个不同步骤。
offer-toolkit-skillSkill

求职工具包。把「找岗位 → 签 offer」拆成六个独立子 skill:⓪ Job Hunt 批量发现岗位,① Job Description 解码具体 JD,② Resume 定向简历,③ BQ 准备行为面试,④ Offer Compare 对比多份 offer,⑤ Salary Negotiation 谈 package。任何求职相关请求(找工作、该不该投、改简历、准备面试、选 offer、谈薪)都从这里进,再路由到对应子 skill。关键词:求职, offer, career, job hunt, LinkedIn jobs, JD, resume, CV, behavioral interview, BQ, STAR, offer compare, salary negotiation, 薪资谈判, 选 offer。

bq-skillSkill

行为面试 skill。帮求职者挖掘真实经历、用 STAR/CAR 结构化、映射能力标签、构建可复用的中英双语故事库(Story Bank);并能接入 JD + 简历,针对具体岗位生成 Top 20 BQ 选题 + 基于真实经历的 STAR 准备模板(HTML 报告)。不是背答案,而是建立可复用的职业叙事体系,让任何行为面试题都能自然作答。关键词:behavioral question, BQ, 行为面试, STAR, 故事库, Amazon LP, 职业故事, tell me about a time, 面试准备, JD 面试题预测, top 20 题。

job-description-skillSkill

Job Description 解码器 + Offer 策略系统。把任何 JD 翻译成「这家公司到底在招什么人 / 我的匹配度 / Gap 在哪 / 为什么投/不投 / 面试会问什么 / 下一步怎么走」。只有 3 步:贴 JD → 给简历 → 自动生成并打开一份 HTML Offer Strategy Report。是整个求职链路的入口,向下衔接 Resume Skill 和 BQ Skill。关键词:job description, JD, 职位描述, 匹配度, ATS, resume tailor, 简历定制, 招聘经理, 投不投, should I apply, 面试预测, offer strategy。

job-hunt-skillSkill

批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn 职位做成表格’、‘持续跟踪岗位’时必须使用。只发现和分析岗位;绝不自动申请、处理登录凭据或绕过访问限制。

offer-compare-skillSkill

Offer 对比决策器。用户同时拿到两份(或多份)offer 纠结怎么选时,扮演 Senior Career Decision Advisor:结构化对比 comp / 成长 / AI 敞口 / 公司强度 / 团队风险 / 晋升速度 / 生活方式,识别 front-loaded vs long-term upside、resume value、switch-out 难度、hidden risks,最后给一条**明确、有立场、不中性**的推荐(并附「你是 X 类人选 A,你是 Y 类人选 B」的分叉判定)。三步:贴两份 offer → 补 priorities & 现状 → 自动生成并打开一份 HTML Offer Decision Report。是 offer-toolkit 里 JD Skill / Resume Skill / BQ Skill 拿到结果之后的下一环。关键词:offer compare, 选 offer, 两个 offer, offer decision, TC compare, 该去哪家, which offer, 4-year TC, RSU, sign-on, front-loaded, long-term upside, career decision。

resume-skillSkill

简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 4 套模板:Classic/ATS 友好、Modern 侧栏、Elegant 衬线、Tech 紧凑。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板, resume template, LinkedIn 简历, 求职简历, ATS, 改简历, polish resume。

salary-negotiation-skillSkill

薪资谈判教练。模拟前 FAANG 招聘官 + 薪酬策略师,把「拿到 offer → 签字」这一步拆成 6 个动作:Offer 诊断(Base / RSU / Sign-on / Bonus 每项标 LOW/MED/HIGH leverage)→ 谈判杠杆图(我的力量 / 招聘官的力量 / 弱点)→ 策略排序(Base → RSU → Sign-on → Bonus,按 context 调整)→ 脚本生成(电话 / 邮件 / 招聘官回话模拟)→ Counter 模拟("这是最好的了" / "预算固定" / "会考虑其他候选人" 三种硬回答)→ 最终建议(要什么 / 别推什么 / 何时停)。三步:贴 offer → 说 context(有没有竞争 offer / deadline / 级别 / 风险偏好 / 最看重什么)→ 自动生成并打开一份 HTML Negotiation Playbook。关键词:salary negotiation, offer negotiation, comp negotiation, RSU, sign-on, base salary, counter offer, competing offer, TC, total comp, 薪资谈判, offer 谈判, 谈薪, 反 offer, 加薪, 谈 package, levels.fyi, 招聘官话术, recruiter script。