Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Finding Podcast Hosts for Outreach
Discovers podcast hosts on Twitter by episode announcements, guest mentions, and show promotion signals.
Prerequisites
APIFY_TOKENenvironment 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 podcast announcement tweets
- [ ] Step 2: Collect unique host handles
- [ ] Step 3: Enrich host profiles
- [ ] Step 4: Score outreach priority
- [ ] Step 5: Deliver podcast outreach listStep 1: Search Queries
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
# 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 jsonAPIFY_TOKENmust be set in environment or.envfile.
If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": ["[TOPIC] podcast", "new episode [TOPIC]", "podcast host [TOPIC]"],
"maxItems": 300
}REST API fallback:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["entrepreneurship podcast", "new episode startup"], "maxItems": 300}'Step 2: Enrich and Filter
Run apidojo~twitter-user-scraper on handles. Keep profiles where bio contains "podcast", "host", "show", "episodes".
Guest format: bio or tweets mention "guest", "interview", "this week's guest" → has_guest_format = true
Step 3: Score Outreach Priority
outreach_score = (has_guest_format ? 1 : 0.3) * 0.35
+ (tweeted_episode_in_last_30_days ? 1 : 0) * 0.25
+ (followerCount in 1000..100000 ? 1 : 0.6) * 0.25
+ (topic_alignment: strong=1, weak=0.5) * 0.15Step 4: Edge Cases
- Account shares content but is not host: Verify bio says "host" — some accounts share show content without hosting
- Show name not findable: Note as
show_name_unknown; LinkedIn search needed - Large media company podcast: Flag as
PREMIUM_PLACEMENT— A-list guests only
Output Format
# Podcast Host Outreach List: [TOPIC]
Hosts found: [N] | Guest-format: [N] | Active: [N] | Date: [DATE]
## Priority (Guest-Format + Active + Mid-Tier)
| Host | @Handle | Show | Followers | Last Episode | Score |
|------|---------|------|-----------|-------------|-------|
## Small Shows (Easier to Land)
| Host | @Handle | Followers | Last Active |
|------|---------|-----------|------------|
## Personalization Tip
Reference the host's most recent episode topic in your pitch — hosts receive dozens of pitches, relevance is the strongest differentiator.Troubleshooting
Results include listeners not hosts: Require "podcast host" OR "host of [show]" in bio. No show found on Twitter: Supplement with Spotify/Apple Podcasts search. Host inactive > 60 days: Flag as potentially on hiatus; verify before pitching.

