Skill: apify/apify-ultimate-scraper (version 1.0.1)

--- name: apify-ultimate-scraper description: Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, Google Maps, Google Search, Google Trends, Booking.com, and TripAdvisor. Use for lead generation, brand monitoring, competitor analysis, influencer discovery, trend research, content analytics, audience analysis, or any data extraction task. version: 1.0.8 source: https://github.com/apify/agent-skills homepage: https://apify.com metadata: openclaw: requires: env: - APIFY_TOKEN bins: - node - mcpc primaryEnv: APIFY_TOKEN install: - kind: node package: "@apify/mcpc" bins: [mcpc] --- # Universal Web Scraper AI-driven data extraction from 55+ Actors across all major platforms. This skill automatically selects the best Actor for your task. ## 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: Understand user goal and select Actor - [ ] Step 2: Fetch Actor schema via mcpc - [ ] Step 3: Ask user preferences (format, filename) - [ ] Step 4: Run the scraper script - [ ] Step 5: Summarize results and offer follow-ups ``` ### Step 1: Understand User Goal and Select Actor First, understand what the user wants to achieve. Then select the best Actor from the options below. #### Instagram Actors (12) | Actor ID | Best For | |----------|----------| | `apify/instagram-profile-scraper` | Profile data, follower counts, bio info | | `apify/instagram-post-scraper` | Individual post details, engagement metrics | | `apify/instagram-comment-scraper` | Comment extraction, sentiment analysis | | `apify/instagram-hashtag-scraper` | Hashtag content, trending topics | | `apify/instagram-hashtag-stats` | Hashtag performance metrics | | `apify/instagram-reel-scraper` | Reels content and metrics | | `apify/instagram-search-scraper` | Search users, places, hashtags | | `apify/instagram-tagged-scraper` | Posts tagged with specific accounts | | [REDACTED_SECRET] | Follower count tracking | | `apify/instagram-scraper` | Comprehensive Instagram data | | `apify/instagram-api-scraper` | API-based Instagram access | | [REDACTED_SECRET] | Bulk comment/post export | #### Facebook Actors (14) | Actor ID | Best For | |----------|----------| | `apify/facebook-pages-scraper` | Page data, metrics, contact info | | [REDACTED_SECRET] | Emails, phones, addresses from pages | | `apify/facebook-posts-scraper` | Post content and engagement | | `apify/facebook-comments-scraper` | Comment extraction | | `apify/facebook-likes-scraper` | Reaction analysis | | `apify/facebook-reviews-scraper` | Page reviews | | `apify/facebook-groups-scraper` | Group content and members | | `apify/facebook-events-scraper` | Event data | | `apify/facebook-ads-scraper` | Ad creative and targeting | | `apify/facebook-search-scraper` | Search results | | `apify/facebook-reels-scraper` | Reels content | | `apify/facebook-photos-scraper` | Photo extraction | | [REDACTED_SECRET] | Marketplace listings | | [REDACTED_SECRET] | Follower/following lists | #### TikTok Actors (14) | Actor ID | Best For | |----------|----------| | `clockworks/tiktok-scraper` | Comprehensive TikTok data | | `clockworks/free-tiktok-scraper` | Free TikTok extraction | | [REDACTED_SECRET] | Profile data | | `clockworks/tiktok-video-scraper` | Video details and metrics | | [REDACTED_SECRET] | Comment extraction | | [REDACTED_SECRET] | Follower lists | | [REDACTED_SECRET] | Find users by keywords | | [REDACTED_SECRET] | Hashtag content | | `clockworks/tiktok-sound-scraper` | Trending sounds | | `clockworks/tiktok-ads-scraper` | Ad content | | [REDACTED_SECRET] | Discover page content | | [REDACTED_SECRET] | Explore content | | [REDACTED_SECRET] | Trending content | | `clockworks/tiktok-live-scraper` | Live stream data | #### YouTube Actors (5) | Actor ID | Best For | |----------|----------| | `streamers/youtube-scraper` | Video data and metrics | | [REDACTED_SECRET] | Channel information | | [REDACTED_SECRET] | Comment extraction | | [REDACTED_SECRET] | Shorts content | | [REDACTED_SECRET] | Videos by hashtag | #### Google Maps Actors (4) | Actor ID | Best For | |----------|----------| | `compass/crawler-google-places` | Business listings, ratings, contact info | | `compass/google-maps-extractor` | Detailed business data | | [REDACTED_SECRET] | Review extraction | | [REDACTED_SECRET] | Email discovery from listings | #### Other Actors (6) | Actor ID | Best For | |----------|----------| | `apify/google-search-scraper` | Google search results | | `apify/google-trends-scraper` | Google Trends data | | `voyager/booking-scraper` | Booking.com hotel data | | `voyager/booking-reviews-scraper` | Booking.com reviews | | `maxcopell/tripadvisor-reviews` | TripAdvisor reviews | | `vdrmota/contact-info-scraper` | Contact enrichment from URLs | --- #### Actor Selection by Use Case | Use Case | Primary Actors | |----------|---------------| | **Lead Generation** | `compass/crawler-google-places`, [REDACTED_SECRET], `vdrmota/contact-info-scraper` | | **Influencer Discovery** | `apify/instagram-profile-scraper`, [REDACTED_SECRET], [REDACTED_SECRET] | | **Brand Monitoring** | `apify/instagram-tagged-scraper`, `apify/instagram-hashtag-scraper`, [REDACTED_SECRET] | | **Competitor Analysis** | `apify/facebook-pages-scraper`, `apify/facebook-ads-scraper`, `apify/instagram-profile-scraper` | | **Content Analytics** | `apify/instagram-post-scraper`, `clockworks/tiktok-scraper`, `streamers/youtube-scraper` | | **Trend Research** | `apify/google-trends-scraper`, [REDACTED_SECRET], `apify/instagram-hashtag-stats` | | **Review Analysis** | [REDACTED_SECRET], `voyager/booking-reviews-scraper`, `maxcopell/tripadvisor-reviews` | | **Audience Analysis** | [REDACTED_SECRET], [REDACTED_SECRET], [REDACTED_SECRET] | --- #### Multi-Actor Workflows For complex tasks, chain multiple Actors: | Workflow | Step 1 | Step 2 | |----------|--------|--------| | **Lead enrichment** | `compass/crawler-google-places` → | `vdrmota/contact-info-scraper` | | **Influencer vetting** | `apify/instagram-profile-scraper` → | `apify/instagram-comment-scraper` | | **Competitor deep-dive** | `apify/facebook-pages-scraper` → | `apify/facebook-posts-scraper` | | **Local business analysis** | `compass/crawler-google-places` → | [REDACTED_SECRET] | #### Can't Find a Suitable Actor? If none of the Actors above match the user's request, search the Apify Store directly: ```bash mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call search-actors keywords:="SEARCH_KEYWORDS" limit:=10 offset:=0 category:="" | jq -r '.content[0].text' ``` Replace `SEARCH_KEYWORDS` with 1-3 simple terms (e.g., "LinkedIn profiles", "Amazon products", "Twitter"). ### 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 and Offer Follow-ups After completion, report: - Number of results found - File location and name - Key fields available - **Suggested follow-up workflows** based on results: | If User Got | Suggest Next | |-------------|--------------| | Business listings | Enrich with `vdrmota/contact-info-scraper` or get reviews | | Influencer profiles | Analyze engagement with comment scrapers | | Competitor pages | Deep-dive with post/ad scrapers | | Trend data | Validate with platform-specific hashtag scrapers | ## 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`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)