apify-lead-generation
# Lead Generation
Scrape leads from multiple platforms using Apify Actors.
## Prerequisites
- `APIFY_TOKEN` configured in OpenClaw settings
- Node.js 20.6+
- `mcpc` CLI (auto-installed via skill metadata)
## Input Sanitization Rules
Before substituting any value into a bash command:
- **ACTOR_ID**: Must be either a technical name (`owner/actor-name` — alphanumeric, hyphens, dots, one slash) or a raw ID (exactly 17 alphanumeric characters, e.g., `oeiQgfg5fsmIJB7Cn`). Reject values containing shell metacharacters (`` ; | & $ ` ( ) { } < > ! \n ``).
- **SEARCH_KEYWORDS**: Plain text words only. Reject shell metacharacters.
- **JSON_INPUT**: Must be valid JSON. Must not contain single quotes (use escaped double quotes). Validate structure before use.
- **Output filenames**: Must match `YYYY-MM-DD_descriptive-name.{csv,json}`. No path separators (`/`, `..`), no spaces, no metacharacters.
## 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:
```bash
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:
1. **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
2. **Number of results**: Based on character of use case
### Step 4: Run the Script
**Quick answer (display in chat, no file):**
```bash
node {baseDir}/reference/scripts/run_actor.js \
--actor 'ACTOR_ID' \
--input 'JSON_INPUT'
```
**CSV:**
```bash
node {baseDir}/reference/scripts/run_actor.js \
--actor 'ACTOR_ID' \
--input 'JSON_INPUT' \
--output 'YYYY-MM-DD_OUTPUT_FILE.csv' \
--format csv
```
**JSON:**
```bash
node {baseDir}/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)
## Security & Data Privacy
This skill instructs the agent to select an Apify Actor, fetch its schema (via mcpc), and run scrapers. The included script communicates only with api.apify.com and writes outputs to files under the current working directory; it does not access unrelated system files or other environment variables.
Apify Actors only scrape publicly available data and do not collect private or personally identifiable information beyond what is openly accessible on the target platforms. For additional security assurance, you can check an Actor's permission level by querying `https://api.apify.com/v2/acts/:actorId` — an Actor with `LIMITED_PERMISSIONS` operates in a restricted sandbox, while `FULL_PERMISSIONS` indicates broader system access. For full details, see [Apify's General Terms and Conditions](https://docs.apify.com/legal/general-terms-and-conditions).
## Error Handling
`APIFY_TOKEN not found` - Ask user to configure `APIFY_TOKEN` in OpenClaw settings
`mcpc not found` - Run `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`
标签
skill
ai