talent-sourcing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Talent Sourcing

人才寻访

Candidate discovery powered by Nimble Web Search Agents.
User request: $ARGUMENTS
Before running any commands, read
references/nimble-playbook.md
for Claude Code constraints (no shell state, no
&
/
wait
, sub-agent permissions, communication style).

由Nimble Web Search Agents驱动的候选人发掘。
用户请求:$ARGUMENTS
运行任何命令前,请阅读
references/nimble-playbook.md
了解Claude Code的约束条件(无shell状态、禁止使用
&
/
wait
、子Agent权限、沟通风格)。

Instructions

操作说明

Step 0: Preflight

步骤0:预检

Run the preflight pattern from
references/nimble-playbook.md
(5 simultaneous Bash calls: date calc, today, CLI check, profile load, index.md load).
Also simultaneously:
  • mkdir -p ~/.nimble/memory/{reports,talent-sourcing}
From the results:
  • CLI missing or API key unset → read
    references/profile-and-onboarding.md
    , stop
  • Profile exists → note industry keywords if any; proceed to Step 1
  • No profile → fine, talent-sourcing doesn't require onboarding; proceed to Step 1
执行
references/nimble-playbook.md
中的预检流程(同时进行5次Bash调用:日期计算、今日日期、CLI检查、配置文件加载、index.md加载)。
同时执行:
  • mkdir -p ~/.nimble/memory/{reports,talent-sourcing}
根据结果处理:
  • CLI缺失或API密钥未设置 → 阅读
    references/profile-and-onboarding.md
    ,停止操作
  • 配置文件存在 → 记录行业关键词(如有);进入步骤1
  • 无配置文件 → 无需问题,人才寻访无需初始化;进入步骤1

Step 1: Parse Request & Confirm Search Parameters

步骤1:解析请求并确认搜索参数

Parse
$ARGUMENTS
for:
  • Role — job title or function (e.g. "Senior React Engineer", "Head of Sales")
  • Location — city, metro, region, or remote (e.g. "New York City", "remote US")
  • Skills / requirements — specific technologies, years of experience, domain expertise
  • Seniority — junior, mid, senior, staff, director, VP, C-level
  • Source preference — specific platforms (LinkedIn, GitHub, Indeed, etc.) or "all"
If a full job description was pasted, extract the above fields from it.
If role is missing or ambiguous, ask with
AskUserQuestion
:
"What role are you hiring for, and where? (e.g. 'Senior ML Engineer, remote US' or paste a job description)"
Once parameters are clear, confirm with the user using
AskUserQuestion
:
"Searching for: [Role] | Location: [Location] | Key skills: [Skills] | Seniority: [Seniority]
Platforms to search: LinkedIn, Indeed, GitHub (for technical roles), AngelList / Wellfound, and professional communities.
  • Start search
  • Adjust parameters first"
$ARGUMENTS
中解析以下信息:
  • 岗位 — 职位名称或职能(例如“Senior React Engineer”、“Head of Sales”)
  • 地点 — 城市、都市圈、地区或远程(例如“New York City”、“remote US”)
  • 技能/要求 — 特定技术、工作年限、领域专业知识
  • 资历 — 初级、中级、高级、资深、主管、副总裁、高管
  • 来源偏好 — 指定平台(LinkedIn、GitHub、Indeed等)或“全部”
若用户粘贴了完整职位描述,从中提取上述字段。
岗位信息缺失或模糊,使用
AskUserQuestion
询问:
"您要招聘什么岗位,地点在哪里?(例如'Senior ML Engineer, remote US',或粘贴职位描述)"
参数明确后,使用
AskUserQuestion
与用户确认:
"搜索条件:[岗位] | 地点:[地点] | 核心技能:[技能] | 资历:[资历]
搜索平台:LinkedIn、Indeed、GitHub(技术岗位)、AngelList / Wellfound及专业社区。
  • 开始搜索
  • 先调整参数"

Step 2: WSA Discovery

步骤2:Web Search Agent(WSA)发现

