Real Estate Lead Research Automation with Search API
Automate real estate market research, listing monitoring, and lead enrichment with daily search API pipelines.
A daily real estate market research pipeline using a search API costs under $3/mo and replaces 2-3 hours of manual Googling per day. Query local market listings, competitor activity, and pricing trends automatically, then feed the results to an LLM for structured summaries your agents can use immediately.
What real estate teams research manually
Every morning, agents and brokers check: new listings in their target neighborhoods, recent price reductions, competitor brokerage activity, local market news (zoning changes, new developments, school ratings), and expired or withdrawn listings that signal motivated sellers. This research is repetitive, time-sensitive, and perfectly suited for automation.
Daily market research pipeline
import requests, os, json
from datetime import datetime
API = 'https://api.scavio.dev/api/v1/search'
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
MARKETS = [
{'area': 'Austin TX', 'zip': '78704'},
{'area': 'Denver CO', 'zip': '80202'},
]
QUERY_TEMPLATES = [
'{area} homes for sale {zip} 2026',
'{area} real estate price trends',
'{area} new construction developments',
'{area} expired listings motivated sellers',
]
def daily_market_scan(markets: list[dict]):
today = datetime.now().strftime('%Y-%m-%d')
report = {'date': today, 'markets': {}}
for market in markets:
area = market['area']
report['markets'][area] = {}
for template in QUERY_TEMPLATES:
query = template.format(**market)
resp = requests.post(API, headers=H, json={
'platform': 'google',
'query': query,
}, timeout=15)
results = resp.json().get('organic_results', [])[:5]
report['markets'][area][query] = [
{
'title': r.get('title', ''),
'snippet': r.get('snippet', ''),
'link': r.get('link', ''),
}
for r in results
]
with open(f'market_report_{today}.json', 'w') as f:
json.dump(report, f, indent=2)
return report
report = daily_market_scan(MARKETS)
for area, queries in report['markets'].items():
total = sum(len(v) for v in queries.values())
print(f"{area}: {total} results across {len(queries)} queries")LLM-powered market brief
Raw search results are noisy. Feed them to Claude with a structured prompt and get a morning brief your team can scan in two minutes instead of spending an hour reading listings.
from anthropic import Anthropic
claude = Anthropic()
def generate_market_brief(report: dict):
for area, queries in report['markets'].items():
context = '\n'.join(
f"Query: {q}\nResults:\n" + '\n'.join(
f"- {r['title']}: {r['snippet']}" for r in results
)
for q, results in queries.items()
)
resp = claude.messages.create(
model='claude-sonnet-4-20250514',
max_tokens=1024,
messages=[{'role': 'user', 'content': f"""Create a morning market brief for {area}.
SEARCH DATA:
{context}
Format:
1. NEW LISTINGS: Notable new properties with prices if mentioned
2. PRICE CHANGES: Any reductions or increases spotted
3. MARKET SIGNALS: Construction, zoning, or economic news
4. OPPORTUNITIES: Expired listings or motivated seller indicators
Keep each section to 2-3 bullet points max."""}],
)
print(f"=== {area} Market Brief ===")
print(resp.content[0].text)
print()Competitor brokerage monitoring
Track what competing brokerages are listing and how they price relative to your listings. One additional search query per competitor per market gives you a weekly competitive picture without manually checking their websites.
Lead enrichment for follow-up
When a lead comes in from a specific neighborhood, automatically pull recent sales data, school ratings, and local amenities for that area. This gives your agent a prepared conversation starter instead of generic outreach. Two search queries per lead at $0.01 total per lead is negligible even at high volume.
Cost breakdown
2 markets x 4 queries each x 30 days = 240 queries/mo ($1.20). Add competitor monitoring (3 competitors x 2 markets x 4 weeks = 24 queries, $0.12) and lead enrichment (50 leads x 2 queries = 100 queries, $0.50). Total: 364 queries/mo, $1.82. This fits in the free tier of 250 credits/mo if you drop competitor monitoring to biweekly, or comfortably in the $30/mo plan. Claude API costs for daily briefs add roughly $1-2/mo. Total pipeline: under $5/mo for automated daily market intelligence across two markets.