mcpField
T
talent-sourcing

talent-sourcing

github.com/nimblewayその他6184 回インストール2 日前に更新
リポジトリ

talent-sourcing について

talent-sourcingは、Nimbleを利用して候補者を探す採用担当者向けスキルです。求人プラットフォームを検索し、プロフィールを抽出して、職務要件に沿って候補者を評価・順位付けします。

主な機能

  1. 01複数プラットフォームでの候補者検索
  2. 02プラットフォーム別Web Search Agentsの検出
  3. 03候補者プロフィールの詳細抽出
  4. 04候補者の適合度評価と順位付け
  5. 05過去に提示した候補者の記録

活用シーン

  1. 01職種やスキルに合う技術職候補者の発見
  2. 02指定地域での候補者探し
  3. 03求人要件に照らした候補者プロフィールの比較

MCP 対応

セッション開始時にCLIまたはMCPを選び、Nimbleを利用できます。利用可能な場合は、候補者検索プラットフォーム向けのWeb Search Agentsを検出して使用します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nimbleway/agent-skills --skill talent-sourcing

インストール後、Claude Code で/talent-sourcingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
memory-and-distribution.md
nimble-playbook.md
profile-and-onboarding.md

詳細

人材ソーシング

Nimble Web Search Agents を活用した候補者の発見。

ユーザーのリクエスト:$ARGUMENTS

コマンドを実行する前に、Claude Code の制約事項について references/nimble-playbook.md を読んでください(シェルの状態保持なし、&/wait の使用禁止、サブエージェントの権限、コミュニケーションスタイル)。


手順

ステップ 0:事前確認

references/nimble-playbook.md のトランスポート選択と標準の事前確認に従ってください。セッション開始時に CLI か MCP を選び、その後、標準の事前確認呼び出し(日付計算、今日の日付、プロフィール、メモリーインデックス)を並行して実行します。

同時に、以下も実行します。

  • mkdir -p ~/.nimble/memory/{reports,talent-sourcing}

結果に基づいて、以下のとおり進めます。

  • CLI が見つからない、または API キーが設定されていない → references/profile-and-onboarding.md を読み、停止します
  • すべての nimble CLI 呼び出しにタグを付けます:nimble --client-source nimble-agent-skills <subcommand>。MCP リクエストはトランスポートレベルで属性付けされます。詳細は references/nimble-playbook.md を参照してください。
  • プロフィールがある → 業界キーワードがあれば記録し、ステップ 1 に進みます
  • プロフィールがない → 問題ありません。人材ソーシングではオンボーディングは不要です。ステップ 1 に進みます
ステップ 1:リクエストを解析し、検索条件を確認する

$ARGUMENTS を解析し、以下を特定します。

  • 職種 — 職位または職能(例:「シニア React エンジニア」「営業責任者」)
  • 勤務地 — 都市、都市圏、地域、またはリモート(例:「ニューヨーク市」「米国全域でリモート」)
  • スキル/要件 — 具体的な技術、経験年数、専門分野
  • 職位レベル — ジュニア、ミッド、シニア、スタッフ、ディレクター、VP、C レベル
  • 検索元の希望 — 特定のプラットフォーム(LinkedIn、GitHub、Indeed など)または「すべて」

完全な職務記述書が貼り付けられている場合は、そこから上記の項目を抽出します。

職種が未指定または曖昧な場合は、AskUserQuestion で質問します。

「どの職種を採用予定ですか?勤務地も教えてください。(例:『シニア ML エンジニア、米国全域でリモート』 または職務記述書を貼り付けてください)」

条件が明確になったら、AskUserQuestion を使ってユーザーに確認します。

「検索条件:[職種] | 勤務地:[勤務地] | 主なスキル:[スキル] | 職位レベル:[職位レベル]

検索するプラットフォーム:LinkedIn、Indeed、GitHub(技術職の場合)、AngelList / Wellfound、専門コミュニティ。

  • 検索を開始
  • 先に条件を調整」
ステップ 2:WSA の検出

候補者ソーシング用プラットフォームで利用可能な Web Search Agent を検出します。以下を同時に実行します。

nimble extract:templates list --limit 100  # then filter items for "linkedin people"
nimble extract:templates list --limit 100  # then filter items for "indeed resume"
nimble extract:templates list --limit 100  # then filter items for "github profile"
nimble extract:templates list --limit 100  # then filter items for "wellfound talent"

結果を entity_type: SERP または entity_type: PDP で絞り込みます。 managed_by: "nimble" を優先します。有望なエージェントを以下の方法で検証します。

nimble extract:templates get --extract-template-name {name}

検出した WSA 名と必須パラメーターをキャッシュします。プラットフォームの WSA が見つからない場合は、そのプラットフォームについて nimble search にフォールバックします。

ステップ 3:候補者を並行検索する(サブエージェント)

mode: "bypassPermissions" を指定して nimble-researcher エージェント(agents/nimble-researcher.md)を起動します。同時実行は最大 4 つです。プラットフォームごとにエージェントを 1 つ割り当てます。

エージェント 1 — LinkedIn

職種の条件に合う人物を検索します。ブール演算子形式でクエリを組み立てます。

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 が検出されている場合は、職種名、勤務地、スキルキーワードを入力として使用します。

エージェント 2 — Indeed/履歴書

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

エージェント 3 — GitHub(技術職のみ)

技術職以外(例:営業、マーケティング、オペレーション)の場合、このエージェントはスキップします。

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

エージェント 4 — AngelList/Wellfound とコミュニティ

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

各エージェントは、候補者の氏名(取得可能な場合)、プロフィール URL、現職の役職、勤務地の抜粋、推定されるスキル、就業可能性を示す情報(「就業先を探している」「求職中」「就業可能」など。取得可能な場合はイベントの日付を含む)、および情報源の URL を返します。

ステップ 4:詳細プロフィールの抽出

ステップ 3 で特定した有力候補者について(すべてのプラットフォームを合わせて、 プロフィール数は 10~20 件を目指します)、プロフィールの詳細をすべて抽出します。すべての抽出を同時に実行します。

nimble extract --url "[profile-url]" --format markdown

抽出した各プロフィールから、以下の情報を取得します。

  • 氏名
  • 現在の役職と会社
  • 所在地
  • スキル/技術スタック
  • 職歴の概要(年数、主な勤務先)
  • 学歴
  • 就業可能性を示す情報(求職中、最近の転職、投稿状況)
  • 連絡先を示す情報(メールアドレス、個人サイト、GitHub のハンドル名)

抽出に失敗した場合は、references/nimble-playbook.md のフォールバックパターンに従います。プロフィールがログインページの先にあり、抽出に失敗した場合は、検索スニペットの概要をそのまま使用してください。候補者を除外しないでください。

**抽出件数の上限:**プロフィールは最大 15 件まで抽出します。ステップ 3 で候補者が 15 人を超えて見つかった場合は、抽出前に関連度スコア(役職の適合度+スキルの重複度+所在地の適合度)で優先順位を付けます。

ステップ 5:候補者の評価と順位付け

以下の加重シグナルを使って、各候補者を 1~10 点で評価します。

シグナル重み
役職/職名の適合度30%
要件とのスキルの重複度30%
所在地の適合度20%
シニアリティの適合度10%
就業可能性を示す情報10%

候補者を以下の階層に分類します。

  • **Tier 1(高い適合度、7~10):**必須シグナルがすべてそろっている
  • **Tier 2(部分的な適合度、4~6):**ほとんどのシグナルがそろっており、1~2 点の不足がある
  • **Tier 3(可能性あり、1~3):**Tier 1/2 の候補者が少ない場合は検討する価値がある
ステップ 6:出力

結果を提示する前に、~/.nimble/memory/talent-sourcing/[role-slug].md を確認してください。以前の実行で候補者が挙がっていた場合は、新規候補者として再提示するのではなく、(previously surfaced) と記してください。

構造化された候補者レポートを提示します。

## 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]

---

### Tier 1 — Strong Match

#### 1. [Name] — [Score]/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]

...

---

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

情報が得られない項目は省略します。詳細を捏造せず、不明な項目には "unknown" と記してください。Tier 1 の各候補者について、**「この候補者を選んだ理由」**を一文で追加します。

ステップ 7:メモリーに保存

すべての Write 呼び出しを同時に実行します。

  • レポート → ~/.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 更新パターンに従ってください。

ステップ 8:共有と配布

**必ず配布を提案してください。このステップを省略しないでください。**コネクターの検出、共有の流れ、ソースリンクの適用については、references/memory-and-distribution.md に従ってください。

ステップ 9:フォローアップ

AskUserQuestion を使って、次のステップを提案します。

次は何をしますか?

  • 候補者を詳しく調べる — プロフィール全体を抽出し、連絡先情報を探す
  • 検索範囲を広げる — 所在地を広げ、シニアリティの条件を緩和し、他のプラットフォームも試す
  • 検索範囲を絞る — 必須スキルを追加するか、所在地の条件を厳しくする
  • リストをエクスポートする — CSV または書式付きドキュメントとして保存する
  • 完了

関連スキルの提案:

  • 候補者の現在の勤務先について company-deep-dive を実行し、取引に関する背景情報を得る
  • Tier 1 の候補者に連絡する前に meeting-prep を実行する

エラー処理

標準的なエラー表については、references/nimble-playbook.md を参照してください。このスキル固有の処理は以下のとおりです。

  • **プロフィールがログインページの先にある場合:**検索スニペットの概要を使用し、候補者の項目に「完全なプロフィールは利用できません。LinkedIn/Indeed へのログインが必要です」と記します。
  • **候補者が合計 5 人未満の場合:**ユーザーに通知し、所在地をリモートに広げるか、シニアリティの条件を緩和するよう提案してから、条件を調整して再実行するかを尋ねます。
  • **プラットフォームで検索時に 500 エラーが発生した場合:**クエリを簡略化して 1 回再試行します。それでも失敗する場合は、そのプラットフォームをスキップし、レポートのヘッダーに記します。
  • **技術系以外の職種で GitHub エージェントをスキップした場合:**レポートのヘッダーに「この職種では GitHub を検索していません」と記します。

コメント