Generates B2B/B2C leads by scraping Google Maps, websites, Instagram, TikTok, Facebook, LinkedIn, YouTube, and Google Search. Use when user asks to find leads, prospects, businesses, build lead lists, enrich contacts, or scrape profiles for sales outreach.
/plugin marketplace add apify/claude-code-plugins/plugin install lead-generation@apifyThis skill inherits all available tools. When active, it can use any tool Claude has access to.
reference/actors/apify-facebook-events-scraper.mdreference/actors/apify-facebook-groups-scraper.mdreference/actors/apify-facebook-page-contact-information.mdreference/actors/apify-facebook-pages-scraper.mdreference/actors/apify-google-search-scraper.mdreference/actors/apify-instagram-profile-scraper.mdreference/actors/apify-instagram-scraper.mdreference/actors/apify-instagram-search-scraper.mdreference/actors/apify-instagram-tagged-scraper.mdreference/actors/clockworks-free-tiktok-scraper.mdreference/actors/clockworks-tiktok-followers-scraper.mdreference/actors/clockworks-tiktok-profile-scraper.mdreference/actors/clockworks-tiktok-scraper.mdreference/actors/clockworks-tiktok-user-search-scraper.mdreference/actors/compass-crawler-google-places.mdreference/actors/poidata-google-maps-email-extractor.mdreference/actors/streamers-youtube-scraper.mdreference/actors/vdrmota-contact-info-scraper.mdreference/scripts/run_actor.pyreference/workflows.mdScrape leads from multiple platforms using Apify Actors.
.env file with APIFY_TOKENuvCopy this checklist and track progress:
Task Progress:
- [ ] Step 1: Determine lead source (select Actor)
- [ ] Step 2: Read Actor schema from reference docs
- [ ] Step 3: Ask user preferences (format, filename)
- [ ] Step 4: Run the lead finder script
- [ ] Step 5: Summarize results
Select the appropriate Actor based on user needs:
| User Need | Actor ID | Best For | Reference Doc |
|---|---|---|---|
| Local businesses | compass/crawler-google-places | Restaurants, gyms, shops | Schema |
| Contact enrichment | vdrmota/contact-info-scraper | Emails, phones from URLs | Schema |
| Instagram profiles | apify/instagram-profile-scraper | Influencer discovery | Schema |
| Instagram posts/comments | apify/instagram-scraper | Posts, comments, hashtags, places | Schema |
| Instagram search | apify/instagram-search-scraper | Places, users, hashtags discovery | Schema |
| TikTok videos/hashtags | clockworks/tiktok-scraper | Comprehensive TikTok data extraction | Schema |
| TikTok hashtags/profiles | clockworks/free-tiktok-scraper | Free TikTok data extractor | Schema |
| TikTok user search | clockworks/tiktok-user-search-scraper | Find users by keywords | Schema |
| TikTok profiles | clockworks/tiktok-profile-scraper | Creator outreach | Schema |
| TikTok followers/following | clockworks/tiktok-followers-scraper | Audience analysis, segmentation | Schema |
| Facebook pages | apify/facebook-pages-scraper | Business contacts | Schema |
| Facebook page contacts | apify/facebook-page-contact-information | Extract emails, phones, addresses | Schema |
| Facebook groups | apify/facebook-groups-scraper | Buying intent signals | Schema |
| Facebook events | apify/facebook-events-scraper | Event networking, partnerships | Schema |
| Google Search | apify/google-search-scraper | Broad lead discovery | Schema |
| YouTube channels | streamers/youtube-scraper | Creator partnerships | Schema |
| Google Maps emails | poidata/google-maps-email-extractor | Direct email extraction | Schema |
Read the corresponding reference doc from the table above to understand:
Before running, ask:
Quick answer (display in chat, no file):
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "ACTOR_ID" \
--input 'JSON_INPUT'
CSV (all data):
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output OUTPUT_FILE.csv \
--format csv
CSV (basic fields):
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output OUTPUT_FILE.csv \
--format csv \
--fields basic
JSON (all data):
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output OUTPUT_FILE.json \
--format json
The script handles:
APIFY_TOKEN from .envAfter completion, report:
Quick answer - display top 5 in chat:
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "compass/crawler-google-places" \
--input '{"searchStringsArray": ["coffee shops"], "locationQuery": "Seattle, USA", "maxCrawledPlacesPerSearch": 50}'
Google Maps - CSV with basic fields:
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "compass/crawler-google-places" \
--input '{"searchStringsArray": ["coffee shops"], "locationQuery": "Seattle, USA", "maxCrawledPlacesPerSearch": 50}' \
--output coffee-shops-seattle.csv \
--format csv \
--fields basic
Contact enrichment - full JSON export:
uv run --with python-dotenv --with requests \
${CLAUDE_PLUGIN_ROOT}/skills/generating-leads/reference/scripts/run_actor.py \
--actor "vdrmota/contact-info-scraper" \
--input '{"startUrls": [{"url": "https://example.com"}], "maxRequestsPerStartUrl": 20}' \
--output contacts.json \
--format json
See reference/workflows.md for detailed step-by-step guides for each use case.
| Error | Solution |
|---|---|
APIFY_TOKEN not found | Ask user to create .env with APIFY_TOKEN=your_token |
Actor not found | Check Actor ID spelling |
Run FAILED | Ask user to check Apify console link in error output |
Timeout | Reduce input size or increase --timeout |