← Back to blog
Lead GenerationJuly 1, 20268 min readМонгол

Apify Web Scraping Guide: Turn Any Website into a Lead List

Scraping leads with Apify means picking or configuring an Actor (a scraping agent) for the site you want data from, choosing between simple scraping and multi-page crawling depending on where the phone number or email actually sits on the page, writing glob patterns so the Actor knows which links to follow, running the job, and exporting the results as a ready-to-use list of phone numbers and emails for outreach.

Scraping vs. crawling: the distinction that decides your whole setup

Before touching Apify, it helps to separate two things that get used interchangeably but aren't the same. A scraper works on a single page: it pulls out whatever data is sitting right there — an email, a phone number, anything else you want — without going anywhere else. A crawler goes further. It scrapes a page, then clicks a "next" button, clicks into an ad, or otherwise navigates to another page, and scrapes data from there too.

This matters immediately on real sites. On a classified-ads style website used as the example here, some ads list a phone number directly on the results page — a straightforward scraping job. Other ads on that exact same page don't show the number until you click into the individual ad itself, which requires crawling, not just scraping. Most real lead-generation targets are a mix of both, which is exactly why Apify is built around flexible Actors rather than one single scraping mode.

Finding or building the right Actor

Inside Apify's dashboard, "Actors" are just scraping agents — pieces of code that run on the internet and grab data for you. The Apify Store has pre-built Actors for popular targets: search "Indeed" and you'll find multiple Indeed-specific scrapers, each named by its developer and its purpose (for example, a scraper built specifically to pull job listings from Indeed). You can tell a lot from the name alone: the part before the forward slash is the developer or team that built it, and the part after describes what it does. Ratings and usage counts (one popular Actor in this example had been used by tens of thousands of people) are a quick signal for how reliable a given Actor is.

Not every website has a dedicated Actor. For a less common or less popular site, there may be no purpose-built scraper at all — which is where a general-purpose scraper from Apify's own developers comes in. It's not tailored to any one site, but it's flexible enough to handle most scraping and crawling jobs, and it was more than enough for the classified-ads example used here.

Managing resources: RAM, proxies, and cost

A few settings in the Actor's configuration matter more than they look. RAM usage controls how much computing power the job gets — relevant if you're running multiple scrapes at once, since there's a hard limit (8 GB in this setup) shared across them. Proxy settings matter because some websites have strong bot-detection in place, and without the right proxy configuration, a scraper can get blocked entirely.

Cost is the pleasant surprise here. Apify's free tier includes real usable credit, and a full run against the classified-ads example — pulling hundreds of phone numbers and a batch of emails — cost about $0.46. That's inside the free tier entirely; there was no actual charge for that specific run. Bigger or more frequent jobs will eventually use up that free allowance, but for testing and even moderate real use, the cost barrier is close to zero.

Configuring the scrape: form view, JSON view, and glob patterns

Every Actor gives you two ways to configure it: a form view (the least technical option) and a JSON view (the most technical, but the most precise). JSON here just means JavaScript Object Notation — a structured block of key-and-value pairs, nothing more intimidating than that once you see it laid out.

The setting that does the real work is the glob pattern. A glob pattern tells the Actor which links or pages to follow during a crawl. In the classified-ads example, the first glob pattern points at the base category page — the list of ads. A second glob pattern is added for the individual ad page itself, because that's the page where the phone number actually lives when it isn't shown on the listing page directly. Together, those two patterns teach the Actor: grab the phone number if it's right here; if it's not, click into the ad and grab it from there instead — and keep doing that across every page in the category, which in this example meant looping through six pages of results automatically.

A few other settings are worth knowing but rarely need to be touched: whether to automatically close cookie consent modals (this needs to be turned on for sites that pop one up, or the scraper gets stuck), and whether the Actor waits for the page's full content to load before scraping, which matters on pages with heavy ads or dynamic content.

Letting AI write the technical parts for you

You don't need a programming background to configure any of this correctly. If a setting, a piece of JSON, or an error message looks confusing, take a screenshot, upload it to Claude or ChatGPT, describe what you're trying to accomplish, and it will tell you exactly what to change — down to which specific field or button to touch. The glob pattern configuration in this example was written with Claude's help rather than by hand, which is the realistic way most non-developers will actually use this tool.

Running the job and getting usable results

Once the configuration is saved, starting the job kicks off the Actor, and you can watch results populate live rather than waiting for a final export. In this example, early test runs pulled five and six phone numbers respectively while the configuration was still being tweaked; after fixing the settings, a 25-minute run across roughly 49 pages pulled in phone numbers at a steady rate of about 20 per minute, along with a batch of emails.

The results come back structured: the ad's text, the phone number, and the source it came from, with export options to JSON, CSV or Excel. From there, that list is exactly what a sales team needs for cold calling or cold SMS outreach — or it can be exported and connected to another tool, like Make.com, to automate email campaigns, or fed to an AI voice agent to start automated outbound calling. None of that outreach has to be done by hand once the list exists.

Beyond scraping for yourself

Once you understand how an Actor works, there's a second business model available on top of scraping for your own leads: Apify lets you publish your own Actors to the Apify Store, which means a scraper you build to solve your own problem can also become a product other people pay to run.

Key takeaways

  • Decide whether you need scraping, crawling, or both, based on whether the data you want sits directly on the page or behind a click.
  • Check the Apify Store for a pre-built Actor before configuring a general-purpose one from scratch.
  • Watch RAM limits and proxy settings, especially on sites with bot detection.
  • Real scraping runs can cost well under a dollar on Apify's free tier — cost is rarely the blocker.
  • Glob patterns are what let an Actor follow links intelligently, including clicking into individual pages to find data that isn't on the main listing.
  • You don't need to write or debug the JSON yourself — Claude or ChatGPT can translate a screenshot of a confusing setting into the exact change to make.
  • Exported lists (JSON, CSV or Excel) plug directly into cold outreach, automated email campaigns, or AI voice agents for automated calling.

Want a lead list built for your business?

A scraping and outreach system like this one can be set up around whatever sites or directories your ideal customers actually show up on.

Free 15-minute AI assessment

Tell us what you're doing today. We'll show you where an AI agent saves the most time.

Or fill out the online assessment

Frequently asked questions