DEV Community

FloydBennett
FloydBennett

Posted on

I Built an Automated Real Estate Price Monitor with n8n + Octoparse MCP + Claude

I've been casually watching the Seattle housing market for a while.
Every few days I'd open Zillow, filter by location, scroll through
listings, and manually copy prices into a spreadsheet. It was tedious
and I kept missing good deals.

One afternoon I thought — why not just automate this? A few hours
later I had a workflow that runs every morning at 8am, scrapes 800+
listings, saves everything to Google Sheets, and emails me a summary.
I haven't opened Zillow manually since.

Here's exactly how I built it.

TL;DR — I built a fully automated real estate price monitoring system for Seattle using n8n, Octoparse MCP, Claude AI, Google Sheets, and Gmail. It runs every morning at 8am, scrapes 800+ Zillow listings, saves them to a spreadsheet, and emails me a daily report — zero manual work required. Here's the exact step-by-step.


The Problem

Tracking real estate prices manually is painful. You open Zillow, filter by location, scroll through hundreds of listings, copy data into a spreadsheet, and repeat the next day. By the time you notice a price drop, someone else has already made an offer.

I wanted a system that does all of this automatically — scrape the data, store it, and send me a daily digest. No clicking. No copy-pasting. Just results in my inbox every morning.

Here's what I built.


What It Does

Every morning at 8am, this automated workflow:

  1. Triggers on a schedule (n8n Schedule Trigger)
  2. Scrapes 800+ Seattle home listings from Zillow via Octoparse MCP
  3. Saves all data (address, price, beds, baths, sqft, status) to Google Sheets
  4. Emails a daily summary report via Gmail

The entire pipeline runs without any human input. Once set up, it just works.


Tools Used

  • n8n — workflow automation (free, self-hosted or cloud)
  • Octoparse MCP — AI-powered web scraping via Model Context Protocol
  • Claude (via Anthropic API) — the AI agent that orchestrates the scraping
  • Google Sheets — data storage
  • Gmail — daily report delivery

Step 1 — Connect Octoparse MCP to Claude

The first step is authorizing Claude to use Octoparse MCP. This gives Claude the ability to search Octoparse templates, launch scraping tasks, and export data — all through natural language.

Once authorized, Claude has access to Octoparse's full template library and can run cloud scraping tasks on demand.


Step 2 — Test the Scraping in Claude

Before building the automation, I tested the scraping directly in Claude to make sure it worked. I asked Claude to search for Zillow templates on Octoparse:

Then I asked Claude to scrape Seattle real estate listings from Zillow:

"I'm building a real estate price monitoring system. Can you scrape home listings from Zillow using Octoparse? I'd like to track properties for sale in Seattle — please set the location to 'Seattle' and the type to 'buy'. I need up to 200 results including price, address, number of bedrooms, bathrooms, square footage, and listing status."

The task ran and collected 818 total listings. I asked Claude to export the first 20 results as a table:


The data was clean, structured, and ready to automate.


Step 3 — Set Up n8n

Now it was time to build the automation in n8n. I opened n8n and created a new workflow named "Seattle Real Estate Price Monitor".


Step 4 — Add a Schedule Trigger

The first node is a Schedule Trigger — this fires the workflow automatically every day at 8am.

Click "Add first step""On a schedule"

Configure the trigger:

  • Trigger Interval → Days
  • Days Between Triggers → 1
  • Trigger at Hour → 8am
  • Trigger at Minute → 0

Then click "Test this trigger" to verify it fires correctly.


Step 5 — Add an AI Agent Node

Click the "+" next to the Schedule Trigger → search "AI Agent" → select it.

In the AI Agent configuration:

  • Change Source for Prompt to "Define below"
  • Paste this fixed instruction into the Prompt field:
Scrape the latest homes for sale in Seattle from Zillow using
Octoparse. Use the Zillow Listing Scraper by keyword template, set
location to 'Seattle' and type to 'buy'. Get up to 50 results and
return the data including price, address, bedrooms, bathrooms, square
footage and status.
Enter fullscreen mode Exit fullscreen mode

Step 6 — Configure the Chat Model

Scroll to the bottom of the AI Agent node. You'll see three sub-nodes: Chat Model, Memory, and Tool.

Click "+" under Chat Model → select "Anthropic Chat Model"

Set up your Anthropic API credential:

  1. Go to console.anthropic.com
  2. Click API KeysCreate Key → name it "n8n"
  3. Copy the key and paste it into n8n

Note: If you prefer a free alternative, you can use Groq (console.groq.com) — create a free API key, select "OpenAI Chat Model" in n8n, set the Base URL to https://api.groq.com/openai/v1, and choose model llama-3.3-70b-versatile. Make sure to disable the "Use Responses API" toggle.

Heads up: I originally tried using the Anthropic API directly
but hit a rate limit issue on my first test run. Switched to Groq
as a fallback and it worked perfectly — and it's completely free.
If you're just testing, start with Groq.


Step 7 — Connect Octoparse MCP as a Tool

Click "+" under Tool → the MCP servers panel appears.

Octoparse isn't in the default list — that's fine. Click "MCP Client Tool" at the top.

Configure the MCP Client:

  • Endpointhttps://mcp.octoparse.com
  • Server Transport → HTTP Streamable
  • Authentication → Header Auth

Click "Set up credential" and fill in:

  • NameAuthorization
  • ValueBearer YOUR_OCTOPARSE_API_KEY

Get your Octoparse API key at octoparse.com/console/account-center/api-keys

Click "Execute step" to test the connection. If successful, you'll see the Octoparse tool list:

MCP connection successful! The AI Agent now has full access to Octoparse's scraping capabilities.


Step 8 — Add Google Sheets to Store the Data

Click "+" on the right side of the AI Agent node → "Action in an app" → search "Google Sheets" → select "Append row in sheet"

Click "Sign in with Google" to authorize. Once connected, you'll see:

Now create a Google Sheet:

  1. Go to sheets.google.com and create a new spreadsheet
  2. Name it "Seattle Real Estate Price Monitor"
  3. Add these column headers in row 1: Date | Address | Price | Beds | Baths | SqFt | Status

Back in n8n, select your spreadsheet in the Document dropdown and Sheet1 in the Sheet dropdown.

Map the fields:

  • Date{{ $now.toISO() }}
  • Address / Price / Beds / Baths / SqFt / Status{{ $json.output }}

Step 9 — Add Gmail to Send the Daily Report

Click "+" on the right of the Google Sheets node → search "Gmail" → select "Send a message"

Click "Sign in with Google" to authorize Gmail.

Fill in:

  • To → your email address
  • SubjectDaily Seattle Real Estate Price Report - {{ $now.format('yyyy-MM-dd') }}
  • Email Type → HTML
  • Message{{ $json.output }}


Step 10 — The Complete Workflow

Here's the full workflow with all nodes connected:

Schedule Trigger → AI Agent → Append row in sheet → Send a message
                      ↓
          Anthropic Chat Model + MCP Client (Octoparse)
Enter fullscreen mode Exit fullscreen mode


Step 11 — Execute and Verify

Click "Execute workflow" to run a full test.

The AI Agent calls Octoparse MCP, which scrapes Zillow, finds the right template, and returns results.

818 listings collected. The Google Sheets file updated automatically:


And the Gmail report arrived in my inbox:


Workflow executed successfully.


One thing I didn't expect — the Zillow scrape takes about 4-5 minutes
to collect 800+ listings. The first time I ran it I thought something
had broken, but Claude was just patiently polling for results. Worth
knowing before your first test run.

Results

  • 818 Seattle home listings scraped from Zillow in a single run
  • Data saved to Google Sheets with timestamp, address, price, beds, baths, sqft, and status
  • Daily email report delivered automatically every morning at 8am
  • Zero manual work after initial setup

Why Octoparse MCP?

Traditional web scraping requires writing custom code for each website, maintaining scrapers when sites change, and managing proxies and rate limits. Octoparse MCP eliminates all of that.

You describe what you want in plain English. Claude finds the right template, configures it with your parameters, runs the task, and returns structured data. It's the difference between writing a web scraper and asking someone to do it for you.

Combined with n8n for scheduling and Google Sheets for storage, this becomes a complete data pipeline — built in an afternoon, runs forever.


Adapting This for Other Use Cases

The same pattern works for any recurring data monitoring task:

  • Job listings — track new openings at target companies daily
  • Product prices — monitor competitor pricing on Amazon or e-commerce sites
  • News monitoring — scrape industry news and send daily digests
  • Lead generation — collect business listings from Google Maps on a schedule

Change the Octoparse template and the prompt in the AI Agent node — everything else stays the same.


Get Started


Built for the Octoparse MCP Challenge · Track 1: Build a Workflow with Octoparse MCP

Powered by Octoparse MCP + n8n + Claude

Top comments (0)