apify-lead-generation
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.
How do I install this agent skill?
npx skills add https://github.com/apify/agent-skills --skill apify-lead-generationIs this agent skill safe to install?
- Gen Agent Trust Hubwarn
The skill facilitates lead generation via web scraping but introduces several security risks. It constructs shell commands dynamically from user-provided input, which could allow for command injection. It also reads sensitive credentials from a local .env file and passes them through shell pipes, and it depends on an external NPM package from a non-pre-approved source. Furthermore, it lacks sanitization for data scraped from social media platforms, creating a surface for indirect prompt injection.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · No issues
- Runlayerfail
1/2 files flagged
What does this agent skill do?
Lead Generation
Scrape leads from multiple platforms using Apify Actors.
Prerequisites
(No need to check it upfront)
.envfile withAPIFY_TOKEN- Node.js 20.6+ (for native
--env-filesupport) mcpcCLI tool:npm install -g @apify/mcpc
Workflow
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: Determine lead source (select Actor)
- [ ] Step 2: Fetch Actor schema via mcpc
- [ ] Step 3: Ask user preferences (format, filename)
- [ ] Step 4: Run the lead finder script
- [ ] Step 5: Summarize results
Step 1: Determine Lead Source
Select the appropriate Actor based on user needs:
| User Need | Actor ID | Best For |
|---|---|---|
| Local businesses | compass/crawler-google-places | Restaurants, gyms, shops |
| Contact enrichment | vdrmota/contact-info-scraper | Emails, phones from URLs |
| Instagram profiles | apify/instagram-profile-scraper | Influencer discovery |
| Instagram posts/comments | apify/instagram-scraper | Posts, comments, hashtags, places |
| Instagram search | apify/instagram-search-scraper | Places, users, hashtags discovery |
| TikTok videos/hashtags | clockworks/tiktok-scraper | Comprehensive TikTok data extraction |
| TikTok hashtags/profiles | clockworks/free-tiktok-scraper | Free TikTok data extractor |
| TikTok user search | clockworks/tiktok-user-search-scraper | Find users by keywords |
| TikTok profiles | clockworks/tiktok-profile-scraper | Creator outreach |
| TikTok followers/following | clockworks/tiktok-followers-scraper | Audience analysis, segmentation |
| Facebook pages | apify/facebook-pages-scraper | Business contacts |
| Facebook page contacts | apify/facebook-page-contact-information | Extract emails, phones, addresses |
| Facebook groups | apify/facebook-groups-scraper | Buying intent signals |
| Facebook events | apify/facebook-events-scraper | Event networking, partnerships |
| Google Search | apify/google-search-scraper | Broad lead discovery |
| YouTube channels | streamers/youtube-scraper | Creator partnerships |
| Google Maps emails | poidata/google-maps-email-extractor | Direct email extraction |
Step 2: Fetch Actor Schema
Fetch the Actor's input schema and details dynamically using mcpc:
export $(grep APIFY_TOKEN .env | xargs) && mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call fetch-actor-details actor:="ACTOR_ID" | jq -r ".content"
Replace ACTOR_ID with the selected Actor (e.g., compass/crawler-google-places).
This returns:
- Actor description and README
- Required and optional input parameters
- Output fields (if available)
Step 3: Ask User Preferences
Before running, ask:
- Output format:
- Quick answer - Display top few results in chat (no file saved)
- CSV - Full export with all fields
- JSON - Full export in JSON format
- Number of results: Based on character of use case
Step 4: Run the Script
Quick answer (display in chat, no file):
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT'
CSV:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output YYYY-MM-DD_OUTPUT_FILE.csv \
--format csv
JSON:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output YYYY-MM-DD_OUTPUT_FILE.json \
--format json
Step 5: Summarize Results
After completion, report:
- Number of leads found
- File location and name
- Key fields available
- Suggested next steps (filtering, enrichment)
Error Handling
APIFY_TOKEN not found - Ask user to create .env with APIFY_TOKEN=your_token
mcpc not found - Ask user to install npm install -g @apify/mcpc
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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/apify/agent-skills/apify-lead-generation">View apify-lead-generation on skillZs</a>