building-journalist-outreach-list-from-twitter
building-journalist-outreach-list-from-twitter について
特定の分野、業界、トピックを扱う記者をTwitter/Xで探し、メディア連絡先リストを作成するスキルです。候補者のプロフィールを補足し、所属媒体や職種などの情報で絞り込みます。
主な機能
- 01トピック関連の投稿を検索
- 02スクレイパーでプロフィールを補足
- 03記者の特徴に基づく絞り込み
- 04メディア連絡先リストの作成
活用シーン
- 01業界を担当する記者の検索
- 02製品発表向けメディアリストの作成
- 03個別アプローチに適した記者の特定
MCP 対応
Apify MCPが利用できる場合、`apidojo~tweet-scraper`と`apidojo~twitter-user-scraper`のActorを実行できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill building-journalist-outreach-list-from-twitterインストール後、Claude Code で/building-journalist-outreach-list-from-twitterを入力して読み込まれたか確認します。
詳細
Twitter で記者へのアウトリーチリストを作成する
Twitter/X で特定の担当分野、業界、トピックを取り上げている記者やメディア関係者を見つけます。記者は業務上のネットワーキングに Twitter を最もよく利用しており、メディアの連絡先リストを作成するのに最適なプラットフォームです。
前提条件
APIFY_TOKEN環境変数が設定されていること- 任意:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | array | 任意 | [] | Twitter のプロフィールまたはツイートの URL |
twitterHandles | array | 任意 | [] | Twitter のユーザー名(@ なし) |
twitterUserIds | array | 任意 | [] | Twitter のユーザー ID |
getFollowers | boolean | 任意 | false | フォロワーリストを抽出します |
getFollowing | boolean | 任意 | false | フォロー中のリストを抽出します |
getRetweeters | boolean | 任意 | false | ツイート URL のリツイートユーザーを抽出します |
includeUnavailableUsers | boolean | 任意 | false | 利用できないユーザーや停止中のユーザーを含めます |
maxItems | number | 任意 | 無制限 | 返すユーザーの最大数 |
customMapFunction | string | 任意 | — | 各出力オブジェクトを変換する JavaScript 関数 |
ワークフロー
Progress:
- [ ] Step 1: Define beat, industry, and target publications
- [ ] Step 2: Search for journalists tweeting about the beat
- [ ] Step 3: Enrich profiles to extract publication affiliation
- [ ] Step 4: Filter and verify journalist signals
- [ ] Step 5: Deliver press contact list
ステップ 1:パラメーターを確認する
ユーザーに以下を尋ねます。
- 担当分野/トピック(例:「人工知能」、「気候テック」、「フィンテック」、「B2B SaaS」)
- 対象の媒体(任意。例:「TechCrunch」、「Forbes」、「Wired」、「大手テックメディアならどこでも」)
- 種類 — 社員記者、フリーランス、または両方
- 地域(任意 — 米国、英国、グローバル)
- リストの件数(デフォルト:連絡先 30 件)
ステップ 2:担当分野に関連するツイートを検索する
担当分野について積極的にツイートしている記者を見つけます。アウトリーチでは、最近取り上げているかどうかが重要です。
推奨 — run_actor.js(待機、出力、ファイル保存を自動で処理します):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENは環境変数または.envファイルに設定する必要があります。
Apify MCP が利用できる場合:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": [
"[TOPIC] journalist",
"[TOPIC] reporter",
"writing about [TOPIC]",
"[TOPIC] story [current year]"
],
"maxItems": 300,
"tweetLanguage": "en"
}
記事リンク付きのツイート(記者は自身が公開した記事をツイートします)を対象に、2 つ目のクエリも実行します。
Input:
{
"searchTerms": ["[TOPIC] [publication_domain OR article link signal]"],
"maxItems": 200
}
REST API を使う場合:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": ["[TOPIC] journalist", "[TOPIC] reporter", "writing about [TOPIC]"],
"maxItems": 300
}'
すべての結果から、重複のない投稿者のユーザー名を収集します。
ステップ 3:プロフィールを詳しく調べる
Apify MCP が利用できる場合:
Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
"usernames": ["[username1]", "...", "up to 150 usernames"]
}
REST API を使う場合:
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:記者であることを示す情報で絞り込む
自己紹介に以下のいずれかが含まれるアカウントを残します。
- 媒体名(例:「TechCrunch」、「@Forbes」、「Bloomberg」、「@Wired」)
- 記者の肩書き:「reporter」、「journalist」、「editor」、「correspondent」、「writer at」、「staff writer」、「freelance writer」、「contributing editor」
- 執筆歴を示す表現:「bylines at」、「writes for」、「covering」
- 報道関係者の資格:「press」、「media」
フォロワー数の範囲: 1,000~500,000(まったく知られていない人や、売り込みに応じない大手テレビ局のアンカーを除外します)
除外: PR/広報担当者(自己紹介に「PR」、「communications」、「agency」が含まれる)、ブランドアカウント、記者としての資格がない研究者。
ステップ 5:出力を整える
出力形式
# Journalist Outreach List: [BEAT/TOPIC]
Contacts found: [N] | Publication filter: [if any] | Date: [DATE]
## Contact List
| # | Name | @Handle | Publication | Beat | Followers | Recent Coverage |
|---|------|---------|-------------|------|-----------|-----------------|
| 1 | [name] | @[handle] | [pub] | [beat] | [N] | [recent tweet/article topic] |
## By Publication
### [Publication Name] ([N] contacts)
1. **[Name]** (@[handle]) — [title from bio] | [N] followers
Recent tweet: "[excerpt showing beat relevance]"
2. **[Name]** (@[handle]) — [title] | [N] followers
### Freelancers / Independent ([N] contacts)
1. **[Name]** (@[handle]) — writes for [pubs mentioned in bio] | [N] followers
## Pitch Angle Notes
Based on recent tweets, the top 5 contacts are actively covering:
1. @[handle]: recently tweeted about [specific topic] — pitch angle: [suggestion]
2. @[handle]: covering [topic] — pitch angle: [suggestion]
パーソナライズのヒント
売り込みを行う前に、記者の直近 3 件のツイートと、最近公開された記事を読んでください。具体的な内容に触れましょう。一般的な売り込みはうまくいきません。この出力に含まれる最近のツイートデータを使えば、追加調査なしで内容をパーソナライズできます。
トラブルシューティング
結果に記者以外が多く含まれる: 自己紹介のフィルターを厳しくし、媒体名だけでなく、「reporter」または「journalist」または「editor」の正確な単語を必須にします。 専門性の高い担当分野の記者が見つからない: 関連する担当分野にも検索範囲を広げるか、媒体名を検索語として直接試してください。 フォロワー数が古いように見える: 最終的なアウトリーチリストを作成する前に、上位 10 件の連絡先を Twitter で直接確認してください。