mcpField
J
job-search

job-search

github.com/infrasity-labs生産性15074 回インストール18 週間前に更新
リポジトリ

job-search について

job-searchは、ブラウザー自動化で日々の求人検索を行うスキルです。候補者の履歴書と希望条件に基づいて求人を評価し、履歴を記録して重複を避けながら、新たな高・中適合求人を提示します。

主な機能

  1. 01ブラウザーで求人を検索
  2. 02履歴書と希望条件に基づく求人評価
  3. 03重複防止のための求人履歴記録
  4. 04高適合求人の採用元URL確認
  5. 05結果とLinkedInの連絡先を照合

活用シーン

  1. 01希望条件に合う求人の検索
  2. 02過去の結果と重複しない新着求人の確認
  3. 03高適合求人の採用元ページの保存
  4. 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.md
job-history-init.md
matching-rules.md
references/
browser-setup.md
data-directory.md
fit-scoring.md
prerequisites.md
priority-hierarchy.md
scripts/
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(存在する場合。ネットワークとの照合に使用)

次から検索語を抽出します。

  1. 指定されている場合は $ARGUMENTS
  2. 希望条件に記載された対象職種
ステップ 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 で上位候補の雇用主の直接 URL を特定します。

ステップ 3:求人を評価する

references/fit-scoring.md の基準を使い、候補者の履歴書と希望条件に照らして各求人を採点します。

ステップ 4:履歴を保存する

すべての求人を DATA_DIR/job-history.md に追記します。

## [DATE] - Search: "[terms]"

| Job Title | Company | Location | Salary | Fit | Notes |
|-----------|---------|----------|--------|-----|-------|
| ... | ... | ... | ... | ... | ... |
ステップ 5:雇用主の URL を特定し、上位求人を保存する

適合度が高い求人ごとに、次の手順を実行します。

  1. hiring.cafe の求人一覧をクリックして、実際の雇用主の採用ページに移動します。
  2. 求人掲載ページの雇用主の直接 URL を記録します。
  3. javascript_tool を使って掲載内容を抽出し、求人の説明を取得します(例:document.querySelector('[class*="description"], [class*="content"], article, main')?.innerText)。get_page_text は使用しないでください。雇用主のページにはフッター、ナビゲーション、関連求人が大量に含まれていることが多く、出力が膨らんでコンテキストウィンドウを圧迫する可能性があります。
  4. 雇用主の URL を先頭に記載して、DATA_DIR/jobs/[company-slug]-[date]/posting.md に保存します。

適合度が中程度の求人については、雇用主の 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を更新します。

  • 「代理店は避けたい」→ dealbreakersに追加
  • 「AI企業を希望」→ nice-to-havesに追加
  • 「最低35万ドル」→ 給与の基準額を更新

回答形式

ユーザー向けの出力は、次のセクションで構成します。

  1. 上位の候補 — 企業名、職種、適合度、給与、勤務地、人脈のある連絡先、直接URLを含む、高または中程度の適合度の求人を表またはリストで提示します
  2. 次のステップ — 有力な候補に合わせて履歴書を調整し、カバーレターを作成することを提案します

コメント