Blog Roles

Zillow CSV Export SOP for Virtual Assistants (Real Estate Investors)

Copy-ready SOP for VAs pulling Zillow listing data for investor clients. Covers deliverables, column checklist, quality checks, and escalation — paste it into your task tool and run it weekly.

Investors hire VAs to collect and format data, not to relearn a browser extension every Monday. Once RealtyScraper is installed (see Install), this page is the recurring workflow — bookmark it and run the SOP below each time a data pull is due.

This covers standard real estate VA tasks for Zillow research: repeatable pulls, clean handoffs, and clear escalation. Investors who want to outsource Zillow research can send VAs here instead of writing the process from scratch.

For scrape mechanics, point VAs to the export guide. This page focuses on deliverables and quality.

What the investor should provide upfront

Before the first pull, the client should send:

  1. Zillow search URL or exact filter spec (market, price, beds, property type, DOM, etc.)
  2. Tier: Free sample vs full Pro pull (Pricing)
  3. Required columns (checklist below)
  4. File naming, e.g. phoenix-sfr-2026-06-17.csv
  5. Delivery location: shared Drive folder, CRM import path, or email (avoid huge attachments in ticket systems)

Standard deliverable

Unless the client says otherwise, deliver:

  • One CSV per search batch
  • UTF-8 encoding (RealtyScraper default)
  • Header row intact
  • Row count in the cover note (847 listings, 3 duplicates removed)
  • Search URL and pull date in the same note

For refreshes, a short delta helps: +42 new zpids vs last week.

File naming

Use a consistent convention so batches are sortable and findable later:

[market]-[type]-[YYYY-MM-DD].csv

Examples:

  • phoenix-sfr-2026-06-17.csv
  • atlanta-duplex-2026-06-17.csv
  • dfw-fsbo-2026-06-17.csv

The market and date in the filename make it easy to diff against last week’s pull without opening the file.

Column checklist

Free tier (15 columns) covers many comp and watchlist tasks:

  • Identity: zpid, url
  • Location: address, street, city, state, zipcode
  • Core: price, beds, baths, sqft, property_type, status
  • Meta: scraped_at

Pro tier (40 columns) when the client needs contacts or richer CRM mapping:

  • Agent, broker, and owner contact fields (when Zillow exposes them on detail pages)
  • Tax, zestimate, geo, FSBO, and other extended fields

If the client wants a phone on every row, confirm they have Pro and that detail scrape ran. Contacts are not on the search grid alone.

Weekly SOP (copy to your task tool)

  1. Open the saved Zillow search URL from the client
  2. Confirm filters still match the brief (markets drift)
  3. Open the RealtyScraper panel and run Scrape all (or single page if specified)
  4. Wait for completion. Status text in the panel shows progress and rate-limit pauses; multi-page and detail runs take several minutes by design
  5. If Zillow shows a CAPTCHA, complete it on the tab before expecting more progress
  6. Download CSV
  7. Open in Google Sheets: remove duplicate zpid rows, drop rows missing required fields, add pull_date if requested
  8. Upload to the delivery folder with the agreed filename
  9. Send handoff with row count and any anomalies

Do not start a second heavy scrape in the same browser while one is running.

Quality checks before delivery

CheckPass criteria
Row countPlausible for the market; flag sudden zeros or 10× spikes
DuplicatesNo duplicate zpid unless client wants raw append-only
Required columnsMust-have fields filled on most rows; note exceptions
Wrong marketCity/state match the brief
Fresh pullscraped_at reflects today

Flag problems in the handoff note. Do not silently discard rows.

Free vs Pro: what to tell the client

SituationRecommendation
Sample comp set, single pageFree
Full zip or large map areaPro
Dial list with agent phonesPro + detail scrape
Client already subscribedThey paste the license key in Settings; same browser profile, or unbind before switching

License and billing live on the client’s Account page. VAs should not share keys across unrelated teams.

Common mistakes to avoid

Don’t run two heavy scrapes at once — one at a time keeps rate limits manageable. Don’t manually retype what’s already in the export; that’s the whole point of the tool. Don’t share CSVs publicly, and don’t promise agent or owner phone numbers on every row — Zillow only exposes them on some listings, and the Pro detail scrape is what pulls them at all.

Escalation

  • Extension broken or panel missing: client opens a Support ticket
  • CAPTCHA on every page: one scrape at a time; client may need a smaller search or a cooldown period
  • Licensing or billing: FAQ and Account portal (not a VA fix)