К основному содержанию
скилл CX Codex

building-journalist-outreach-list-from-twitter — скилл

Собирает контакты журналистов и медиа по заданной теме через скраперы Twitter/X на Apify. Пригодится для питча пресс-релиза или поиска авторов в нише.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add apidojo-io/apidojo-skills --skill building-journalist-outreach-list-from-twitter -a claude-code
Открыть на GitHub

Что делает building-journalist-outreach-list-from-twitter

Скилл ищет в Twitter/X людей, которые пишут на нужную тему, и превращает их в таблицу контактов. На входе — тема, целевые издания, тип автора (штатный, фрилансер или оба), география и размер списка. Дальше агент проходит пять шагов: уточняет параметры, ищет твиты по теме, обогащает профили, фильтрует по признакам журналиста и отдаёт готовый список.

Работает через акторы apidojo/twitter-user-scraper и apidojo/tweet-scraper на Apify. Есть скрипт scripts/run_actor.js, который сам ждёт результат и сохраняет его в CSV или JSON, плюс запасной путь через REST API. Обязательно нужен APIFY_TOKEN в окружении или в .env — без него ничего не запустится. MCP-сервер Apify подключать не обязательно.

На выходе — имя, @handle, издание из био, тема, число подписчиков и недавние материалы, разбитые по изданиям и фрилансерам, плюс заметки с углами для питча. Фильтр отсекает PR-специалистов, брендовые аккаунты и учёных без журналистских регалий. Если в выдаче много лишних людей, скилл советует ужесточить проверку био до точных слов «reporter», «journalist», «editor».

Какие задачи решает

  • собрать список журналистов, пишущих про конкретную отрасль
  • найти редакторов и авторов в заданных изданиях на X
  • подготовить контакты медиа под пресс-релиз
  • отделить фрилансеров в нише от штатных авторов
  • отсеять PR-специалистов и брендовые аккаунты из выдачи

Примеры запросов агенту

  • найди журналистов, которые пишут про финтех, собери 30 контактов
  • собери медиа-лист по теме климатических технологий, только фрилансеры
  • сделай список контактов для питча в TechCrunch и Wired

Как установить building-journalist-outreach-list-from-twitter

1Через Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill building-journalist-outreach-list-from-twitter -a claude-code

2Вручную: положить файлы

~/.claude/skills/building-journalist-outreach-list-from-twitter/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/building-journalist-outreach-list-from-twitter/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о building-journalist-outreach-list-from-twitter

Как установить building-journalist-outreach-list-from-twitter в Claude?

Выполните npx skills add apidojo-io/apidojo-skills --skill building-journalist-outreach-list-from-twitter -a claude-code. Скилл встанет в ~/.claude/skills/building-journalist-outreach-list-from-twitter/SKILL.md.

Что делает этот скилл?

Ищет в Twitter/X журналистов и медиапрофессионалов по заданной теме, обогащает профили и отдаёт список контактов с изданием, темой и недавними материалами.

Что нужно для работы скилла?

Переменная окружения APIFY_TOKEN — в системе или в файле .env. MCP-сервер Apify опционален.

Исходный текст

SKILL.md · Apache-2.0
---
name: building-journalist-outreach-list-from-twitter
description: >
  Builds targeted journalist and media contact lists from Twitter/X using apidojo's Twitter scrapers on Apify.
  Triggers when the user asks to: find journalists covering a specific beat or topic on Twitter, build a
  media outreach list from Twitter, identify reporters writing about an industry, find editors or writers
  at specific publications on X, create a PR contact list from Twitter, discover freelance journalists in
  a niche, or compile a list of media contacts for a press release or story pitch.
  Returns name, handle, publication affiliation from bio, follower count, and recent article topics.
  Ideal for PR agencies, startup communications teams, and founders doing press outreach.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actors: apidojo/twitter-user-scraper, apidojo/tweet-scraper
---

# Building a Journalist Outreach List from Twitter

Finds journalists and media professionals on Twitter/X who cover a specific beat, industry, or topic. Journalists are the heaviest users of Twitter for professional networking — it's the best platform to build a media contact list.

## Prerequisites

- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed


## Inputs

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | Twitter profile or tweet URLs |
| `twitterHandles` | array | Optional | `[]` | Twitter usernames (without @) |
| `twitterUserIds` | array | Optional | `[]` | Twitter user IDs |
| `getFollowers` | boolean | Optional | `false` | Extract follower lists |
| `getFollowing` | boolean | Optional | `false` | Extract following lists |
| `getRetweeters` | boolean | Optional | `false` | Extract retweeters of a tweet URL |
| `includeUnavailableUsers` | boolean | Optional | `false` | Include unavailable/suspended users |
| `maxItems` | number | Optional | Unlimited | Maximum users to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow

```
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
```

### Step 1: Clarify Parameters

Ask the user for:
- **Beat/topic** (e.g., "artificial intelligence", "climate tech", "fintech", "B2B SaaS")
- **Target publications** (optional — e.g., "TechCrunch", "Forbes", "Wired", "any tier-1 tech media")
- **Type** — staff writers, freelancers, or both
- **Geography** (optional — US, UK, global)
- **List size** (default: 30 contacts)

