Case study: property intelligence

Property search that turns vague investor intent into real filters.

Zillow-like products can use RushDB as the structured intelligence layer behind recommendation systems: listings, owner profiles, investor preferences, market signals, comps, and search intent stay connected while the app translates human-language requests into fields and ranges that actually exist.

Property recommendations fail when filters are guessed.

Investors rarely search like a rigid form. They ask for “small multifamily near a university, light renovation, seller financing possible, under 900k.” If the app guesses fields from a prompt, it can hallucinate metadata, ignore owner context, or miss listings whose useful signals live outside the main listing table.

Before

  • Search forms force investors into rigid filters
  • Semantic-only search misses exact budget, cap-rate, and financing constraints
  • Owner, comp, and market-signal data live outside listing recommendations
  • Frontend teams need backend joins for each new matching experience

With RushDB

  • Ontology exposes the real listing fields, ranges, values, and graph paths
  • Human-language intent becomes validated filters plus optional semantic search
  • Listings connect to owners, comps, neighborhoods, market signals, and investor profiles
  • Thin marketplace UIs can render matching cards, explanations, and saved-search alerts

Graph intelligence on ingest

Incoming data becomes queryable graph context.

RushDB turns structured data into graph-ready context without a separate modeling pipeline. Structure already encoded in a nested payload is linked immediately. For flat records imported from scattered sources, relationship analysis can propose stable cross-source patterns.

01

Normalize as data arrives

Import JSON or CSV. RushDB infers property types and adds new fields to the live, queryable ontology without a schema migration.

02

Auto-link nested structure

Nested objects become connected records automatically, preserving the parent-child graph structure already encoded in your payload.

03

Enrich scattered sources

After flat imports or schema changes, analyze the project ontology. RushDB can suggest join patterns and semantic relationship types for your review.

Suggested relationship analysis requires an LLM configured for the project. Suggestions stay in draft form until you approve them, so inferred domain meaning never mutates the graph silently. You can also add explicit relationships through the SDK or API.

Review suggested relationship patterns

Data model

One flexible graph for the workflow.

Start with the payload shape your product already produces. RushDB stores it as Records, infers typed properties, and keeps nested or approved domain relationships queryable.

Schema sketch
Marketplace matching payload

Listings, owner context, investor intent, comps, and market signals can vary by source while staying queryable together.

{
  "listingId": "prop-1844",
  "assetType": "duplex",
  "city": "Austin",
  "priceUsd": 820000,
  "capRate": 5.8,
  "hasSellerFinancing": true,
  "description": "Light renovation duplex near a university corridor.",
  "OWNER_PROFILE": { "ownerType": "private_seller", "timeline": "60_days" },
  "NEIGHBORHOOD": { "name": "North Campus", "walkScore": 82 },
  "MARKET_SIGNAL": [{ "kind": "rent_growth", "value": 8.2 }],
  "COMPARABLE": [{ "compId": "comp-77", "priceUsd": 790000 }]
}

Working example

Turn investor intent into an ontology-grounded listing match.

The app reads RushDB ontology first, converts the investor request into valid listing filters, then returns exact property matches with connected owner and market-signal context.

Input
INVESTOR_PROFILE inv-42
  intent: "Duplex or small multifamily in Austin under 900k, light rehab, seller financing helpful"

PROPERTY_LISTING prop-1844
  assetType: duplex
  city: Austin
  priceUsd: 820000
  capRate: 5.8
  hasSellerFinancing: true
  MARKET_SIGNAL rent_growth: 8.2
Query
{
  "labels": ["PROPERTY_LISTING"],
  "where": {
    "city": "Austin",
    "assetType": { "$in": ["duplex", "small_multifamily"] },
    "priceUsd": { "$lte": 900000 },
    "capRate": { "$gte": 5.5 },
    "hasSellerFinancing": true
  },
  "limit": 25
}
Result
{
  "listingId": "prop-1844",
  "assetType": "duplex",
  "priceUsd": 820000,
  "matchedBecause": [
    "Austin",
    "under 900k",
    "seller financing available",
    "cap rate >= 5.5"
  ]
}

TypeScript SDK

Discover the ontology before building the filters.

The useful pattern is not prompt-only recommendation. Load the live labels, values, and ranges first, then translate investor intent into filters that exist in the project.

Implementation blueprint

Build the property-intelligence matching path.

Use this sequence to add recommendation intelligence to a property marketplace without turning free-text prompts into guessed listing metadata.

  1. 01Import PROPERTY_LISTING records with OWNER_PROFILE, MARKET_SIGNAL, COMPARABLE, and NEIGHBORHOOD context
  2. 02Store INVESTOR_PROFILE and SEARCH_INTENT records for saved searches
  3. 03Load ontology before translating human-language intent into filters
  4. 04Combine exact filters with semantic search over listing descriptions when useful
  5. 05Render matched listings, explanations, and saved-search alerts from RushDB results

Build path

  • Keep property matching grounded in available labels, properties, values, and ranges.
  • Use exact filters for budget, location, asset type, financing, yield, and status constraints.
  • Use semantic search only for fuzzy preferences such as style, renovation language, or neighborhood feel.
  • Present recommendations as marketplace matching support, not investment advice or valuation guarantees.

How it works

Build the smallest useful workflow first.

01

Load the live property ontology

Read listing fields, numeric ranges, enum-like values, and relationship paths before translating a human-language request.

02

Build grounded filters

Convert intent into filters over fields that exist: city, asset type, price, cap rate, financing, owner timeline, renovation level, or market signal.

03

Explain each match

Return the listing plus connected owner, comp, neighborhood, and signal records that explain why it matched the investor or homeowner goal.

Know where it fits.

Exact constraints plus fuzzy preference

Budget, location, yield, status, and financing should be exact filters. Semantic search belongs on descriptive text and soft preferences.

No invented metadata fields

Agents and recommendation services should inspect ontology before querying, so they only use property fields, values, and graph paths available in RushDB.

Questions developers ask.