Complete Guide: How I Built a Fully Automated Yelp Scraper Using n8n + Apify

Save $564/year by automating lead generation without writing code.

Kelis Shekhaliya Nov 20, 2025 10 min read

Automate Yelp

with n8n & Apify

n8n
Blog With Kelis
n8n

Scraping business data from Yelp can be a goldmine for lead generation, outreach, SEO research, and market analysis. But doing it manually takes hours — searching for businesses, copying details, visiting websites, extracting emails, filtering duplicates, verifying emails, and then saving data to a sheet.

That’s why I created a fully automated Yelp scraper, powered by:

  • n8n – No-Code Automation
  • Apify – Yelp Data Scraper
  • Reoon Email Verifier – Email Validation API
  • Google Sheets – Auto Data Storage

In this complete tutorial, you will learn exactly how to build the same workflow, understand how it works, and discover what you can use it for.


🔧 Tech Stack Used

Tool Purpose
n8n Automation platform (The Brain)
Apify Scrapes business details from Yelp
Reoon API Validates scraped email IDs
Google Sheets Stores clean and verified data
HTML Extractor Scrapes emails & metadata from websites

🚀 What This Automation Can Do

Once set up, my workflow can:

  • Scrape thousands of businesses from Yelp
  • Filter only real business websites (not directories)
  • Crawl the website automatically
  • Extract emails, phone numbers, title tags, meta descriptions & H1
  • Verify emails automatically
  • Save clean data directly to Google Sheets

All without writing a single line of code.

🧠 Workflow Architecture Overview

The scraping system follows these 7 steps:

  1. Trigger workflow & input city + niche
  2. Send query to Apify Yelp Actor
  3. Collect raw business data
  4. Filter duplicates + remove directory websites
  5. Visit each business website and scrape extra data
  6. Verify emails using Rioni
  7. Save verified data to Google Sheet (loop until complete)

🔨 Step-By-Step Tutorial

📌 Step 1: Prepare the n8n Workflow

Open n8n (Cloud or Self-Hosted) and click Create Workflow. Start with a Manual Trigger node for testing.

Input Parameters:

City → Example: "New York"
Niche → Example: "Dentist"
// These two will be passed to the Apify API.

🔗 Step 2: Call Apify Yelp Scraper

Add an HTTP Request Node and configure it as follows:

  • Method: POST
  • URL: Apify Yelp Actor Endpoint

Body (JSON):

{
  "locations": [
    "{{ $json.Location }}"
  ],
  "maxImages": 0,
  "searchLimit": 5000,
  "searchTerms": [
    "{{ $json.Category }}"
  ],
  "directUrls": []
}

Endpoint:

https://api.apify.com/v2/acts/tri_angle~yelp-scraper/runs?token=APIFY_TOKEN

🧹 Step 3: Clean Data & Remove Useless Websites

We need to remove directory sites like Yelp itself, YellowPages, etc., to find real business websites.

Use an IF Node with this Regex filter:

{{ $json.website !== "" && ( $json.website.extractDomain().toLowerCase() ).match(/(^|\.)(ikea\.com|instagram\.com|facebook\.com|zillow\.com|realtor\.com|redfin\.com|trulia\.com|homes\.com|hotpads\.com|estately\.com|movoto\.com|homesnap\.com|homefinder\.com|apartments\.com|rent\.com|apartmentguide\.com|zumper\.com|rentcafe\.com|renthop\.com|rentometer\.com|craigslist\.org|forsalebyowner\.com|fsbo\.com|houzeo\.com|isoldmyhouse\.com|fizber\.com|beycome\.com|loopnet\.com|costar\.com|crexi\.com|landwatch\.com|land\.com|opendoor\.com|offerpad\.com|knock\.com|propertyshark\.com|attomdata\.com|corelogic\.com|compass\.com|kw\.com|coldwellbanker\.com|remax\.com|bit\.ly)$/) !== null }}

Then use a Remove Duplicates node based on the Website URL.

🌐 Step 4: Scrape the Website Automatically

Once filtered, n8n will loop through each website URL. Use the HTML Extractor node to get:

Selectors needed:

Extract Title Website Title
Extract H1 H1 Tag of Website
Extract Description Extract Meta Description Of Website

🔍 Step 5: Verify Emails via Reoon API

Add another HTTP Request Node to verify each email to ensure high deliverability.

https://emailverifier.reoon.com/api/v1/verify?email={{ $json.message?.content || $json.content }}&key=API_KEY&mode=power

If valid = true, proceed to save.

📤 Step 6: Save Data into Google Sheets

Map the clean data fields to your Google Sheet columns:

  • Business Name
  • Website
  • Email (Verified)
  • Phone
  • Address
  • Title
  • H1
  • Description
  • Specification
  • Founding Year

🎯 Use Cases of This Automation

Cold Email Lead Gen

Targeted & validated contacts directly in your CRM.

Outreach Automation

Exported sheet connects automatically with email marketing tools.

🧠 Final Thoughts

You now know how to automate Yelp scraping using n8n + Apify, filter business data, scrape website metadata, and verify email addresses automatically.

This automation can save hundreds of manual hours and improve lead quality by 10x.

Want this Workflow?

Join my community to get the JSON file for this workflow for free.

Download Workflow JSON