competitor-post-engagers について
競合企業のLinkedIn投稿への反応を分析し、ICP適合度で分類するリード獲得スキルです。最近の投稿を順位付けしてリアクションやコメントをした人を抽出し、Apolloで企業情報を補完してCSVに出力できます。
主な機能
- 01LinkedIn企業投稿と反応者を取得
- 02反応数で最近の投稿を順位付け
- 03ICP適合度でリードを採点・分類
- 04Apolloで企業情報を補完
- 05リード情報をCSVに出力
活用シーン
- 01競合コンテンツに反応した見込み客を探す
- 02コメント投稿者や職種が合うリードを優先
- 03業種や規模でリード企業を確認
- 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:情報の確認
以下の質問をユーザーにします。
対象企業
- スクレイピングする LinkedIn 企業ページの URL(例:
https://www.linkedin.com/company/11x-ai/) - 期間 — 何日前まで遡って調べるか(デフォルト:30 日)
- エンゲージしたユーザーを抽出する企業ごとの上位投稿数 N(デフォルト:1)
ICP の条件
- ICP キーワード — 有望なリードを示す職種や役割の用語(例:「sales」、「SDR」、「revenue」)
- 除外キーワード — フィルタリングする役割(例:「software engineer」、「designer」)
- 対象地域(任意。例:「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 にエクスポートします。
コストの見積もり
| パラメーター | テスト | 標準 |
|---|---|---|
| 企業ごとにスクレイピングする投稿数 | 20 | 50 |
| リアクションの上限 | 50 | 500 |
| コメントの上限 | 50 | 200 |
| 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