Skip to main content
skill CX Codex

finding-data-scientists-on-twitter — Claude Code skill

Searches Twitter for data scientists and ML engineers who may fit a hiring pipeline, then enriches profiles with skills and work-interest signals.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill finding-data-scientists-on-twitter -a claude-code
Open on GitHub

What finding-data-scientists-on-twitter does

This skill searches role-focused tweets with apidojo~tweet-scraper, collects distinct authors, and enriches their profiles through apidojo~twitter-user-scraper. It checks bios and posts for ML specialties, research indicators, activity, and open-to-work signals. Results can include names, handles, technologies, follower counts, and a candidate-fit score.

The workflow can run through scripts/run_actor.js, Apify MCP, or the REST API. The helper prints a table or writes CSV and JSON files. Inputs cover profile, tweet, user ID, follower, following, and retweeter sources, along with maxItems and customMapFunction.

The actors need APIFY_TOKEN in the environment or a .env file. Account filtering also handles company profiles, possible bots, inactive authors, and free-text locations, so a broad search can require manual review.

What it helps with

  • find ML engineers by specialty on Twitter
  • build a candidate list from job-seeking tweets
  • enrich profiles with stack and research signals
  • filter company accounts and possible bots

Example prompts for the agent

  • Find data scientists and ML engineers on Twitter who are open to work, then return their profiles.
  • Search for NLP and LLM specialists, inspect their bios and recent posts, and rank the candidates.
  • Find people posting about machine learning jobs and save the results as CSV.

How to install finding-data-scientists-on-twitter

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill finding-data-scientists-on-twitter -a claude-code

2Manually: put the files in place

~/.claude/skills/finding-data-scientists-on-twitter/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/finding-data-scientists-on-twitter/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about finding-data-scientists-on-twitter

How do I install finding-data-scientists-on-twitter in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill finding-data-scientists-on-twitter -a claude-code, then check ~/.claude/skills/finding-data-scientists-on-twitter/SKILL.md.

What does finding-data-scientists-on-twitter do?

It finds data and ML professionals on Twitter, enriches their profiles, and assesses specialties, activity, research indicators, and signals that they may be open to work.

What is required to run the skill?

Set APIFY_TOKEN in the environment or in .env. The workflow uses Apify actors for tweet search and profile enrichment, with Apify MCP as another execution option.

Source text

SKILL.md · Apache-2.0
---
name: finding-data-scientists-on-twitter
description: >
  Finds data scientists and ML engineers to recruit using apidojo's Twitter scrapers on Apify.
  Triggers when the user asks to: find data scientists on Twitter for recruiting, discover machine learning engineers or AI researchers to hire from X, find data analysts or ML practitioners by specialization on Twitter, identify NLP computer vision or LLM engineers via social signals, find data science professionals open to work on Twitter, build a data science talent pipeline from social, or find researchers posting about job opportunities.
  Returns handle, name, ML specialty (from bio/tweets), stack (Python/R/TensorFlow), follower count, and open-to-work signals.
  Ideal for ML engineering hiring managers, AI research labs, and data-driven startups.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actors: apidojo/twitter-user-scraper, apidojo/tweet-scraper
---

# Finding Data Scientists And Ml Engineers on Twitter

Discovers data scientists and ML engineers on Twitter via skill keywords, portfolio/project signals, and open-to-work indicators. Twitter surfaces professionals who actively discuss their craft — a strong passive candidate signal.

## 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: Search for role-specific tweets
- [ ] Step 2: Collect unique handles
- [ ] Step 3: Enrich profiles
- [ ] Step 4: Score candidate fit
- [ ] Step 5: Deliver candidate list
```

### Step 1: Search Queries


**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": ["data scientist", "ML engineer", "LLM engineer", "machine learning open to work"],
  "maxItems": 300,
  "tweetLanguage": "en"
}
```

**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": ["data scientist", "ML engineer", "LLM engineer", "machine learning open to work"], "maxItems": 300}'
```

Collect unique `author.username` from results.

### Step 2: Enrich Profiles

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

**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": ["handle1", "handle2"]}'
```

### Step 3: Filter and Score

**Skill confirmation:** bio contains keywords: "data science", "machine learning", "ML", "NLP", "LLM", "AI", "neural network", "PyTorch", "TensorFlow", "scikit-learn"

**research_signal = bio contains 'PhD', 'researcher', or links to papers/Google Scholar**

**Candidate score:**
```
candidate_score = (skill_confirmed ? 1 : 0) * 0.35
                + (open_to_work_signal ? 1 : 0) * 0.30
                + (followerCount in 200..20000 ? 1 : 0.6) * 0.20
                + (tweeted_in_last_30_days ? 1 : 0) * 0.15
```

Activity: active (< 30 days) | passive (30–90 days) | dormant (> 90 days)

### Step 4: Edge Cases

- **Company/brand accounts in results**: Filter where `followerCount > 50K` AND bio contains no personal pronouns; these are likely brand accounts
- **< 20 candidates found**: Broaden skill term; remove location or seniority filter; try adjacent skills
- **Bot detection**: Flag `followerCount / followingCount < 0.05` AND `tweetsCount < 20` as potential bot
- **Location not matching**: Bio location is free text — use fuzzy match; accept partial city/country names

## Output Format

```
# Data Scientists And Ml Engineers Candidates: [ML_SPECIALTY]
Profiles found: [N] | Open-to-work: [N] | Active: [N] | Date: [DATE]

## Priority: Open-to-Work Candidates
| Name | @Handle | Specialty | Location | Followers | Last Active | Score |
|------|---------|----------|---------|-----------|------------|-------|

## Passive Candidates
| Name | @Handle | Specialty | Location | Followers | Score |
|------|---------|----------|---------|-----------|-------|

## Bio Highlights (Top 5)
1. @[handle]: "[bio excerpt]"
```

## Troubleshooting

**All results are agencies/companies not individuals**: Add personal pronouns filter or search `"I am a [role]"`, `"I do [skill]"`.
**Role too generic returns too many results**: Add location OR seniority qualifier.
**No open-to-work signals**: Most candidates don't signal publicly — treat passive candidates as warm leads with personalized outreach referencing their recent content.

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

Similar skills

All skills for AI and ML →

From the same set57

scraping-tiktok-posts-by-music Pulls TikTok posts built on one sound or track and returns their stats, creators and song metadata. Useful when you need to see who is using a piece of music. CX Codex +1 793installs monitoring-vc-investor-activity-on-twitter This skill pulls investor tweets through apidojo's scraper, classifies the accounts and scores deal signals. Useful when you are raising. CX Codex +1 789installs scraping-instagram-posts-by-hashtag Collects Instagram posts by hashtag through Apify, including author and engagement data. Use it for trend research, UGC collection, or tag-based exports. CX Codex +1 787installs tracking-twitter-thought-leaders Finds Twitter/X accounts whose posts on a topic actually get shared, then hands back a ranked list for PR and partnerships. CX Codex +1 786installs monitoring-twitter-for-competitor-job-posts Tracks competitor hiring tweets on X and turns them into growth signals: who is hiring, for what role, and when. CX Codex +1 786installs tracking-sports-team-fan-sentiment-twitter Collects tweets about a sports team and measures fan sentiment. Use it to study reactions to games, team news, player trades, and events. CX Codex +1 785installs analyzing-competitor-twitter-profile-content This skill pulls a competitor's or brand's tweet history through Apify and ranks posts by engagement. Useful when you need to see what a rival actually posts. CX Codex +1 784installs finding-podcast-hosts-for-outreach Find podcast hosts for PR and guest pitches through Apify Twitter scrapers. Use it when you need a topic-focused outreach list. CX Codex +1 782installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor