building-twitter-prospect-lists

v2026.09.24

Builds targeted B2B prospect lists from Twitter/X profiles and posts using apidojo's Twitter scrapers on Apify. Triggers when the user asks to: find Twitter users with a specific job title or keyword in bio, build a list of founders or executives on Twitter, find people tweeting about a topic for outreach, identify potential customers on X, scrape Twitter profiles matching an ICP description, find decision-makers in a specific industry on Twitter, or export a list of leads from Twitter bios. Returns name, username, bio, follower count, location, and recent tweet samples per prospect. Ideal for B2B SDRs, growth hackers, founder-led sales teams, and partnership managers.

GitHub
安装命令
npx skhub add apidojo-io/building-twitter-prospect-lists
Markdown
SKILL.md

Building Twitter Prospect Lists

Searches Twitter/X for profiles matching a target ICP (Ideal Customer Profile) using bio keywords and topic-based tweet search. Delivers a contact-ready list with engagement signals and bio context.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
searchTermsarray✅[]Twitter advanced search queries (e.g. ["#AI lang:en", "from:NASA"])
sortstringOptionalTopSort order: Latest, Top, or Latest+Top
tweetLanguagestringOptional—ISO 639-1 language code (e.g. en)
maxItemsnumberOptionalUnlimitedMaximum tweets to return
onlyVerifiedUsersbooleanOptionalfalseOnly tweets from verified users
onlyTwitterBluebooleanOptionalfalseOnly Twitter Blue subscribers
onlyImagebooleanOptionalfalseOnly tweets with images
onlyVideobooleanOptionalfalseOnly tweets with videos
onlyQuotebooleanOptionalfalseOnly quote tweets
authorstringOptional—Filter to a specific author handle
inReplyTostringOptional—Tweets replying to a specific handle
mentioningstringOptional—Tweets mentioning a specific handle
geotaggedNearstringOptional—Tweets near a location
withinRadiusstringOptional—Radius around geotaggedNear
geocodestringOptional—Lat/lng + radius string
placeObjectIdstringOptional—Tweets tagged with a place
minimumRetweetsnumberOptional—Minimum retweet count
minimumFavoritesnumberOptional—Minimum like count
minimumRepliesnumberOptional—Minimum reply count
startstringOptional—Tweets after this date (YYYY-MM-DD)
endstringOptional—Tweets before this date (YYYY-MM-DD)
includeSearchTermsbooleanOptionalfalseAdd the matched search term to each tweet
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Define ICP and search strategy
- [ ] Step 2: Run tweet-scraper for keyword/topic tweets
- [ ] Step 3: Extract unique authors from results
- [ ] Step 4: Enrich with twitter-user-scraper for bio + follower data
- [ ] Step 5: Filter, rank, and deliver prospect list

Step 1: Define ICP and Strategy

Ask the user:

  • Job title keywords for Twitter bio search (e.g., "Head of Growth", "Founder", "CTO")
  • Topic keywords — what topics does the ICP tweet about? (e.g., "SaaS metrics", "PLG", "RevOps")
  • Industry signals — keywords that suggest the right industry in bio (e.g., "SaaS", "fintech", "healthcare")
  • Follower range (optional) — e.g., 1,000–50,000 (avoids both nobodies and celebrities)
  • Location (optional) — e.g., "San Francisco", "London"
  • List size — how many prospects needed?

Step 2: Search for Topic-Based Tweets

Search Twitter for tweets about topics your ICP cares about. People who actively tweet about a topic are warmer prospects.

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# 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": ["[TOPIC_KEYWORD_1]", "[TOPIC_KEYWORD_2]"],
  "maxItems": 200,
  "tweetLanguage": "en"
}

If Apify MCP is not available:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": ["[TOPIC_KEYWORD]"],
    "maxItems": 200
  }'

Run for each topic keyword. Collect all author.username values. Deduplicate. This gives you a candidate pool.

Step 3: Enrich Candidates with Profile Data

Take the top 100-200 unique usernames from Step 2. Fetch full profile data to filter by bio keywords and follower count.

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
  "usernames": ["[username1]", "[username2]", "..."],
  "maxItems": 100
}

If Apify MCP is not available:

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 Against ICP Criteria

From profile data, keep only users where ALL of these are true:

  1. Bio contains at least one job title keyword OR industry signal keyword
  2. Follower count is within the specified range (if given)
  3. Location matches (if specified) — check location field
  4. Account is not a bot (has profile picture, has >10 tweets, account age >6 months)

Remove:

  • Accounts with default profile images
  • Accounts with 0 tweets
  • Verified mega-influencers (follower count above range)
  • Obviously automated accounts

Step 5: Rank and Format

Rank filtered prospects by:

  1. Relevance score = number of ICP keywords matched in bio
  2. Engagement proxy = (likes + retweets on recent tweets) / follower count

Output Format

# Twitter Prospect List: [ICP DESCRIPTION]
Generated: [N] prospects | Filters applied: [summary] | Date: [DATE]

| # | Name | Handle | Followers | Job / Bio | Location | Last Active | Profile |
|---|------|--------|-----------|-----------|----------|-------------|---------|
| 1 | [name] | @[handle] | [N] | [bio excerpt] | [city] | [date] | [url] |
| 2 | [name] | @[handle] | [N] | [bio excerpt] | [city] | [date] | [url] |

## Top 10 Highest-Priority Prospects
1. **@[handle]** — "[bio]" | [N] followers | Recently tweeted about: [topic]
2. **@[handle]** — "[bio]" | [N] followers | Recently tweeted about: [topic]
...

## Notes
- [N] candidates found in topic search
- [N] filtered out (didn't match ICP criteria)
- [N] final prospects delivered
- Engagement signals are 24-48h delayed

Personalizing Outreach

For each top prospect, the recent tweet sample can be used to personalize outreach. Note their recent topics to reference in a first message.

Troubleshooting

Too few results after filtering: Broaden bio keywords (use OR logic, not AND). Try more topic keywords in Step 2. Too many irrelevant accounts: Add industry-specific keywords to bio filter (e.g., require "SaaS" or "B2B" in bio). Location filter not working: Twitter location is self-reported and inconsistent — treat it as a soft signal, not a hard filter.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

Apache-2.0

源路径

skills/intent/building-twitter-prospect-lists

默认分支

main

最新提交

ffbdc00

Tree SHA

c7df562