tracking-hiring-signals-from-company-tweets — скилл для Claude Code
Собирает сигналы найма из твитов компаний через Apify-скрапер apidojo/tweet-scraper: кто кого ищет, в какую команду и как давно.
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a claude-codeЧто делает tracking-hiring-signals-from-company-tweets
Скилл ищет в Twitter объявления о вакансиях от компаний и превращает их в отчёт. На вход идут поисковые запросы вроде "we're hiring fintech" или "join our team SaaS startup", плюс фильтры: даты, язык, минимальные ретвиты и лайки, конкретный автор, геолокация. Результат — таблица с ником компании, ролью, командой, датой поста и оценкой роста.
Внутри пять шагов: поиск сигналов, опциональный сбор конкретных аккаунтов, разбор роли и команды из текста, скоринг и отчёт. Оценка складывается из подтверждённости аккаунта, конкретности роли, свежести поста и наличия ссылки на вакансию. Несколько постов за 30 дней — высокий рост, один-два — ровный найм.
Нужен APIFY_TOKEN в переменных окружения или в .env. Запуск идёт через scripts/run_actor.js с актором apidojo~tweet-scraper, вывод можно сохранить в CSV или JSON. Без токена скрипт не отработает, так что ключ придётся завести до первого запуска. Отдельно скилл предупреждает: в выдачу лезут джоб-борды и кадровые агентства, поэтому в запрос стоит добавить -jobs -jobboard -staffing -recruiting.
Какие задачи решает
- найти компании, которые прямо сейчас набирают людей в конкретной отрасли
- вытащить из твита роль и команду, куда ищут человека
- отсеять джоб-борды и агентства от реальных нанимателей
- собрать список компаний под свой стек
- оценить, растёт ли конкурент по частоте вакансий
Примеры запросов агенту
- Найди в Twitter компании, которые набирают backend-разработчиков в финтехе, и собери таблицу
- Прогони через
apidojo~tweet-scraperпоиск по запросам "we're hiring SaaS" и сохрани результат в CSV - Проверь твиты этих компаний за последние 30 дней и оцени силу сигнала найма
Как установить tracking-hiring-signals-from-company-tweets
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a claude-code2Вручную: положить файлы
~/.claude/skills/tracking-hiring-signals-from-company-tweets/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/tracking-hiring-signals-from-company-tweets/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a codex2Вручную: положить файлы
.agents/skills/tracking-hiring-signals-from-company-tweets/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a cursor2Вручную: положить файлы
.cursor/skills/tracking-hiring-signals-from-company-tweets/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills tracking-hiring-signals-from-company-tweets2Вручную: положить файлы
.github/skills/tracking-hiring-signals-from-company-tweets/SKILL.md1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a gemini-cli2Командой платформы
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/intent/tracking-hiring-signals-from-company-tweetsВручную: положить файлы
.devin/skills/tracking-hiring-signals-from-company-tweets/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о tracking-hiring-signals-from-company-tweets
Как установить tracking-hiring-signals-from-company-tweets в Claude Code?
Выполните npx skills add apidojo-io/apidojo-skills --skill tracking-hiring-signals-from-company-tweets -a claude-code. Скилл встанет в ~/.claude/skills/tracking-hiring-signals-from-company-tweets/SKILL.md.
Что делает этот скилл?
Ищет твиты компаний о найме, разбирает из них роль и команду и считает оценку роста. На выходе — отчёт с никами, ролями, датами и ссылками на вакансии.
Что нужно для работы скилла?
Переменная APIFY_TOKEN в окружении или в файле .env. Опционально можно подключить Apify MCP-сервер, тогда запуск идёт через инструмент apify:run-actor.
Исходный текст
SKILL.md · Apache-2.0
---
name: tracking-hiring-signals-from-company-tweets
description: >
Tracks hiring signals and growth indicators from company Twitter accounts using apidojo's Tweet
scraper on Apify. Triggers when the user asks to: find companies that are actively hiring on
Twitter, track job posting announcements from company accounts on X, identify startups that are
growing based on their hiring tweets, find companies hiring for specific roles from their Twitter,
monitor competitor hiring activity on social media, discover which companies are expanding teams
in a specific sector, or build a list of companies actively hiring for your skill set.
Returns company handle, role being hired, team/department signal, post date, and growth indicator.
Ideal for job seekers, talent intelligence teams, VCs tracking portfolio growth, and competitor analysts.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/tweet-scraper
---
# Tracking Hiring Signals from Company Tweets
Monitors company Twitter accounts for hiring announcements and growth signals. Companies tweet about openings before jobs.page or LinkedIn posts go live — Twitter is an early signal channel.
## 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: Search for hiring-signal tweets in sector
- [ ] Step 2: (Optional) Scrape specific company accounts
- [ ] Step 3: Extract role and team info from tweet text
- [ ] Step 4: Score growth signal strength
- [ ] Step 5: Deliver hiring intelligence report
```
### Step 1: Search Hiring Signals
**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": ["we're hiring [SECTOR]", "join our team [SECTOR]", "[ROLE] hiring [SECTOR]"],
"maxItems": 300
}
```
**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": ["we are hiring fintech", "join our team SaaS startup", "software engineer hiring"],
"maxItems": 300
}'
```
### Step 2: Extract Role Signals from Tweet Text
```
role_mentioned = extract noun phrases after "hiring a/an", "looking for a/an", "seeking a"
team_mentioned = extract from: "engineering team", "sales team", "marketing", "product team"
urgency = "immediately", "ASAP", "urgent" → HIGH; "growing team" → MEDIUM; general → LOW
```
### Step 3: Growth Signal Score
```
hiring_signal_score = (is_confirmed_company_account ? 1 : 0.5) * 0.30
+ (role_is_specific ? 1 : 0.5) * 0.25
+ (post_is_recent: ≤7 days = 1, 8-14 = 0.7, 15-30 = 0.4) * 0.25
+ (link_to_job_page ? 1 : 0) * 0.20
```
**Growth tier:** Multiple hiring tweets in 30 days = HIGH_GROWTH; 1-2 = STEADY_HIRE; no link = SIGNAL_ONLY
### Step 4: Edge Cases
- **Retweets from employee accounts**: If a company employee retweets a job post, keep — it's still a valid signal; note it's not the company's official account
- **Job boards posting on behalf of company**: Filter out accounts named "JobsAt[Company]", staffing agencies, or accounts posting > 10 hiring tweets/day (aggregators)
- **Role extraction fails**: Note the tweet verbatim and mark `role = "unspecified"` — still a growth signal
- **Same company posts 5 roles**: Deduplicate by `author.username`; count unique companies, not unique tweets
## Output Format
```
# Hiring Signal Intelligence: [SECTOR/ROLE]
Tweets analyzed: [N] | Companies with hiring signals: [N] | Date: [DATE]
## High-Growth Companies (Multiple Roles Posted)
| Company | @Handle | Roles Mentioned | Teams | Posts | Link to Jobs | Score |
|---------|---------|----------------|-------|-------|-------------|-------|
| [name] | @[handle] | [role list] | [eng/mktg] | [N] | [Yes/No] | [0.XX] |
## Single Hire Signals
| Company | @Handle | Role | Team | Tweet Date | Job Link |
|---------|---------|------|------|-----------|---------|
## Role Distribution Across All Companies
| Role Category | # Companies Hiring | Urgency |
|--------------|-------------------|---------|
| Engineering | [N] | [High/Med] |
| Marketing | [N] | |
| Sales | [N] | |
```
## Troubleshooting
**Results dominated by job boards**: Add negative terms to search: `-jobs -jobboard -staffing -recruiting`
**Sector too broad**: Narrow with a sub-sector or specific stage: "Series A fintech" instead of "fintech".
**Job links are broken/expired**: Hiring tweets are posted in real-time; check within 48h for best link validity.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills