mcpField
C
competitor-post-engagers

competitor-post-engagers

github.com/gooseworks-aiマーケティング・グロース1.3k50 回インストール3 日前に更新
リポジトリ

competitor-post-engagers について

競合企業のLinkedIn投稿への反応を分析し、ICP適合度で分類するリード獲得スキルです。最近の投稿を順位付けしてリアクションやコメントをした人を抽出し、Apolloで企業情報を補完してCSVに出力できます。

主な機能

  1. 01LinkedIn企業投稿と反応者を取得
  2. 02反応数で最近の投稿を順位付け
  3. 03ICP適合度でリードを採点・分類
  4. 04Apolloで企業情報を補完
  5. 05リード情報をCSVに出力

活用シーン

  1. 01競合コンテンツに反応した見込み客を探す
  2. 02コメント投稿者や職種が合うリードを優先
  3. 03業種や規模でリード企業を確認
  4. 04投稿反応者のリードを出力してフォロー

インストール

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

$npx skills add https://github.com/gooseworks-ai/goose-skills --skill competitor-post-engagers

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

同梱ファイルscripts/competitor_post_engagers.pyskill.meta.json

詳細

競合他社の投稿エンゲージャー

競合他社のパフォーマンス上位の LinkedIn 投稿にエンゲージしたユーザーをスクレイピングして、ICP に合致するリードを見つけます。1 つ以上の企業ページ URL を指定すると、このスキルはエンゲージメントの高い最近の投稿を見つけ、リアクションまたはコメントをしたユーザーをすべて抽出し、ICP への適合度を分類します。

基本原則: 企業ごとに 1 回の呼び出しですべての投稿をスクレイピングし、その後、ローカルで順位付けして上位 N 件を選択します。これにより、リードの質を最大限に高めながら、Apify のコストを最小限に抑えられます。

フェーズ 0:情報の確認

以下の質問をユーザーにします。

対象企業
  1. スクレイピングする LinkedIn 企業ページの URL(例:https://www.linkedin.com/company/11x-ai/)
  2. 期間 — 何日前まで遡って調べるか(デフォルト:30 日)
  3. エンゲージしたユーザーを抽出する企業ごとの上位投稿数 N(デフォルト:1)
ICP の条件
  1. ICP キーワード — 有望なリードを示す職種や役割の用語(例:「sales」、「SDR」、「revenue」)
  2. 除外キーワード — フィルタリングする役割(例:「software engineer」、「designer」)
  3. 対象地域(任意。例:「United States」)

現在の作業ディレクトリ(またはユーザー指定のパス)に設定を保存します。

competitor-post-engagers-config.json

設定 JSON の構造:

{
  "name": "<run-name>",
  "company_urls": ["https://www.linkedin.com/company/<competitor>/"],
  "days_back": 30,
  "max_posts": 50,
  "max_reactions": 500,
  "max_comments": 200,
  "top_n_posts": 1,
  "icp_keywords": ["sales", "revenue", "growth", "SDR", "BDR", "outbound"],
  "exclude_keywords": ["software engineer", "developer", "designer"],
  "enrich_companies": true,
  "competitor_company_names": ["<competitor-name>"],
  "industry_keywords": ["freight", "logistics", "trucking", "transportation", "3pl", "supply chain", "carrier", "brokerage", "shipping", "warehousing"],
  "output_dir": "output"
}
  • enrich_companies — Apollo による企業情報のエンリッチメントを有効にします(デフォルト:true)。スキップするには、false に設定するか、--skip-company-enrich を使用します。
  • competitor_company_names — エンリッチメントの対象から除外する企業名(競合他社自体)。
  • industry_keywords — ICP への適合を示す業界用語。Apollo の業界フィールドと照合します。

デフォルトでは、output_dir はスクリプトのディレクトリからの相対パスです。特定の場所に出力するには、絶対パスで上書きします。

フェーズ 1:パイプラインを実行する

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json \
  [--test] [--yes] [--skip-company-enrich] [--top-n 3] [--max-runs 30]

フラグ:

  • --config(必須)— 設定 JSON のパス
  • --test — 小規模な上限を設定します(投稿 20 件、プロフィール 50 件、上位投稿 1 件)
  • --yes — コスト確認のプロンプトをスキップします
  • --skip-company-enrich — Apollo による企業情報のエンリッチメント手順をスキップします(クレジットを節約できます)
  • --top-n — 設定の top_n_posts を上書きします
  • --max-runs — Apify の実行上限を上書きします
パイプラインの手順

手順 1:企業の投稿とエンゲージャーをスクレイピングする — 各企業 URL に対して、harvestapi/linkedin-company-posts を使用した Apify の呼び出しを 1 回実行し、scrapeReactions: true, scrapeComments: true を指定します。投稿、リアクション、コメントが単一のデータセットとして返されます。

手順 2:投稿を順位付けして上位の投稿を選択する — 期間(days_back)で投稿を絞り込み、エンゲージメントの合計(リアクション数+コメント数)で順位付けして、企業ごとに上位 N 件を選択します。次に、選択した投稿のみからエンゲージャー(リアクションしたユーザー+コメントしたユーザー)を抽出します。名前で重複を排除します。エンゲージャーは役職に基づいてスコア付けされます。

  • +3 コメントしたユーザー(関心度が高い)
  • +2 役職が ICP キーワードに一致
  • -5 役職が除外キーワードに一致

手順 3:企業情報のエンリッチメント(Apollo) — エンゲージャーから企業名を一意に抽出し、それぞれに対して apollo.enrich_organization(name=...) を呼び出します。業界、従業員数、説明、所在地が返されます。一意の企業ごとに Apollo クレジットを約 1 件消費します。同じ企業に属するすべてのエンゲージャーにデータを統合します。--skip-company-enrich または "enrich_companies": false を指定するとスキップできます。

手順 4:ICP に分類してエクスポートする — 「ICP の可能性が高い」「ICP の可能性あり」「不明」「技術ベンダー」に分類します。見出しのキーワード照合と企業の業界データ(手順 3)の両方を使用します。エンゲージャーの企業の業界が industry_keywords に一致する場合、役割に関係なく「ICP の可能性が高い」に分類されます。CSV にエクスポートします。

コストの見積もり
パラメーターテスト標準
企業ごとにスクレイピングする投稿数2050
リアクションの上限50500
コメントの上限50200
Apify の推定コスト(企業 1 社)~$0.10~$0.50-1
Apollo クレジットの推定数(企業情報のエンリッチメント)~10-20~30-80 社(重複なし)
Apollo の推定コスト~$0.05-0.10~$0.15-0.40

フェーズ 2:確認と調整

結果を提示します:

  • 投稿の選定 — 選択した投稿とその理由(エンゲージメント数、プレビュー)
  • 企業別の内訳 — 各競合企業からのリード数
  • ICP の内訳 — ティア別の件数
  • リード上位 15 件 — 名前、役職、企業、エンゲージメントの種類

よくある調整:

  • 無関係なリードが多すぎる — icp_keywords を絞り込むか、exclude_keywords を追加します
  • ICP に該当するリードが見つからない — icp_keywords の範囲を広げます
  • 選択された投稿が適切でない — top_n_posts を増やすか、days_back を調整します
  • 費用がかかりすぎる — --test モードを使うか、max_reactions/max_comments を減らします

フェーズ 3:出力

CSV は {output_dir}/{name}-engagers-{date}.csv にエクスポートされます:

列説明
名前氏名
LinkedIn URLプロフィールへのリンク
役職見出しから解析
企業見出しから解析
企業の業種Apollo のエンリッチメント情報
企業規模Apollo による推定従業員数
企業の説明Apollo による企業の簡単な説明
企業所在地Apollo による市区町村、州、国
参照ページどの競合企業のページか
投稿 URL該当する投稿へのリンク
投稿のプレビュー投稿内容の冒頭 120 文字
エンゲージメントの種類コメントまたはリアクション
コメント本文コメント内容(パーソナライズに役立ちます)
ICP ティアICP の可能性が高い/ICP の可能性あり/不明/テックベンダー
フィルター前のスコア事前フィルターによる優先度スコア

必要なツール

  • Apify API トークン — .env の APIFY_API_TOKEN に設定します
  • Apollo API キー — .env の APOLLO_API_KEY に設定します(企業情報のエンリッチメント用)
  • 使用する Apify アクター:
    • harvestapi/linkedin-company-posts(投稿とエンゲージしたユーザーのスクレイピング)
  • 使用する Apollo エンドポイント:
    • organizations/enrich(企業の業種/規模の照会、企業ごとに 1 クレジット)

使用例

トリガーフレーズ:

  • 「[competitor] の LinkedIn 投稿にエンゲージしているリードを見つけて」
  • 「[company] の上位投稿からエンゲージしたユーザーをスクレイピングして」
  • 「[competitor] のコンテンツとやり取りしているのは誰?」
  • 「[company] の competitor-post-engagers を実行して」

テストモード:

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json --test --yes

全件実行:

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json --yes

コメント