Generated banner for Apify Ultimate Scraper
Generated logo for Apify Ultimate Scraper

Apify Ultimate Scraper

ApifyOfficialPublished by Apify

  • Skill
  • Tool integration
  • Automation and integrations
  • Apache-2.0
  • Low risk

From the author

Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, LinkedIn, X/Twitter, Google Maps, Google Search, Google Trends, Reddit, Airbnb, Yelp, and 15+ more platforms. Use for lead generation, brand monitoring, competitor analysis, influencer discovery, trend research, content analytics, audience analysis, review analysis, SEO intelligence, recruitment, or any data extraction task.
— the description by Apify

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The apify-ultimate-scraper skill provides a structured, AI-assisted approach to web data extraction. It leverages the Apify CLI to interact with a wide range of platform-specific Actors, ensuring consistent telemetry, machine-readable output, and cost-conscious execution. The skill includes a comprehensive index for selecting the right tool for tasks ranging from social media analytics to e-commerce price monitoring, while enforcing safety protocols for cost estimation and error handling.

What it does

  • Provides a standardized CLI workflow for searching, configuring, and running web scrapers.
  • Ensures machine-readable output by enforcing JSON formatting and stderr redirection.
  • Includes a cost estimation protocol for pay-per-event (PPE) Actors to prevent unexpected billing.
  • Facilitates dynamic retrieval of Actor input schemas and documentation.
  • Supports both synchronous execution for quick lookups and asynchronous polling for large-scale scrapes.
  • Integrates with a library of workflow guides for specific use cases like lead generation and SEO.

When to use it

  • When you need to extract structured data from social media, e-commerce, or search engine platforms.
  • When performing competitive intelligence, brand monitoring, or market research.
  • When you require a repeatable, automated pipeline for data collection.
  • When you need to verify the cost implications of a scraping task before execution.

Advantages

  • Reduces manual configuration errors through standardized CLI usage patterns.
  • Prevents budget overruns with built-in cost estimation and warning thresholds.
  • Provides a unified interface for interacting with over 100 different scraping tools.
  • Ensures stable, parseable output for downstream data processing.

Usage examples

“Find a scraper for Instagram follower counts.”
The agent searches the Actor index, identifies 'apify/instagram-followers-count-scraper', and provides the command to fetch its input schema.
“Scrape the top 50 results for 'AI tools' on Google Search.”
The agent selects the appropriate Google Search Actor, estimates the cost if applicable, runs the scrape, and presents the results as a formatted JSON list.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/apify/apify-ultimate-scraper/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip apify-ultimate-scraper.zip -d .agents/skills

Documentation by Apify

Universal web scraper

AI-driven data extraction from ~100 Actors across 15+ platforms via the Apify CLI.

Rules for every apify command:

  1. Pass --json for machine-readable output (stable across CLI versions).

  2. Pass --user-agent apify-agent-skills/apify-ultimate-scraper for telemetry attribution.

  3. Redirect stderr with 2>/dev/null (stderr contains progress messages that break JSON parsers).

Prerequisites

  • Apify CLI v1.5.0+ (npm install -g apify-cli)

  • Authenticated session (see below)

Authentication

If a CLI command fails with an auth error, authenticate using one of these methods:

  1. OAuth (interactive): apify login (opens browser)

  2. Environment variable: export APIFY_TOKEN=your_token_here

  3. From .env file: source .env (if the file contains APIFY_TOKEN=...)

Generate token: https://console.apify.com/settings/integrations

Workflow

Step 1: Understand goal and select Actor

Identify the target platform and use case. Read references/actor-index.md to find the right Actor.

If the task involves a multi-step pipeline, also read the matching workflow guide:

