Back to work
Real estate · Website and bilingual AI agent

Pueblo Unido

A listings site and an AI agent that answers buyers in English and Spanish, qualifies leads, books viewings and hands off to Diana, the agent, when a person adds value. Live for a working brokerage.

LiveDesign, architecture and build
Visit the live site ↗www.pueblounidoproperties.com
Pueblo Unido Properties website: your path to homeownership

Problem

Diana runs a small brokerage serving a largely Spanish-speaking community. Inbound questions arrive at all hours in two languages, and every one of them is a potential sale that goes cold if it waits until morning.

Off-the-shelf chat widgets answer in one language, cannot qualify a buyer, and hand off nothing useful to the agent.

Approach

  1. 01

    Build the public site around the way Diana actually works: listings, the team and the area, presented so that browsing turns into a conversation.

  2. 02

    Put a bilingual AI agent behind it, on Gemini 2.5 Flash, that answers in the buyer's language, qualifies the lead, offers viewing times and writes a clean handoff note for Diana.

  3. 03

    Treat the agent as a system to be tested, not a prompt to be tweaked: LangSmith evaluations for answer quality in both languages, and PyRIT red-teaming for prompt injection, data leakage and off-topic behaviour before launch.

  4. 04

    Keep the stack boring and cheap to run: React, TypeScript and Vite on Vercel, Firebase for auth and data.

Architecture

qualified leadgatesgatesBuyerEnglish or SpanishReact siteTypeScript · Vite · VercelFirebaseAuth · leads · listingsDianaHandoff with notesBilingual agentGemini 2.5 FlashLangSmith evalsAnswer quality, both languagesPyRIT red-teamingInjection · leakage · scope

The React site on Vercel talks to Firebase for auth and data; the agent runs on Gemini 2.5 Flash with a bilingual system prompt; LangSmith evals and PyRIT red-teaming gate changes to the agent; qualified conversations hand off to Diana.

Built with

  • React
  • TypeScript
  • Vite
  • Vercel
  • Firebase
  • Gemini 2.5 Flash
  • LangSmith evals
  • PyRIT red-teaming

Outcome

Live for a working brokerage. The agent answers in both languages around the clock and hands qualified conversations to Diana with the context she needs.

The evaluation and red-team suites run before any change to the agent ships.

Decisions

  • Gemini 2.5 Flash over a larger model

    because the conversations are short and bilingual; latency and cost matter more than reasoning depth.

  • Red-teaming before launch over monitoring after

    because the agent speaks for a real business to real buyers; the first injection attempt should not be a customer.

Next

Kartcade

Oregon's first racing and flight simulator lounge, open in West Linn since August 2025. The marketing stack is AI-built: SEO, analytics, a nightly Mailchimp sync and a live lap-time leaderboard.