Browser & AutomationDocumentedScanned

apify-lead-generation

Generates B2B/B2C leads by scraping Google Maps, websites, Instagram, TikTok, Facebook, LinkedIn, YouTube.

Share:

Installation

npx clawhub@latest install apify-lead-generation

View the full skill documentation and source below.

Documentation

Lead Generation

Scrape leads from multiple platforms using Apify Actors.

Prerequisites

(No need to check it upfront)
  • .env file with APIFY_TOKEN
  • Node.js 20.6+ (for native --env-file support)
  • mcpc CLI tool (for fetching Actor schemas)

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 NeedActor IDBest For
Local businessescompass/crawler-google-placesRestaurants, gyms, shops
Contact enrichmentvdrmota/contact-info-scraperEmails, phones from URLs
Instagram profilesapify/instagram-profile-scraperInfluencer discovery
Instagram posts/commentsapify/instagram-scraperPosts, comments, hashtags, places
Instagram searchapify/instagram-search-scraperPlaces, users, hashtags discovery
TikTok videos/hashtagsclockworks/tiktok-scraperComprehensive TikTok data extraction
TikTok hashtags/profilesclockworks/free-tiktok-scraperFree TikTok data extractor
TikTok user searchclockworks/tiktok-user-search-scraperFind users by keywords
TikTok profilesclockworks/tiktok-profile-scraperCreator outreach
TikTok followers/followingclockworks/tiktok-followers-scraperAudience analysis, segmentation
Facebook pagesapify/facebook-pages-scraperBusiness contacts
Facebook page contactsapify/facebook-page-contact-informationExtract emails, phones, addresses
Facebook groupsapify/facebook-groups-scraperBuying intent signals
Facebook eventsapify/facebook-events-scraperEvent networking, partnerships
Google Searchapify/google-search-scraperBroad lead discovery
YouTube channelsstreamers/youtube-scraperCreator partnerships
Google Maps emailspoidata/google-maps-email-extractorDirect 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