Task involves...Read
leads, contacts, emails, B2Breferences/workflows/lead-generation.md
competitor, ads, pricingreferences/workflows/competitive-intel.md
influencer, creatorreferences/workflows/influencer-vetting.md
brand, mentions, sentimentreferences/workflows/brand-monitoring.md
reviews, ratings, reputationreferences/workflows/review-analysis.md
SEO, SERP, crawl, content, RAGreferences/workflows/content-and-seo.md
analytics, engagement, performancereferences/workflows/social-media-analytics.md
trends, keywords, hashtagsreferences/workflows/trend-research.md
jobs, recruiting, candidatesreferences/workflows/job-market-and-recruitment.md
real estate, listings, hotelsreferences/workflows/real-estate-and-hospitality.md
price monitoring, e-commerce, productsreferences/workflows/ecommerce-price-monitoring.md
contact enrichment, email extractionreferences/workflows/contact-enrichment.md
knowledge base, RAG, LLM data feedreferences/workflows/knowledge-base-and-rag.md
company research, due diligencereferences/workflows/company-research.md

If no Actor matches in the index, search dynamically:

apify actors search "KEYWORDS" --user-agent apify-agent-skills/apify-ultimate-scraper --json --limit 10 2>/dev/null

From results: items[].username/items[].name (Actor ID), items[].title, items[].stats.totalUsers30Days, items[].currentPricingInfo.pricingModel.

Step 2: Fetch Actor schema and check gotchas

Fetch the input schema dynamically:

apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --input --json 2>/dev/null

Also read references/gotchas.md to check for common pitfalls for the selected Actor.

For Actor documentation: apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --readme

Step 3: Configure and run

Skip user preferences for simple lookups (e.g., "Nike's follower count"). Go straight to running with quick answer mode.

For larger tasks, confirm output format (quick answer / CSV / JSON) and result count.

Standard run (blocking):

apify actors call "ACTOR_ID" --input-file input.json --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null

Prefer --input-file input.json for large or complex inputs. For tiny inputs, inline JSON is acceptable with shell quoting: --input '{"maxItems":10}'.

From output: .id (run ID), .status, .defaultDatasetId, .stats.durationMillis

Fetch results:

apify datasets get-items DATASET_ID --user-agent apify-agent-skills/apify-ultimate-scraper --format json

For CSV: apify datasets get-items DATASET_ID --user-agent apify-agent-skills/apify-ultimate-scraper --format csv

Quick answer mode: Fetch results as JSON, pick top 5, present formatted in chat.

Save to file: Fetch results, use Write tool to save as YYYY-MM-DD_descriptive-name.csv or .json.

Large/long-running scrapes:

apify actors start "ACTOR_ID" --input-file input.json --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null

Poll: apify runs info RUN_ID --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null (check .status for SUCCEEDED).

Step 4: Deliver results

Report: result count, file location (if saved), key data fields, and links:

  • Dataset: https://console.apify.com/storage/datasets/DATASET_ID

  • Run: https://console.apify.com/actors/runs/RUN_ID

For multi-step workflows: suggest the next pipeline step from the workflow guide.

Troubleshooting

Common errors and pitfalls are documented in references/gotchas.md. Read it before running PPE (pay-per-event) Actors.

Files

references/workflows/lead-generation.md

Lead generation workflows

Local business leads with email enrichment

When: User wants business contacts, emails, or phone numbers for businesses in a specific location.

Pipeline
  1. Find businesses -> compass/crawler-google-places

    • Key input: searchStringsArray, locationQuery, maxCrawledPlaces

  2. Enrich with contacts -> compass/enrich-google-maps-dataset-with-contacts

    • Pipe: results[].url -> startUrls (or pass the dataset ID directly)

    • Key input: datasetId (from step 1), maxRequestsPerCrawl

Output fields

Step 1: title, address, phone, website, categoryName, totalScore, reviewsCount, url Step 2: emails[], phones[], socialLinks, linkedInUrl, twitterUrl

Gotcha

Google Maps results vary by language and location. Set language: "en" explicitly. Also set locationQuery to a specific city/region, not just a country.


B2B prospect discovery via LinkedIn

When: User wants to find professionals by role, company, or industry.

Pipeline
  1. Search profiles -> harvestapi/linkedin-profile-search

    • Key input: keyword, location, title, limit

  2. Enrich with details -> harvestapi/linkedin-profile-scraper

    • Pipe: results[].profileUrl -> urls

    • Key input: urls, includeEmail (set to true for email discovery)