Discover available Web Search Agents for candidate-sourcing platforms. Run simultaneously:
bash
nimble agent list --search "linkedin people" --limit 20
nimble agent list --search "indeed resume" --limit 20
nimble agent list --search "github profile" --limit 20
nimble agent list --search "wellfound talent" --limit 20
Filter results for
entity_type: SERP
or
entity_type: PDP
. Prefer
managed_by: "nimble"
. Validate promising agents with:
bash
nimble agent get --template-name {name}
Cache discovered WSA names and required params. If no WSAs found for a platform, fall back to
nimble search
for that platform.
寻找适用于候选人挖掘平台的Web Search Agent。同时执行:
bash
nimble agent list --search "linkedin people" --limit 20
nimble agent list --search "indeed resume" --limit 20
nimble agent list --search "github profile" --limit 20
nimble agent list --search "wellfound talent" --limit 20
筛选
entity_type: SERP
entity_type: PDP
的结果。优先选择
managed_by: "nimble"
的Agent。通过以下命令验证候选Agent:
bash
nimble agent get --template-name {name}
缓存已发现的WSA名称及所需参数。若某平台未找到WSA, fallback至
nimble search
进行搜索。

Step 3: Parallel Candidate Search (Sub-Agents)

步骤3:并行候选人搜索(子Agent)

Spawn
nimble-researcher
agents (
agents/nimble-researcher.md
) with
mode: "bypassPermissions"
, max 4 concurrent. Assign one agent per platform:
Agent 1 — LinkedIn
Search for people matching the role criteria. Use Boolean-style query construction:
bash
nimble search --query "site:linkedin.com/in [Role] [Location] [Key Skills]" \
  --max-results 15 --search-depth fast
nimble search --query "[Role] [Location] linkedin profile [Skill1] [Skill2]" \
  --max-results 10 --search-depth fast
If a LinkedIn WSA was discovered in Step 2, use it instead with the role title, location, and skill keywords as inputs.
Agent 2 — Indeed / Resumes
bash
nimble search --query "site:indeed.com resume [Role] [Location] [Key Skills]" \
  --max-results 10 --search-depth fast
nimble search --query "[Role] resume [Location] [Key Skills]" \
  --max-results 10 --search-depth fast
Agent 3 — GitHub (technical roles only)
Skip this agent for non-technical roles (e.g. Sales, Marketing, Operations).
bash
nimble search --query "site:github.com [Role] [Location] [Key Skills]" \
  --max-results 10 --search-depth fast
nimble search --query "github [Key Skills] developer [Location] open to work" \
  --max-results 10 --search-depth fast
Agent 4 — AngelList / Wellfound + Communities
bash
nimble search --query "site:wellfound.com [Role] [Location] [Key Skills]" \
  --max-results 10 --search-depth fast
nimble search --query "[Role] [Location] open to work OR seeking opportunities \
  [Key Skills]" --max-results 10 --search-depth fast
Each agent returns: candidate name (if available), profile URL, current title, location snippet, inferred skills, availability signals ("open to work", "seeking", "available") with event date (if available) and source URL.
启动
nimble-researcher
Agent(
agents/nimble-researcher.md
),设置
mode: "bypassPermissions"
,最多同时运行4个。为每个平台分配一个Agent:
Agent 1 — LinkedIn
搜索匹配岗位条件的人员。使用布尔式查询构造:
bash
nimble search --query "site:linkedin.com/in [Role] [Location] [Key Skills]" \\
  --max-results 15 --search-depth fast
nimble search --query "[Role] [Location] linkedin profile [Skill1] [Skill2]" \\
  --max-results 10 --search-depth fast
若步骤2中发现LinkedIn WSA,改用该Agent,输入岗位名称、地点和技能关键词。
Agent 2 — Indeed / 简历
bash
nimble search --query "site:indeed.com resume [Role] [Location] [Key Skills]" \\
  --max-results 10 --search-depth fast
nimble search --query "[Role] resume [Location] [Key Skills]" \\
  --max-results 10 --search-depth fast
Agent 3 — GitHub(仅限技术岗位)
非技术岗位(例如销售、营销、运营)跳过此Agent。
bash
nimble search --query "site:github.com [Role] [Location] [Key Skills]" \\
  --max-results 10 --search-depth fast
nimble search --query "github [Key Skills] developer [Location] open to work" \\
  --max-results 10 --search-depth fast
Agent 4 — AngelList / Wellfound + 社区
bash
nimble search --query "site:wellfound.com [Role] [Location] [Key Skills]" \\
  --max-results 10 --search-depth fast
nimble search --query "[Role] [Location] open to work OR seeking opportunities \\
  [Key Skills]" --max-results 10 --search-depth fast
每个Agent返回:候选人姓名(若可用)、资料URL、当前职位、地点片段、推断技能、求职意向信号(“open to work”、“seeking”、“available”)及事件日期(若可用)和来源URL。

Step 4: Deep Profile Extraction

步骤4:深度资料提取

