job-posting-intent について
採用活動から購買意向の可能性がある企業を見つけるマーケティングスキルです。Apify経由でLinkedIn Jobsを検索し、求人を企業ごとにまとめ、意思決定者の候補や営業向け情報とともにGoogle Sheetsへ出力します。
主な機能
- 01職種と地域を指定したLinkedIn Jobs検索
- 02企業ごとの重複排除とシグナル評価
- 03求人説明から個別化の材料を抽出
- 04意思決定者の役職と営業角度を提案
- 05Google Sheetの自動作成
活用シーン
- 01対象課題に投資中の企業を発見
- 02職種や地域別の求人情報を調査
- 03採用シグナルから営業リードを作成
- 04営業連絡に向けた個別化情報を準備
MCP 対応
Google Sheetsの作成にRube MCPとComposioを使用します。シート作成に失敗した場合は、Rube MCPへのアクセス確認が案内されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gooseworks-ai/ goose-skills --skill job-posting-intentインストール後、Claude Code で/job-posting-intentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.meta.jsonscripts/create_sheet_mcp.pycreate_sheet.pysearch_jobs.py詳細
求人情報から採用意図を検出
解決しようとしている課題に関連する職種を採用している企業を見つけます。求人情報は予算のシグナルです。つまり、その企業は、あなたの製品が解決する課題に取り組むための予算を割り当てています。
シグナルの強さ、意思決定者の候補、アプローチの切り口、パーソナライズに役立つ情報を含む結果が、Google Sheetに自動でエクスポートされます。
効果がある理由
企業が求人を掲載すると、その企業は次のことを行っています。
- 予算を割り当てています(人件費は高額です)
- 課題が存在することを認識しています
- 積極的に解決に取り組み始めています
あなたの製品が、その課題を採用だけの場合より迅速に、低コストで、または効果的に解決できるのであれば、最適なタイミングです。
費用
Apify Actor: harvestapi/linkedin-job-search(イベントごとの従量課金)
| 構成要素 | 費用 |
|---|---|
| Actor の起動(1 回あたり) | $0.001 |
| 求人結果 1 件あたり | $0.001 |
| Apify プラットフォーム手数料 | +20% |
一般的な実行時の費用:
| シナリオ | 職種名 | 職種名あたりの求人件数 | 実行回数 | 推定費用 |
|---|---|---|---|---|
| クイックスキャン | 3 | 25 | 3 | ~$0.09 |
| 標準 | 5 | 25 | 5 | ~$0.16 |
| 詳細検索 | 5 | 100 | 5 | ~$0.60 |
| 複数の地域 | 5×3 | 25 | 15 | ~$0.47 |
Google Sheet の作成は無料です(Rube/Composio 連携を使用します)。
実行する前に、必ず --estimate-only を実行して Apify の費用を確認してください。
使用状況の確認:https://console.apify.com/billing
セットアップ
1. Apify API トークン
# Get your token at https://console.apify.com/account/integrations
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"
2. 依存関係をインストールする
pip3 install requests
3. Rube/Composio(Google Sheets 用)
Google Sheet の作成には、Composio と連携した Rube MCP を使用します。トークンは事前に設定されています。
動作しなくなった場合は、RUBE_TOKEN 環境変数、または search_jobs.py のデフォルト値を更新してください。
使用方法
ステップ 1:ICP と対象の職種名を定義する
次のように考えてください。「企業が[職種]を採用しているなら、[あなたが解決する課題領域]に投資しているということです。」
例:
- GTM エージェンシー:「Growth Marketing Manager」、「SDR Manager」、「RevOps Engineer」、「GTM Engineer」
- AI 開発ツール:「AI Engineer」、「ML Ops Engineer」、「Prompt Engineer」、「LLM Engineer」
- 営業自動化:「SDR」、「BDR Manager」、「Sales Ops」、「Revenue Operations」
ステップ 2:費用を見積もる
python3 scripts/search_jobs.py \
--titles "GTM Engineer,SDR Manager,Head of Demand Gen" \
--locations "United States" \
--max-per-title 25 \
--estimate-only
ステップ 3:検索を実行する
このスクリプトは LinkedIn Jobs を検索し、結果を企業ごとにグループ化して見込み顧客を評価し、Google Sheet を自動で作成します。
# Standard search (creates Google Sheet)
python3 scripts/search_jobs.py \
--titles "GTM Engineer,SDR Manager,RevOps Engineer" \
--locations "United States" \
--max-per-title 25
# Deep search with custom sheet name
python3 scripts/search_jobs.py \
--titles "AI Engineer,ML Ops Engineer,Prompt Engineer" \
--locations "United States" \
--max-per-title 50 \
--sheet-name "AI Hiring Signals - Feb 2026"
# Filter results to only relevant titles (LinkedIn search is fuzzy)
python3 scripts/search_jobs.py \
--titles "GTM Engineer,Growth Marketing Manager,SDR Manager" \
--locations "United States" \
--relevance-keywords "gtm,growth,sdr,marketing,demand gen,revops"
# Also save raw JSON alongside the sheet
python3 scripts/search_jobs.py \
--titles "GTM Engineer,SDR Manager" \
--locations "United States" \
--output results.json
# Skip Google Sheet, console + JSON only
python3 scripts/search_jobs.py \
--titles "GTM Engineer" \
--no-sheet --json
スクリプトの動作
- Apify を介して、職種名と地域の各組み合わせについて LinkedIn Jobs を検索します
- 結果を企業ごとにグループ化します(重複を除去)
- 関連する求人情報の件数と職位に基づいて、シグナルの強さを算出します
- 求人情報の説明から、パーソナライズに役立つ情報(技術スタック、成長のシグナル、課題)を抽出します
- 意思決定者となる役職(採用する職種より 1 つ上の階層)を提案します
- アプローチの切り口(採用を加速/代替/補完)を提案します
- 評価対象となった見込み顧客をすべて含む Google Sheet を作成します
- 見つかった企業の概要をコンソールに出力します
オプションリファレンス
Required:
--titles Comma-separated job titles to search
Optional:
--locations Comma-separated locations (default: no filter)
--max-per-title Max jobs per title per location (default: 25)
--posted-limit Recency: 1h, 24h, week, month (default: week)
--output, -o Also save raw JSON to this file path
--json Print JSON output to console
--estimate-only Show cost estimate without running
--no-sheet Skip Google Sheet creation
--sheet-name Custom Google Sheet title (default: "Job Posting Intent Signals - {date}")
--relevance-keywords Comma-separated keywords to filter truly relevant postings
Google Sheet の列
| 列 | 説明 |
|---|---|
| シグナル | 求人掲載数と職位に基づく HIGH / MEDIUM / LOW |
| 企業 | 企業名 |
| 従業員数 | 従業員数 |
| 業界 | 企業の業界 |
| Web サイト | 企業の Web サイト |
| 企業の LinkedIn URL | |
| 求人掲載数 | 該当する求人情報の件数 |
| 職種名 | 実際に掲載されている職種名 |
| 求人 URL | 主な求人情報へのリンク |
| 地域 | 勤務地 |
| 意思決定者 | 連絡先として提案される人物の役職 |
| アプローチの切り口 | 採用を加速/代替/補完 |
| 技術スタック | 求人情報の説明に記載されたテクノロジー |
| 成長のシグナル | 成長を示す指標(初採用、事業拡大、シリーズの段階) |
| 課題 | 課題を示す指標(自動化、最適化、手作業のプロセス) |
| 説明 | 企業の説明の抜粋 |
AI エージェントとの連携
このスキルをエージェントとして使用する場合、一般的な流れは次のとおりです。
- ユーザーが自社の製品と、購入意欲を示す役職の種類を説明します
- エージェントが
--estimate-onlyを実行し、ユーザーに費用を確認します - エージェントが検索を実行します(Google Sheet は自動的に作成されます)
- エージェントが Google Sheet のリンクをユーザーに共有します
- エージェントが有望なリードの概要と、条件に合う理由を簡潔に説明します
プロンプトの例:
「今週、米国でグロースマーケターと SDR を募集している企業を見つけてください。これらは、GTM 支援が必要であることを示すシグナルです。当社は従業員数 20~200 人のシリーズ A~C の B2B SaaS 企業向けに、AI を活用した GTM システムを販売しています。」
エージェントがしてはならないこと:
- アウトリーチを行う
- メールやメッセージを送信する
- 誰かに連絡する
エージェントが行うべきこと:
- 実行前に費用の見積もりを提示する
- 検索を実行する(シートは自動的に作成されます)
- Google Sheet のリンクを共有する
- 有望なリードの概要と、その判断理由を簡潔に説明する
アウトリーチの切り口のテンプレート
このスクリプトは、求人情報の文脈に基づいて切り口を自動で割り当てます。
「採用しながら加速する」 — 最適なケース:求人情報が最近掲載された、役職がジュニアまたは中堅
相手は X を担当する人材を探しています。採用した人が業務に慣れるまでの間、あなたの製品が X の成果を提供できます。
「採用を置き換える」 — 最適なケース:小規模な企業、「初めての採用」を示すシグナルがある、ゼロから構築している
相手は [role] の成果を求めていますが、あなたの製品を使えば、フルタイムの人材は必要ないかもしれません。
「採用した人材の力を倍増させる」 — 最適なケース:企業が明らかに拡大中、関連する役職を複数募集している
新たに採用した人材が働き始めると、あなたの製品により初日から生産性が 10 倍になります。
トラブルシューティング
「求人が見つかりません」
- より広い職種名を試します(例:「demand generation specialist」ではなく「marketing」)
- 対象期間を延長します:
--posted-limit month - 場所のフィルターを外して、全世界を検索します
「無関係な結果が多すぎます」
--relevance-keywordsを使って、職種名のキーワードで絞り込みます- LinkedIn の検索はあいまいです。グループ化と適格性の判定で結果を絞り込めます
「Google Sheet の作成に失敗しました」
- Rube MCP にアクセスできることを確認します(トークンの有効期限が切れている可能性があります)
--no-sheet --json --output results.jsonを使うと、シートを作成せずに結果を保存できます- 後から
scripts/create_sheet_mcp.pyでシートを作成できます
費用の見積もりが高い場合
--max-per-titleの値を小さくします(通常は 25 で十分です)- 検索する職種名を減らします
- 日次で簡単に確認する場合は
--posted-limit 24hを使います