Output fields

Step 1: fullName, headline, location, profileUrl, currentCompany Step 2: experience[], education[], skills[], email, phone

Cost estimate

Step 2 with includeEmail: true costs ~$0.01/profile. For 500 profiles, budget ~$5.

Gotcha

LinkedIn Actors are all PPE. Estimate and confirm with user before running at scale.


Sales Navigator bulk lead extraction

When: User wants daily 100-1,000 lead extraction from a Sales Navigator search for outbound sequences.

Pipeline
  1. Extract leads -> harvestapi/linkedin-profile-search

    • Key input: searchUrl (Sales Navigator search URL), maxResults, proxy settings

  2. Verify emails -> native n8n Hunter.io node or HTTP Request to ZeroBounce API

    • Pipe: results[].email -> email verification input

Output fields

Step 1: fullName, email, companyName, jobTitle, connectionDegree, profileUrl Step 2: result (valid/risky/invalid), score

Cost estimate

harvestapi/linkedin-profile-search is PPE. 1,000 leads at typical rates runs ~$5-10. Confirm before scheduling daily runs.

Gotcha

Sales Navigator URL must be a saved search URL, not a one-time results URL. The URL changes each session unless saved.


SERP-based B2B prospect discovery

When: User wants to find companies matching niche keywords via Google, AI-qualify them against ICP criteria, and push qualified leads to CRM.

Pipeline
  1. Find companies -> apify/google-search-scraper

    • Key input: queries (search terms array), maxResultsPerPage, countryCode

  2. Crawl company sites -> apify/website-content-crawler

    • Pipe: results[].organicResults[].url -> startUrls

    • Key input: startUrls, maxCrawlDepth (set to 2), maxCrawlPages (set to 5)

Output fields

Step 1: organicResults[].url, organicResults[].title, organicResults[].snippet Step 2: text (clean markdown), url, metadata.title, metadata.description

Gotcha

Pass only company root domains from SERP results into WCC - not individual blog post URLs. Filter organicResults[].url for root domains before piping.


Apollo leads + AI website icebreakers

When: User has an Apollo lead list with company websites and wants personalized cold email icebreakers generated from each company's web presence.

Pipeline
  1. Scrape company sites -> apify/website-content-crawler

    • Key input: startUrls (homepage URLs from Apollo export), maxCrawlDepth (set to 2), maxCrawlPages (set to 5)

  2. Generate icebreakers -> AI node (GPT-4o or Claude)

    • Pipe: results[].text -> prompt context per lead

    • Key input: company summary + lead name + role

Output fields

Step 1: text (clean markdown), metadata.title, metadata.description, url Step 2: AI-generated icebreaker string per lead

Gotcha

Some Apollo exports include LinkedIn URLs instead of company websites. Filter the list for http URLs before passing to WCC - LinkedIn blocks crawlers.


Reddit community lead mining

When: User wants to find prospects actively posting problems that their product or service solves in relevant subreddits.

Pipeline
  1. Mine subreddit posts -> trudax/reddit-scraper-lite

    • Key input: startUrls (subreddit URLs), searchTerms (problem keywords), maxItems, sort (hot/new/top)

  2. Qualify leads -> AI node

    • Pipe: results[].title, results[].body -> qualification prompt

    • Key input: ICP criteria, pain point keywords

Output fields

Step 1: title, body, subreddit, url, score, numberOfComments, createdAt, author Step 2: AI qualification score, extracted contact intent, suggested outreach angle

Gotcha

Reddit usernames are pseudonymous - there is no direct email enrichment path. The output is intent signals and post URLs for manual outreach via Reddit DM or to cross-reference against other platforms.

Requirements and compatibility

Written for: Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Names Claude Code tools, Needs Node.js

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Apify
Publisher
Apify (Official)
Source
apify/agent-skills · skills/apify-ultimate-scraper · commit f22557f
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (written by AutoGineer)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Apify.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download apify-ultimate-scraper.zip