account-sourcing について
account-sourcing は求人の職種名と本文を使って、B2B の対象企業を探索・評価します。公開求人データから見込み企業を探すチーム向けで、根拠の検証とフィルタ理由の記録を重視します。
主な機能
- 01職種名と求人本文の語句検索
- 02検索結果の統合とドメイン単位の重複排除
- 03業界・名称・職種・地域による絞り込み
- 04採用シグナルに基づく企業評価とティア分け
- 05根拠となる抜粋の抽出と検証
- 06企業別 CSV と実行統計の出力
活用シーン
- 01インフラや SRE の採用企業を探す
- 02技術的負債やモダナイゼーションに言及する企業を特定
- 03リスト提出前に求人記述の根拠を目視確認
MCP 対応
Apify MCP で ATS の求人情報を取得し、その後 Python 3 のスクリプトで絞り込みと評価を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ victor-shulga/ outbound-engine-skills --skill account-sourcingインストール後、Claude Code で/account-sourcingを入力して読み込まれたか確認します。
同梱ファイルscripts/filter_score.py
詳細
求人シグナルからアカウントを発掘する
求人情報は、B2B における最も低コストで確かなシグナルです。「当社のアプリケーションは壮大なモノリスです」と公開する企業は、その発言に費用をかけており、後から撤回することはありません。
LinkedIn ではなく ATS アグリゲーターを使う理由
LinkedIn の求人スクレイピングで得られるのは職種名です。重要なのは求人の説明文です。そこに企業が自社の課題を記載しています。ATS プラットフォーム(Greenhouse、Ashby、Lever、Workday など)を横断して採用サイトをインデックス化し、以下を提供するアグリゲーターを使いましょう。
- 説明文内の全文検索
- 企業の従業員数フィルター
- 人材紹介会社を除外するフラグ
Apify では、実用的なアクターは fantastic-jobs/career-site-job-listing-api です(求人情報 1 件あたり約 $0.012)。Apify 以外の同等サービス:TheirStack、PredictLeads。
クエリの設計
クエリは 1 つではなく、2 つです。
クエリ A — 職種シグナル。 職種名のみ:プラットフォーム、インフラストラクチャ、SRE、DevOps。広く網をかけ、どの企業が不足を補う人員を採用しているかを把握します。
クエリ B — 使用言語シグナル。 幅広いエンジニアリング職種に加えて、descriptionSearch で legacy、monolith、technical debt、modernization、re-architect を検索します。絞り込まれており、各行には企業自身が説明する課題が記載されています。
クエリ B の価値はより高いです。両方を実行し、統合してドメインで重複を除去します。
必ず設定する項目:国、従業員数の範囲、フルタイム、人材紹介会社の除外、企業詳細の取得。
シグナルの半分を失う落とし穴
「募集中の求人すべて」モードでは新しい順に返され、上限で打ち切られます。300 件を指定すると、直近 1 週間分が返されます。その結果、139 日間募集が続いている求人は決して見つかりません。これは、対象の中で最も強い採用余力のシグナルです。
対策:合計結果数が上限を下回るまで、クエリを絞り込みます。 そうすれば、古い求人も含め、募集中の求人の滞留分全体が返されます。通常、職種名を絞り込み、説明文フィルターを追加すれば十分です。
フィルタリング — 3 分の 2 は除外される想定で進める
人材紹介会社フラグでは、実際に結果を汚染する対象を除外できません。明示的な除外処理を作成しましょう。
- 業種別 — IT サービスおよびコンサルティング、防衛、政府機関、高等教育、人材派遣、専門サービス、非営利団体
- 名称別 — 繰り返し見かける請負業者や持株会社を継続的に登録した拒否リスト
- 職種名別 — clearance、TS/SCI、polygraph を含むもの
- 地域別 — 本社が対象市場の外にあるもの
- 設立年別 — 設立から 3 年以内の企業には、近代化する対象がありません
このスキルの scripts/filter_score.py がこの処理を実装しています。リストを編集してください。リストの内容はニッチによって異なり、古くなっていく部分でもあります。
実行のたびに拒否リストを見直してください。 フィルタリングしすぎると、業種のラベルが誤っているだけの実在するプロダクト企業まで失うおそれがあります。一度、除外された行を差分で確認しましょう。
スコアリング
加算方式で、最大 135 点です。必ず分母を報告します。
40 base — cleared every filter
+25 problem language quoted in the posting body
+15 second engineering opening | +30 third and beyond
+20 posting open 60+ days | +10 open 30–59 days
+10 headcount inside the core band
+10 product in market 3+ years
ランク:A ≥ 95 · B 75–94 · C < 75。
空欄は平均点ではありません。 設立日がない企業は、何も示さないまま 10 点を失います。これは正しい扱いです。不明は問題なしという意味ではありません。ただし、どの行が上限の対象になったかを明記し、データ不足による低スコアが適合度の低さによるものと誤解されないようにしてください。
公開前に引用を確認する
legacy の正規表現検索では誤検出が起きます。ある実行で見つかった実例:「building a legendary legacy」や、マーケティングの前置きにある「access should not be limited by legacy systems」などです。引用のおよそ 7 件に 1 件はノイズです。
一致箇所の前後から 1 文を抽出し、260 文字を上限として proof_snippet 列に入れます。リストをエンリッチメントに回す前に、誰かがこの列を目視で確認します。1 アカウントあたり 10 秒です。
出力
CSV。企業ごとに 1 行:
rank · score · tier · company · domain · headcount · industry · founded · hq · open_roles · days_open · target_role · proof_snippet
併せて報告する項目:取得した生の行数、除外した行数とその理由、従業員数の中央値、設立年の中央値、検証済みの引用を含む企業数、合計費用。
必要条件
| インテグレーション | 用途 | 必須 |
|---|---|---|
| Apify MCP | ATS の採用サイトからの求人情報 | はい |
| Python 3 | フィルタリングとスコアリングのスクリプト | はい |
| BuiltWith / Wappalyzer | 技術スタックのシグナル、任意の第 2 パス | いいえ |