Skip to content
FHA · ECOA · FCRA · HUD

Listing + screening AI that survives a fair-housing audit

Listing copy that hints at a preferred tenant, a chatbot that steers by neighborhood demographics, a screening model with disparate impact — each is a Fair Housing Act case. EvalGuard gates every output on fair-housing scorers and keeps the decision trail HUD-style complaints demand.

216
Scorers
77
LLM providers
324
Red-team plugins
2.57ms
Firewall p95
Model house with a set of keys on a wooden table
Real estateFHA · ECOA · FCRA · HUD

What ships today

Honest posture, not roadmap promises

Every checked item is in production today. In-progress items are flagged explicitly — no overclaiming, no vapor.

Bias + fairness scorers for protected-class disparity testing
Steering- and preference-language guardrails with block mode
Applicant-PII firewall across 18+ data types
Tamper-evident audit log for every AI-touched decision
Faithfulness scorers for listing- and lease-grounded answers
Evidence-bundle export for counsel + complaint response
HUD advertising-guideline detector pack

Built for buyer reality

Real estate AI use cases we ship for

Listing-copy generation at portfolio scale

AI writes hundreds of listing descriptions a day. Phrases like 'perfect for young professionals' or 'family-friendly block' read as preference signals under the FHA — every description needs a fair-housing gate, not a spot check.

EvalGuard features

  • Steering-language guardrails block preference and demographic signals
  • Bias scorers screen copy against protected-class proxy phrases
  • Output guardrails strip preference language so descriptions stay amenity-first
  • Audit log preserves every generated description for complaint defense

Tenant + buyer screening assistance

AI summarizes applications and flags risk factors. Any systematic disparity across protected classes is an ECOA/FHA exposure — screening needs disparity testing before deploy and a per-decision trail after.

EvalGuard features

  • Bias scorers gate screening outputs; red-team packs run counterfactual disparity probes pre-deploy
  • Applicant-PII firewall redacts identifiers before third-party model calls
  • Tamper-evident audit log ties each recommendation to model + prompt version
  • Evidence-bundle export packages the testing file for your counsel

Property-inquiry chatbot

Prospects ask about neighborhoods, schools, and availability. Answering 'is this a safe area?' with demographic composition is textbook steering — the bot must redirect to objective data sources every time.

EvalGuard features

  • Steering guardrails block demographic-composition answers so the bot falls back to objective data sources
  • Prompt-injection defense: 300+ attack plugins cover baiting the bot into steering language
  • Faithfulness scorer grounds availability answers in live listing data
  • Per-route rate limits contain scraping of portfolio availability

Lease + document Q&A for residents

Residents query an assistant about lease terms, fees, and notices. A hallucinated fee or invented clause becomes a landlord-tenant dispute — answers must quote the actual executed lease.

EvalGuard features

  • Citation scorer requires lease-document grounding for every answer
  • Hallucination gate blocks answers that drift from the executed terms
  • Per-project BYOK isolation separates each property-management client
  • Gateway cost ledger attributes spend per property, with per-tenant daily budget caps

Wire it in 60 seconds

Wrap your OpenAI client. Every listing passes fair housing.

Steering rules + bias thresholds + decision-trail retention are configured once in the EvalGuard control plane. Your code only wraps the client.

typescript
import OpenAI from "openai";
import { wrapOpenAI, EvalGuardViolationError } from "@evalguard/openai";

const openai = wrapOpenAI(new OpenAI(), {
  apiKey: process.env.EVALGUARD_API_KEY!,
  projectId: "listing-copywriter",
  metadata: { vertical: "real-estate", fha: true },
  blockOnViolation: true,                  // refuse steering language
  evalOnResponse: { failOnScore: 0.7 },    // fair-housing gate
  onViolation: (r) => alertComplianceDesk(r.violations),
});

try {
  await openai.chat.completions.create({
    model: "gpt-4o",
    messages: [{ role: "user", content: listingBrief }],
  });
} catch (err) {
  if (err instanceof EvalGuardViolationError) {
    // Block recorded in the decision audit trail. Replay via audit ID.
  }
}
Steering-phrase lists + disparity thresholds + retention live in the EvalGuard control plane — set once per project, no SDK calls needed.
Same integration for Anthropic, Gemini, and 91+ providers — swap wrapOpenAI for wrapAnthropic.

Ready to ship housing AI you can defend?

Free trial includes the fair-housing scorers, steering guardrails, and the decision audit trail. Bring your listing templates — we'll show you what a HUD complaint would find.

Apache-2.0 source · SOC 2 evidence engine live · full trust center