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:
- Triggers on a schedule (n8n Schedule Trigger)
- Scrapes 800+ Seattle home listings from Zillow via Octoparse MCP
- Saves all data (address, price, beds, baths, sqft, status) to Google Sheets
- 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.
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:
- Go to console.anthropic.com
- Click API Keys → Create Key → name it "n8n"
- 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 modelllama-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:
-
Endpoint →
https://mcp.octoparse.com - Server Transport → HTTP Streamable
- Authentication → Header Auth
Click "Set up credential" and fill in:
-
Name →
Authorization -
Value →
Bearer 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:
- Go to sheets.google.com and create a new spreadsheet
- Name it "Seattle Real Estate Price Monitor"
- 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
-
Subject →
Daily 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)
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
- Octoparse MCP: octoparse.com/mcp
- n8n: n8n.io (free tier available)
- Octoparse template library: octoparse.com/template
Built for the Octoparse MCP Challenge · Track 1: Build a Workflow with Octoparse MCP
Powered by Octoparse MCP + n8n + Claude

















Top comments (0)