--- title: "Home listings with saved search alerts, built by Claude Code on Elements" author: "@chris" author_url: https://elements.dev/u/@chris published: 2026-09-30T21:18:12.912Z url: https://elements.dev/demos/home-listings-with-saved-search-alerts-built-by-claude-code-s5u73vck kind: post format: article --- # Home listings with saved search alerts, built by Claude Code on Elements by [@chris](https://elements.dev/u/@chris) ยท 2026-09-30 ## Description Search homes by price, beds, baths, type and neighborhood, request showings, save homes and searches with email alerts, and give agents a listings desk and inbox. Keystoop needed search results that change as agents work, inquiries that reach an agent's inbox and email, saved searches that send alerts, and a listings desk with photo uploads. Each of those is a part of Elements, so the agent spent its 34 minutes on the brokerage site itself. - **Live search.** Listings are a LiveTable, so a new listing or a move from active to pending shows up in every open search page at once, and the price, beds, baths, type and neighborhood filters run in the page over that live list. - **A live inbox.** Inquiries are a LiveTable split by agent, so a question or showing request sent from a listing page lands in that agent's open inbox the moment it is sent. - **Server calls as function calls.** Inquiries, favorites, saved searches, listing status and photo uploads all go to the server through `@rpc` functions called straight from the page. Uploaded photos are served at addresses browsers keep for a year. - **Jobs and email.** Each inquiry queues an email to the agent in the same transaction. When a listing goes active, a job emails everyone whose saved search it matches, and each search hears about each listing once. - **Data from SQL files.** Migrations define the site and seed three agents, thirty listings across eight neighborhoods with photo galleries and open houses, inquiries in each inbox, and a buyer with two saved searches. - **Sessions and roles.** Agent pages and server calls share one guard on the agent role.