monitoring-twitter-for-competitor-job-posts — скилл для Claude Code
Скилл следит за твитами конкурентов о найме и превращает их в сигналы роста: кто, какую роль и когда ищет.
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a claude-codeЧто делает monitoring-twitter-for-competitor-job-posts
Скилл запускает скрапер твитов apidojo~tweet-scraper на Apify по поисковым запросам вида «[COMPETITOR] hiring» или «[COMPETITOR] join our team». На выходе — таблица с хэндлом компании, ролью, отделом, датой поста, признаками срочности и оценкой роста. Полезно, когда нужно понять, какие отделы конкурент расширяет прямо сейчас.
Внутри пять шагов: задать параметры, прогнать актор, разложить результаты по классам, посчитать балл и отдать отчёт. Классификация простая: больше 5 ролей в месяц — агрессивный рост, 2–5 — ровный, 1–2 — разовые вакансии. Балл складывается из числа постов за 30 дней, веса отдела и языка срочности. Инженерные роли весят больше.
Перед запуском нужен APIFY_TOKEN в переменных окружения или в .env. Без него актор не стартует — это первое, что стоит проверить. Запускать можно скриптом scripts/run_actor.js с сохранением в CSV или JSON, через Apify MCP или обычным curl к REST API. Если результатов меньше 20, скилл советует расширить запросы и убрать лишние фильтры.
Какие задачи решает
- собрать список открытых ролей конкурента из его твитов
- понять, какие отделы растут, а какие просто закрывают ушедших
- отличить стратегический найм от рутинного бэкфилла
- выгрузить найденные вакансии в CSV для отчёта
- отфильтровать шум по минимальному баллу релевантности
Примеры запросов агенту
- просканируй твиты конкурента на вакансии за последний месяц
- собери посты о найме у трёх компаний и разложи по отделам
- выгрузи найденные вакансии в CSV с оценкой роста
Как установить monitoring-twitter-for-competitor-job-posts
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a claude-code2Вручную: положить файлы
~/.claude/skills/monitoring-twitter-for-competitor-job-posts/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/monitoring-twitter-for-competitor-job-posts/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a codex2Вручную: положить файлы
.agents/skills/monitoring-twitter-for-competitor-job-posts/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a cursor2Вручную: положить файлы
.cursor/skills/monitoring-twitter-for-competitor-job-posts/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills monitoring-twitter-for-competitor-job-posts2Вручную: положить файлы
.github/skills/monitoring-twitter-for-competitor-job-posts/SKILL.md1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a gemini-cli2Командой платформы
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/intent/monitoring-twitter-for-competitor-job-postsВручную: положить файлы
.devin/skills/monitoring-twitter-for-competitor-job-posts/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о monitoring-twitter-for-competitor-job-posts
Как установить monitoring-twitter-for-competitor-job-posts в Claude?
Выполните npx skills add apidojo-io/apidojo-skills --skill monitoring-twitter-for-competitor-job-posts -a claude-code. После этого скилл появится в ~/.claude/skills/monitoring-twitter-for-competitor-job-posts/SKILL.md.
Что делает monitoring-twitter-for-competitor-job-posts?
Ищет в X посты конкурентов о найме через скрапер apidojo~tweet-scraper и возвращает хэндл компании, роль, отдел, дату, признаки срочности и оценку роста.
Что нужно для работы скилла?
Переменная окружения APIFY_TOKEN в системе или в файле .env. Опционально можно подключить Apify MCP-сервер, тогда запуск идёт через инструмент apify:run-actor.
Исходный текст
SKILL.md · Apache-2.0
---
name: monitoring-twitter-for-competitor-job-posts
description: >
Monitors Twitter for competitor hiring announcements to track growth signals using apidojo's Tweet scraper. Triggers when the user asks to: monitor competitor job postings on Twitter, track hiring signals from competitor companies on X, find out what roles competitors are hiring for on Twitter, analyze competitor team growth from their Twitter activity, monitor startup hiring signals for competitive intelligence, track which departments competitors are growing via their Twitter, or discover competitor expansion strategies from job post tweets.
Returns company handle, role being posted, department, posting date, urgency signals, and growth pattern.
Ideal for competitive intelligence teams, recruiters targeting competitor employees, and investors tracking company growth.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/tweet-scraper
---
# Monitoring Twitter For Competitor Job Posts
Executes monitoring twitter for competitor job posts using apidojo scrapers. Part of the apidojo intelligence skills library.
## 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: Define parameters
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Filter and classify results
- [ ] Step 4: Score by quality and relevance
- [ ] Step 5: Deliver output
```
### 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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"],
"maxItems": 100
}
```
**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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"], "maxItems": 100}'
```
Wait for `SUCCEEDED`. Fetch dataset:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
```
### Step 3: Classify Results
```
classification: AGGRESSIVE_GROWTH (> 5 roles/month) | STEADY_GROWTH (2-5 roles/month) | OPPORTUNISTIC (1-2 roles) | REPLACEMENT_ONLY (role title identical to recent departure signal)
```
### Step 4: Score Each Result
```
score = growth_signal_score = (roles_posted_in_30_days / 5, max 1) * 0.50 + (engineering_role ? 1.2 : 1) * department_weight * 0.30 + (urgency_language ? 1 : 0.5) * 0.20
```
### Step 5: Edge Cases
- **Competitor may post jobs across many channels but only announce key roles on Twitter — Twitter hiring posts often signal strategic priorities, not routine backfills**
Additional fallbacks:
- **< 20 results**: Broaden search terms; remove secondary filters
- **No results**: Verify the search terms are correct; try alternate phrasings
- **Data quality issues**: Remove entries with missing key fields; note count in output
## Output Format
```
# Monitoring Twitter For Competitor Job Posts
Results: [N] | Date: [DATE]
| # | [Key Field] | [Metric 1] | [Metric 2] | [Classification] | [Score] |
|---|------------|-----------|-----------|-----------------|---------|
| 1 | [value] | [value] | [value] | [type] | [0.XX] |
## Summary
Top result: [description]
Key finding: [insight]
```
## Troubleshooting
**Too few results:** Broaden the primary search term; remove restrictive filters.
**Low quality results:** Apply minimum score threshold (≥ 0.50) to filter noise.
**Actor fails to run:** Verify API key; check actor status at apify.com/apidojo.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills