Agent Skills

building-twitter-prospect-lists

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. Ret

Install

npx skills add https://github.com/apidojo-io/apidojo-skills --skill building-twitter-prospect-lists
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

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 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.

Related skills

reddit-automationflowkit-labs682KFind Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human intwitter-automation101-skills547KAutomate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automatwitter-automationqu-skills289KAutomate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automaseo-auditcoreyhaines31216KWhen the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help wit

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers