clawdbot-workspace/reonomy-url-research-findings.md

4.9 KiB

Reonomy URL Research - Findings

Date

2026-01-15


Confirmed URL Patterns

Search URL (with filters)

https://app.reonomy.com/#!/search/{search-id}

Example from user: https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6

This URL points to a search with pre-applied filters (phone + email).


Property Ownership URLs

https://app.reonomy.com/#!/search/{search-id}/property/{property-id}/ownership

Examples from user:

  • https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/2b370b6a-7461-5b2c-83be-a59b84788125/ownership
  • https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/eac231fb-2e3c-4fe9-8231-fb2e3cafe9c9/ownership
  • https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/b6222331-c1e5-4e4c-a223-31c1e59e4c0b/ownership
  • https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/988d9810-6cf5-5fda-9af3-7715de381fb2/ownership

Key Insight: The search ID (504a2d13-d88f-4213-9ac6-a7c8bc7c20c6) encodes the filters.


Page Structure

Search Results Page

  • Left panel: Map view
  • Right panel: Scrollable list of property cards
  • Each property card: Contains link to property details

Property Ownership Page

The user noted we need to collect from BOTH tabs:

  1. Builder and Lot Tab — Property details (SF, type, etc.)
  2. Owner Tab — Contact info (phones, emails)

User provided phone selector:

p.MuiTypography-root.jss1797.jss1798.MuiTypography-body2

This appears to be the class used for phone numbers on the Owner tab.


Key Findings

Aspect Finding
Direct URL construction works Yes - URL contains search ID with encoded filters
Search ID encodes filters 504a2d13-d88f-4213-9ac6-a7c8bc7c20c6 = phone + email filters
Ownership URL pattern confirmed /search/{id}/property/{id}/ownership
OAuth redirect works After login, redirects to desired ownership page
No URL parameters needed Just use search ID from filtered search
Need to capture search ID once Search with filters → capture search ID → reuse for all properties

How to Generate Filtered Search URL

Current Understanding

We DON'T need to construct URL with query parameters. Instead:

  1. Perform search once with filters applied in UI

    • Log in to Reonomy
    • Navigate to Advanced Search
    • Check "Has Phone" filter
    • Check "Has Email" filter
    • Enter location
    • Click search
    • Copy the resulting search ID from URL
  2. Reuse search ID for subsequent scrapes

    • Construct ownership URLs using that search ID
    • No need to repeat search in UI

Example Workflow

# Step 1: Manual search (one-time)
# User: Apply filters + search location
# Capture: https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6
# Extract: search ID = 504a2d13-d88f-4213-9ac6-a7c8bc7c20c6

# Step 2: Scrape properties using captured search ID
# Scraper: Navigate to ownership pages directly
# URL pattern: https://app.reonomy.com/#!/search/{search-id}/property/{id}/ownership

Scraper Data Extraction Requirements

Per user instructions: "collect all of the info under 'Builder and Lot' as well as 'owner'"

Builder and Lot Tab

  • Property address
  • City, State, ZIP
  • Square footage
  • Property type
  • Year built (if available)

Owner Tab

  • Owner names
  • Phone numbers (using: p.MuiTypography-root.jss1797.jss1798.MuiTypography-body2)
  • Email addresses
  • Owner location

Next Steps for Scraper

  1. Add input for pre-configured search ID

    SEARCH_ID="504a2d13-d88f-4213-9ac6-a7c8bc7c20c6" node scraper.js
    
  2. Or add manual search capture flow

    • Log in via browser
    • Apply filters
    • Search
    • Extract search ID from URL
    • Save to config file
  3. Implement dual-tab extraction

    • Extract from Builder and Lot tab
    • Navigate to Owner tab (or use /ownership URL)
    • Extract contact info using provided selector
  4. Test with agent-browser

    • Use new tool instead of Puppeteer
    • Leverage refs, semantic locators, state save/load

Status

Component Status
URL pattern decoded Complete
Filter encoding Search ID encodes phone+email
OAuth flow Working
Property access Direct ownership URLs work
Selectors User provided CSS class for phones
Next step Wait for user confirmation to build scraper

Notes

  • Direct URL construction via query strings is NOT needed
  • Search ID from a filtered search can be reused infinitely
  • No API access required — just capture search ID from UI once
  • User wants to use agent-browser instead of Puppeteer
  • Need to extract data from BOTH tabs (Builder and Lot + Owner)