building-twitter-prospect-lists について
トピックの投稿とプロフィール情報から Twitter/X の見込み顧客リストを作るスキルです。マーケティング担当者向けに、ICP の設定から候補者の選別・順位付け、連絡用リストの作成までを案内します。
主な機能
- 01キーワードやトピックで投稿を検索
- 02投稿者プロフィールの収集と重複排除
- 03自己紹介、フォロワー数、場所で絞り込み
- 04関連性とエンゲージメントで順位付け
- 05アウトリーチ用リストの作成
活用シーン
- 01対象トピックを投稿する創業者やマーケターの発見
- 02職種や業界の手掛かりを使った見込み顧客リスト作成
- 03個別のアウトリーチ候補の優先順位付け
MCP 対応
Apify MCP サーバーを使って tweet-scraper と twitter-user-scraper の Actor を実行できます。コマンドラインと REST API による方法も記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill building-twitter-prospect-listsインストール後、Claude Code で/building-twitter-prospect-listsを入力して読み込まれたか確認します。
詳細
Twitter プロスペクトリストの作成
Twitter/X を検索し、プロフィールのキーワードやトピックベースのツイート検索を使って、ターゲットとなる ICP(理想顧客プロファイル)に合致するプロフィールを探します。エンゲージメントのシグナルとプロフィールの情報を含む、連絡先リストとしてすぐに使える一覧を作成します。
前提条件
APIFY_TOKEN環境変数が設定されていること- 任意:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
searchTerms | array | ✅ | [] | Twitter の高度な検索クエリ(例:["#AI lang:en", "from:NASA"]) |
sort | string | 任意 | Top | 並び替え順:Latest、Top、または Latest+Top |
tweetLanguage | string | 任意 | — | ISO 639-1 言語コード(例:en) |
maxItems | number | 任意 | 無制限 | 返すツイートの最大数 |
onlyVerifiedUsers | boolean | 任意 | false | 認証済みユーザーのツイートのみ |
onlyTwitterBlue | boolean | 任意 | false | Twitter Blue 登録者のツイートのみ |
onlyImage | boolean | 任意 | false | 画像付きツイートのみ |
onlyVideo | boolean | 任意 | false | 動画付きツイートのみ |
onlyQuote | boolean | 任意 | false | 引用ツイートのみ |
author | string | 任意 | — | 特定の投稿者ハンドルに絞り込み |
inReplyTo | string | 任意 | — | 特定のハンドルへの返信ツイート |
mentioning | string | 任意 | — | 特定のハンドルに言及しているツイート |
geotaggedNear | string | 任意 | — | 指定した場所の近くに位置情報が付いたツイート |
withinRadius | string | 任意 | — | geotaggedNear の周囲の半径 |
geocode | string | 任意 | — | 緯度・経度と半径の文字列 |
placeObjectId | string | 任意 | — | 場所がタグ付けされたツイート |
minimumRetweets | number | 任意 | — | リツイート数の最小値 |
minimumFavorites | number | 任意 | — | いいね数の最小値 |
minimumReplies | number | 任意 | — | 返信数の最小値 |
start | string | 任意 | — | この日付以降のツイート(YYYY-MM-DD) |
end | string | 任意 | — | この日付以前のツイート(YYYY-MM-DD) |
includeSearchTerms | boolean | 任意 | false | 一致した検索語を各ツイートに追加 |
customMapFunction | string | 任意 | — | 各出力オブジェクトを変換する JavaScript 関数 |
ワークフロー
Progress:
- [ ] Step 1: Define ICP and search strategy
- [ ] Step 2: Run tweet-scraper for keyword/topic tweets
- [ ] Step 3: Extract unique authors from results
- [ ] Step 4: Enrich with twitter-user-scraper for bio + follower data
- [ ] Step 5: Filter, rank, and deliver prospect list
ステップ 1:ICP と戦略を定義する
ユーザーに次の内容を尋ねます:
- 職種名のキーワード:Twitter のプロフィール検索に使用(例:「Head of Growth」、「Founder」、「CTO」)
- トピックのキーワード:ICP はどのようなトピックについてツイートしますか?(例:「SaaS metrics」、「PLG」、「RevOps」)
- 業界のシグナル:プロフィールから適切な業界を示すキーワード(例:「SaaS」、「fintech」、「healthcare」)
- フォロワー数の範囲(任意):例:1,000~50,000(知名度の低すぎる人や著名人の両方を除外します)
- 場所(任意):例:「San Francisco」、「London」
- リストのサイズ:見込み客は何人必要ですか?
ステップ 2:トピックベースのツイートを検索する
ICP が関心を持つトピックについて、Twitter でツイートを検索します。あるトピックについて積極的にツイートしている人は、見込み度が高いと考えられます。
推奨 — run_actor.js(待機、出力、ファイル保存を自動処理):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
環境または
.envファイルでAPIFY_TOKENを設定する必要があります。
Apify MCP が利用可能な場合:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": ["[TOPIC_KEYWORD_1]", "[TOPIC_KEYWORD_2]"],
"maxItems": 200,
"tweetLanguage": "en"
}
Apify MCP が利用できない場合:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": ["[TOPIC_KEYWORD]"],
"maxItems": 200
}'
トピックのキーワードごとに実行します。すべての author.username の値を収集し、重複を除去します。これにより候補者リストが得られます。
ステップ 3:候補者のプロフィールデータを取得する
ステップ 2 で得た重複のないユーザー名から、上位 100~200 件を選びます。プロフィールのキーワードやフォロワー数で絞り込むため、プロフィールの全データを取得します。
Apify MCP が利用可能な場合:
Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
"usernames": ["[username1]", "[username2]", "..."],
"maxItems": 100
}
Apify MCP が利用できない場合:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~twitter-user-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"usernames": ["[username1]", "[username2]"]
}'
ステップ 4:ICP の基準に照らして絞り込む
プロフィールデータから、次の条件をすべて満たすユーザーのみを残します。
- 自己紹介に、職種キーワードまたは業界を示すキーワードが少なくとも 1 つ含まれている
- フォロワー数が指定範囲内である(指定されている場合)
- 場所が一致している(指定されている場合)—
locationフィールドを確認します - ボットではない(プロフィール画像があり、ツイート数が 10 件を超え、アカウントの開設から 6 か月以上経過している)
次のアカウントは除外します。
- デフォルトのプロフィール画像を使用しているアカウント
- ツイート数が 0 件のアカウント
- 認証済みの大規模インフルエンサー(フォロワー数が範囲を超えている)
- 明らかに自動化されたアカウント
ステップ 5:順位付けしてフォーマットする
絞り込んだ見込み客を、次の基準で順位付けします。
- 関連性スコア = 自己紹介で一致した ICP キーワードの数
- エンゲージメントの指標 =(最近のツイートへの「いいね」数 + リツイート数)/ フォロワー数
出力形式
# Twitter Prospect List: [ICP DESCRIPTION]
Generated: [N] prospects | Filters applied: [summary] | Date: [DATE]
| # | Name | Handle | Followers | Job / Bio | Location | Last Active | Profile |
|---|------|--------|-----------|-----------|----------|-------------|---------|
| 1 | [name] | @[handle] | [N] | [bio excerpt] | [city] | [date] | [url] |
| 2 | [name] | @[handle] | [N] | [bio excerpt] | [city] | [date] | [url] |
## Top 10 Highest-Priority Prospects
1. **@[handle]** — "[bio]" | [N] followers | Recently tweeted about: [topic]
2. **@[handle]** — "[bio]" | [N] followers | Recently tweeted about: [topic]
...
## Notes
- [N] candidates found in topic search
- [N] filtered out (didn't match ICP criteria)
- [N] final prospects delivered
- Engagement signals are 24-48h delayed
アウトリーチのパーソナライズ
有望な見込み客ごとに、最近のツイートのサンプルを使ってアウトリーチをパーソナライズできます。最初のメッセージで話題にできるよう、最近のトピックを確認してください。
トラブルシューティング
絞り込み後の結果が少なすぎる場合: 自己紹介のキーワードを広げます(AND ではなく OR のロジックを使います)。ステップ 2 でトピックキーワードを増やしてみてください。 無関係なアカウントが多すぎる場合: 自己紹介のフィルターに業界固有のキーワードを追加します(例:「SaaS」または「B2B」が自己紹介に含まれることを必須にします)。 場所のフィルターが機能しない場合: Twitter の場所情報はユーザーが自己申告するもので、一貫性がありません。厳密なフィルターではなく、参考情報として扱ってください。