### Step 2: Search for Beat-Relevant Tweets

Find journalists actively tweeting about the beat — recency of coverage matters for outreach.


**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# 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` must be set in environment or `.env` file.

**If Apify MCP is available:**
```
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"
}
```

Also run a second query for article link tweets (journalists tweet their published work):
```
Input:
{
  "searchTerms": ["[TOPIC] [publication_domain OR article link signal]"],
  "maxItems": 200
}
```

**REST API fallback:**
```bash
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
  }'
```

Collect unique author usernames from all results.

### Step 3: Enrich Profiles

**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
  "usernames": ["[username1]", "...", "up to 150 usernames"]
}
```

**REST API fallback:**
```bash
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]"]}'
```

### Step 4: Filter for Journalist Signals

Keep accounts where bio contains ANY of:
- Publication names (e.g., "TechCrunch", "@Forbes", "Bloomberg", "@Wired")
- Journalist titles: "reporter", "journalist", "editor", "correspondent", "writer at", "staff writer", "freelance writer", "contributing editor"
- Byline signals: "bylines at", "writes for", "covering"
- Press credentials: "press", "media"

**Follower range:** 1,000–500,000 (removes complete unknowns and major TV anchors who don't respond to pitches)

**Remove:** PR/comms people (bio says "PR", "communications", "agency"), brand accounts, academics without journalist credentials.

### Step 5: Format Output

## Output Format

```
# 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]
```

## Personalization Tip

Before pitching, read the journalist's last 3 tweets and their most recent published article. Reference something specific. Generic pitches fail. The recent tweet data in this output enables that personalization without additional research.

## Troubleshooting

**Too many non-journalists in results:** Strengthen bio filter — require "reporter" OR "journalist" OR "editor" as exact words, not just a publication name.
**Can't find journalists for obscure beats:** Widen the search to adjacent beats or try the publication name directly as a search term.
**Follower counts seem stale:** For final outreach list, spot-check the top 10 contacts directly on Twitter.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Похожие скиллы

Всё по теме «Маркетинг и контент» →
x-twitter-scraper официальный github Помогает настроить работу с X API и парсерами через Xquik, Apify Actors или MCP-сервер. Пригодится для выгрузки твитов, подписчиков и обработки вебхуков. 80установок affiliate-recruitment-outreach Maya-Beth Finotti Скилл пишет письма и план касаний, чтобы набирать новых партнёров в комиссионную партнёрскую программу. CX Codex +1 13 400установок draft-outreach официальный anthropics Скилл готовит персональное письмо или цепочку касаний, создаёт черновик для проверки и добавляет контакт в последовательность по запросу. CX Codex +1 3 300установок compose-outreach официальный anthropics Генерирует три варианта обращения — email, скрипт звонка и сообщение в LinkedIn — на основе сигналов из Common Room. Нужен аккаунт Common Room и доступ к его MCP-инструментам. CX Codex +1 2 900установок twitter-automation 101-skills Управляет аккаунтом в социальной сети X через утилиту belt. Скилл помогает публиковать твиты, отправлять сообщения, ставить лайки и читать профили. CX Codex +1 870 600установок influencer-outreach Maya-Beth Finotti Готовит первое письмо и план фоллоу-апов для одного уже отобранного креатора: угол персонализации, условия оплаты и канал связи, который он сам указал. CX Codex +1 12 700установок

Из того же набора22

monitoring-vc-investor-activity-on-twitter Скилл собирает твиты инвесторов через скрапер apidojo, классифицирует их и оценивает сигналы сделок. Пригодится основателям на фандрайзинге. CX Codex +1 789установок tracking-twitter-thought-leaders Ищет в Twitter/X людей, чьи твиты по теме реально читают и репостят, и отдаёт ранжированный список для PR и партнёрств. CX Codex +1 786установок monitoring-twitter-for-competitor-job-posts Скилл следит за твитами конкурентов о найме и превращает их в сигналы роста: кто, какую роль и когда ищет. CX Codex +1 786установок analyzing-competitor-twitter-profile-content Скилл собирает твиты конкурента или бренда через Apify и раскладывает их по вовлечённости. Пригодится, когда нужно понять, о чём пишет соперник. CX Codex +1 784установок finding-ecommerce-brands-for-outreach Собирает список e-commerce и DTC-брендов в Instagram и TikTok по хештегам товарной категории. Пригодится, когда нужна база для аутрича, а не ручной перебор профилей. CX Codex +1 776установок tracking-competitor-social-media-growth Собирает подписчиков и вовлечённость конкурентов в Twitter/X, TikTok и Instagram и сводит их в одну таблицу. Пригодится, когда нужно сравнить рост аккаунтов. CX Codex +1 771установок discovering-tiktok-shop-sellers-by-niche Скилл собирает карту продавцов и товаров TikTok Shop в выбранной нише: кто продвигает, что продаётся, где пробел. CX Codex +1 770установок tracking-brand-sentiment-across-platforms Собирает посты о бренде в Twitter, Reddit и TikTok, считает тональность по каждой площадке и выдаёт общий балл здоровья бренда от 0 до 100. CX Codex +1 767установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой