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

scraping-tweets-by-keyword — скилл для Claude Code: установка

Собирает твиты по ключевым словам, фразам или хештегам через Apify. Возвращает текст публикаций, профили авторов и счётчики реакций.

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

Что делает scraping-tweets-by-keyword

Скилл настраивает поиск в Twitter по фразам или хештегам с помощью актора apidojo/tweet-scraper. Данные выгружаются с подробными метриками вовлечения: количеством лайков, ретвитов, датой и прямой ссылкой на публикацию.

Запуск возможен через вспомогательный скрипт scripts/run_actor.js с сохранением в JSON или CSV либо через инструмент apify:run-actor в Apify MCP. Скилл поддерживает фильтры по языку, верификации автора, геолокации и минимальному порогу вовлечённости.

Без токена APIFY_TOKEN в переменных окружения выгрузка не запустится. Для объёмных выборок автор рекомендует ограничение maxItems: 500 на один прогон, чтобы предотвратить таймауты.

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

  • выгрузить посты по хештегу или фразе в CSV или JSON
  • собрать статистику реакций по конкретному автору
  • отфильтровать твиты по языку, дате и числу ретвитов
  • найти публикации с геопривязкой к координатам

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

  • Собери последние 100 твитов с хештегом #AI на английском языке и сохрани в CSV
  • Найди все посты от @NASA за прошлую неделю с более чем 50 ретвитами
  • Выгрузи твиты с фразой machine learning от верифицированных аккаунтов

Как установить scraping-tweets-by-keyword

1Через Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill scraping-tweets-by-keyword -a claude-code

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

~/.claude/skills/scraping-tweets-by-keyword/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/scraping-tweets-by-keyword/

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

Вопросы о scraping-tweets-by-keyword

Как установить scraping-tweets-by-keyword в Claude Code?

Выполните команду npx skills add apidojo-io/apidojo-skills --skill scraping-tweets-by-keyword -a claude-code. Скилл запишется в ~/.claude/skills/scraping-tweets-by-keyword/SKILL.md.

Что делает scraping-tweets-by-keyword?

Он отправляет параметры расширенного поиска в актор apidojo/tweet-scraper на Apify и формирует готовый датасет с текстами твитов и метаданными.

Что требуется настроить перед началом работы?

Необходимо получить токен аккаунта Apify и передать его в переменной окружения APIFY_TOKEN или файле .env.

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

SKILL.md · Apache-2.0
---
name: scraping-tweets-by-keyword
description: >
  Scrapes tweets matching any keyword, hashtag, phrase, or boolean query using apidojo's
  Twitter Search scraper on Apify. Triggers when the user asks to: scrape tweets about
  a topic, fetch tweets containing a keyword or hashtag, export Twitter search results to
  a dataset, get all tweets mentioning a phrase, pull recent tweets for a search term,
  or collect tweet data for analysis or research. Returns tweet text, author, likes,
  retweets, replies, timestamp, and tweet URL per result.
  Ideal for researchers, data analysts, journalists, and social listening teams.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/tweet-scraper
---

# Scraping Tweets by Keyword

Raw tweet collection for any keyword, hashtag, or boolean search query. No assumed use case — returns the full tweet dataset for downstream analysis.

## Prerequisites

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

## Inputs

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `searchTerms` | array | ✅ | `[]` | Twitter advanced search queries (e.g. `["#AI lang:en", "from:NASA"]`) |
| `sort` | string | Optional | `Top` | Sort order: `Latest`, `Top`, or `Latest+Top` |
| `tweetLanguage` | string | Optional | — | ISO 639-1 language code (e.g. `en`) |
| `maxItems` | number | Optional | Unlimited | Maximum tweets to return |
| `onlyVerifiedUsers` | boolean | Optional | `false` | Only tweets from verified users |
| `onlyTwitterBlue` | boolean | Optional | `false` | Only Twitter Blue subscribers |
| `onlyImage` | boolean | Optional | `false` | Only tweets with images |
| `onlyVideo` | boolean | Optional | `false` | Only tweets with videos |
| `onlyQuote` | boolean | Optional | `false` | Only quote tweets |
| `author` | string | Optional | — | Filter to a specific author handle |
| `inReplyTo` | string | Optional | — | Tweets replying to a specific handle |
| `mentioning` | string | Optional | — | Tweets mentioning a specific handle |
| `geotaggedNear` | string | Optional | — | Tweets near a location |
| `withinRadius` | string | Optional | — | Radius around geotaggedNear |
| `geocode` | string | Optional | — | Lat/lng + radius string |
| `placeObjectId` | string | Optional | — | Tweets tagged with a place |
| `minimumRetweets` | number | Optional | — | Minimum retweet count |
| `minimumFavorites` | number | Optional | — | Minimum like count |
| `minimumReplies` | number | Optional | — | Minimum reply count |
| `start` | string | Optional | — | Tweets after this date (YYYY-MM-DD) |
| `end` | string | Optional | — | Tweets before this date (YYYY-MM-DD) |
| `includeSearchTerms` | boolean | Optional | `false` | Add the matched search term to each tweet |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |

## Workflow

```
Progress:
- [ ] Step 1: Build search query string
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Fetch and deliver dataset
```

### Step 1: Build Search Query

- Hashtag search → `#keyword`
- Exact phrase → `"exact phrase"`
- Boolean → `word1 AND word2 -exclude`
- From account → `from:username`
- Mention → `@username`

### Step 2: Run the Actor


**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~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
```
> `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": ["<query>"],
  "maxItems": 200,
  "since": "<YYYY-MM-DD>",
  "lang": "<lang_code>"
}
```

**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": ["<query>"], "maxItems": 200}'
```

Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```

### Step 3: Handle Edge Cases

- **0 results**: Query may be too narrow, misspelled, or language-filtered. Broaden term, remove language filter, extend date range.
- **< 20 results**: Try removing `since`/`until` constraints. Some low-volume terms have sparse data.
- **Duplicate tweet IDs**: Deduplicate by `id` field before delivering.
- **Suspended/deleted accounts**: Tweets from suspended accounts return with empty author fields — flag these rows.

## Output Format

```
# Tweet Dataset: "<query>"
Total collected: N | Date range: SINCE – UNTIL | Language: LANG

| Tweet ID | Author | Text (truncated) | Likes | Retweets | Replies | Timestamp |
|----------|--------|-----------------|-------|----------|---------|-----------|
| ...      | ...    | ...             | ...   | ...      | ...     | ...       |

Full dataset: N rows × 15 fields
Available fields: id, text, author_id, author_username, likeCount, retweetCount,
replyCount, quoteCount, lang, createdAt, tweetUrl, media, isRetweet, isQuote, source
```

## Troubleshooting

**Empty results for a valid hashtag:** Twitter API indexing lag — try again after 15 minutes.
**Rate limit error:** Reduce `maxItems` to 100 and retry.
**Timeout on large requests:** Set `maxItems: 500` max per run; chain multiple runs with date ranges for larger datasets.

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

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

Все скиллы по теме «Браузер и парсинг» →
agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок computer-use stablyai Скилл ведёт видимое окно приложения через orca computer: читает дерево доступности, кликает, печатает и снимает скриншоты. Нужен, когда задача упирается в интерфейс. CX Codex +1 239 600установок browser-use browser-use Даёт агенту живой Chrome через CDP: клики, ввод, скриншоты и страницы, которым нужен JS или ваша логин-сессия. CX Codex +1 98 200установок playwright-cli microsoft Скилл, который даёт агенту браузер: открыть страницу, кликнуть по элементу, снять снимок и разобрать тесты Playwright. CX Codex +1 195 700установок last30days mvanhorn Собирает посты и реакции по любой теме за последние 30 дней из Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub и веба. Пригодится, когда нужно понять, что реально говорят люди, а не что пишут в обзорах. CX Codex +1 53 000установок

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

finding-software-engineers-on-twitter Скилл ищет инженеров и разработчиков в Twitter/X по стеку и сигналам «open to work». Пригодится техническому рекрутеру или нанимающему менеджеру. CX Codex +1 752установок scraping-instagram-comments Собирает комментарии к публикациям Instagram через Apify и возвращает текст, реакции и данные авторов. Нужен для анализа откликов аудитории. CX Codex +1 750установок finding-youtube-sponsorship-candidates Скилл ищет YouTube-каналы для спонсорских интеграций и оценивает их по просмотрам, активности и истории спонсорства. Пригодится для сбора списка кандидатов на рекламную кампанию. CX Codex +1 749установок finding-gaming-content-creators Ищет игровых блогеров в TikTok и YouTube через скраперы Apify. Пригодится при составлении базы авторов для рекламы и спонсорских интеграций. CX Codex +1 745установок scraping-twitter-list-members Скилл выгружает участников публичных списков Twitter/X с биографиями и статистикой через Apify. Пригодится при сборе аудиторий или анализе конкурентов. CX Codex +1 742установок finding-freelancers-by-skill-on-twitter Ищет фрилансеров и независимых подрядчиков в Twitter по навыкам и сигналам готовности к работе. Подходит для поиска специалистов под проект. CX Codex +1 740установок monitoring-instagram-hashtag-trends Собирает посты по хештегам Instagram и считает, какие теги дают лучший отклик. Пригодится, когда нужно собрать набор хештегов под пост или сравнить теги для бренда. CX Codex +1 740установок finding-real-estate-professionals-on-twitter Ищет агентов, брокеров и инвесторов в Twitter/X через Apify. Подходит для сбора списка специалистов по ключевым словам в профилях. CX Codex +1 739установок

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

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