For the top candidates identified in Step 3 (aim for 10–20 unique profiles across all platforms), extract full profile details. Run all extractions simultaneously:
bash
nimble extract --url "[profile-url]" --format markdown
From each extracted profile, pull:
  • Full name
  • Current role & company
  • Location
  • Skills / tech stack
  • Experience summary (years, notable employers)
  • Education
  • Availability signals (open to work, recent job change, posting activity)
  • Contact signals (email, personal site, GitHub handle)
For extraction failures, follow the fallback pattern in
references/nimble-playbook.md
. If a profile is behind a login wall and extraction fails, keep the search-snippet summary instead — do not skip the candidate.
Extraction budget: extract up to 15 profiles. If more than 15 candidates were found in Step 3, prioritize by relevance score (seniority match + skill overlap + location match) before extracting.
针对步骤3中识别出的顶尖候选人(所有平台共10–20个独特资料),提取完整详情。同时执行所有提取操作:
bash
nimble extract --url "[profile-url]" --format markdown
从每个提取的资料中获取:
  • 全名
  • 当前岗位及公司
  • 地点
  • 技能/技术栈
  • 经验总结(工作年限、知名雇主)
  • 教育背景
  • 求职意向信号(开放求职、近期换工作、发布动态)
  • 联系信号(邮箱、个人网站、GitHub账号)
提取失败时,遵循
references/nimble-playbook.md
中的 fallback流程。若资料需登录查看导致提取失败,保留搜索片段摘要——请勿跳过该候选人。
**提取预算:**最多提取15份资料。若步骤3中找到超过15位候选人,按相关性得分(资历匹配+技能重叠+地点匹配)优先提取。

Step 5: Score & Rank Candidates

步骤5:候选人评分与排名

Score each candidate (1–10) using these weighted signals:
SignalWeight
Role / title match30%
Skill overlap with requirements30%
Location match20%
Seniority match10%
Availability signals10%
Group candidates into tiers:
  • Tier 1 (Strong match, 7–10): All required signals present
  • Tier 2 (Partial match, 4–6): Most signals present, 1–2 gaps
  • Tier 3 (Stretch, 1–3): Worth reviewing if Tier 1/2 list is thin
使用以下加权信号为每位候选人评分(1–10分):
信号权重
岗位/职位匹配30%
技能与要求匹配度30%
地点匹配20%
资历匹配10%
求职意向信号10%
将候选人分为三个层级:
  • **Tier 1(高度匹配,7–10分):**满足所有核心信号
  • **Tier 2(部分匹配,4–6分):**满足大部分信号,存在1–2个缺口
  • **Tier 3(潜力候选人,1–3分):**若Tier 1/2候选人数量不足,值得考虑

Step 6: Output

步骤6:输出结果

Before presenting results, check
~/.nimble/memory/talent-sourcing/[role-slug].md
— if a candidate was surfaced in a prior run, mark them
(previously surfaced)
rather than re-presenting them as new.
Present a structured candidate report:
undefined
展示结果前,检查
~/.nimble/memory/talent-sourcing/[role-slug].md
——若某候选人在之前的搜索中出现过,标记为
(previously surfaced)
,而非作为新候选人展示。
呈现结构化候选人报告:
undefined

Candidate Report: [Role] in [Location]

候选人报告:[岗位] - [地点]

Searched: LinkedIn, Indeed, GitHub, Wellfound Found: [N] candidates | Tier 1: [N] | Tier 2: [N] | Tier 3: [N]
TL;DR: [2-3 sentence summary of the strongest candidates and any notable patterns]

搜索平台:LinkedIn、Indeed、GitHub、Wellfound 共找到:[N]位候选人 | Tier 1:[N] | Tier 2:[N] | Tier 3:[N]
摘要:[2-3句话总结顶尖候选人及显著规律]

Tier 1 — Strong Match

Tier 1 — 高度匹配

1. [Name] — [Score]/10

1. [姓名] — [得分]/10

  • Current role: [Title] at [Company]
  • Location: [Location]
  • Skills: [Skill1], [Skill2], [Skill3]
  • Experience: [X years, notable employers]
  • Availability: [signal] — [event date or "date unknown"] — [source URL]
  • Profile: [URL]
  • Contact signals: [email / personal site / GitHub]
...

  • 当前岗位:[职位] @ [公司]
  • 地点:[地点]
  • 技能:[技能1]、[技能2]、[技能3]
  • 经验:[X年工作经验,知名雇主]
  • 求职意向:[信号] — [事件日期或“日期未知”] — [来源URL]
  • 资料链接:[URL]
  • 联系信息:[邮箱 / 个人网站 / GitHub]
...

What This Means

结果解读

[1-2 sentences on hiring outlook: supply/demand signal, speed recommendation, any standout sourcing channel]

Omit fields where data is unavailable. Do not fabricate details — use "unknown"
for missing fields. Add a one-sentence **"Why this candidate"** note for each
Tier 1 result.
[1-2句话分析招聘前景:供需信号、推荐推进速度、突出的招聘渠道]

省略无数据的字段。请勿编造信息——缺失字段使用“未知”。为每位Tier 1候选人添加一句**“推荐理由”**。

Step 7: Save to Memory

步骤7:保存至内存

Make all Write calls simultaneously:
  • Report →
    ~/.nimble/memory/reports/talent-sourcing-{YYYY-MM-DD}.md
    (full candidate report with all tiers)
  • Per-role →
    ~/.nimble/memory/talent-sourcing/[role-slug].md
    (candidate list; write or update)
  • Profile → update
    last_runs.talent-sourcing
    in
    ~/.nimble/business-profile.json
    using the python3 snippet in
    references/profile-and-onboarding.md
    . Skip if the file does not exist.
Update
~/.nimble/memory/talent-sourcing/index.md
with a row for this search. Follow the wiki update pattern from
references/memory-and-distribution.md
.
同时执行所有写入操作:
  • 报告 →
    ~/.nimble/memory/reports/talent-sourcing-{YYYY-MM-DD}.md
    (包含所有层级的完整候选人报告)
  • 按岗位分类 →
    ~/.nimble/memory/talent-sourcing/[role-slug].md
    (候选人列表;写入或更新)
  • 配置文件 → 使用
    references/profile-and-onboarding.md
    中的python3代码片段,更新
    ~/.nimble/business-profile.json
    中的
    last_runs.talent-sourcing
    。若文件不存在则跳过。
更新
~/.nimble/memory/talent-sourcing/index.md
,添加本次搜索记录。遵循
references/memory-and-distribution.md
中的 wiki 更新流程。

Step 8: Share & Distribute

步骤8:分享与分发

Always offer distribution — do not skip this step. Follow
references/memory-and-distribution.md
for connector detection, sharing flow, and source links enforcement.
**必须提供分发选项——请勿跳过此步骤。**遵循
references/memory-and-distribution.md
中的连接器检测、分享流程及来源链接要求。

Step 9: Follow-ups

步骤9:后续操作

Offer next steps using
AskUserQuestion
:
What's next?
  • Go deeper on a candidate — extract full profile + find contact info
  • Expand search — broaden location, relax seniority, try more platforms
  • Narrow search — add a required skill or tighten location
  • Export list — save as CSV or formatted doc
  • Done
Sibling skill suggestions:
  • Run
    company-deep-dive
    on a candidate's current employer for deal context
  • Run
    meeting-prep
    before reaching out to a Tier 1 candidate

使用
AskUserQuestion
提供后续选项:
下一步操作?
  • 深入了解某候选人 — 提取完整资料+查找联系方式
  • 扩大搜索范围 — 放宽地点限制、降低资历要求、尝试更多平台
  • 缩小搜索范围 — 添加必备技能或收紧地点限制
  • 导出列表 — 保存为CSV或格式化文档
  • 完成
关联技能推荐:
  • 对候选人当前雇主运行
    company-deep-dive
    获取背景信息
  • 联系Tier 1候选人前运行
    meeting-prep
    做准备

Error Handling

错误处理

See
references/nimble-playbook.md
for the standard error table. Skill-specific handling:
  • Profile behind login wall: Keep search-snippet summary; note "full profile unavailable — LinkedIn/Indeed login required" in the candidate entry.
  • < 5 total candidates found: Notify the user, suggest broadening location to remote or relaxing seniority, then ask whether to re-run with adjusted params.
  • Search 500 on a platform: Retry once with a simplified query; if still failing, skip that platform and note it in the report header.
  • GitHub agent skipped for non-technical role: Note "GitHub not searched for this role type" in the report header.
标准错误处理请见
references/nimble-playbook.md
中的错误表。本技能专属处理规则:
  • **资料需登录查看:**保留搜索片段摘要;在候选人条目中标注“完整资料不可用——需登录LinkedIn/Indeed查看”。
  • **找到的候选人不足5位:**通知用户,建议放宽地点至远程或降低资历要求,询问是否调整参数后重新搜索。
  • **某平台搜索返回500错误:**使用简化查询重试一次;若仍失败,跳过该平台并在报告头部注明。
  • **非技术岗位跳过GitHub Agent:**在报告头部注明“此岗位类型未搜索GitHub”。",