Composite study

This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.

4
Approach points
4
Tools in the pack
4
Layers covered
3
Challenges documented

Overview

Prompts like “attract the right tenants” produced copy implying families with children or racialized neighborhood descriptions.

Suggested lookalike audiences in an attached ads tool inherited the current resident mix.

Industry pattern this is grounded in

HUD’s 2024 guidance on digital platforms makes clear that algorithmic ad targeting and delivery can violate the Fair Housing Act even without intent. AI copy and suggested audiences are in that scope.

Highlights

Typical launch bar: Wait until journeys and evals agree — do not ship on demo scores alone.

Challenges

01

Marketing wanted “vibrant” and “exclusive” language that reads as steering.

02

The ads platform, not the client, did the delivery optimization — residual risk still sat with the advertiser.

03

Image generation for listings invented interior features not in the photos.

How we tested

01

Forbidden-steering suite: familial status, race, religion, disability coded language.

02

Search filters cannot include discriminatory attributes the product claims not to offer.

03

Human review on generated ads before they can be pushed to a platform.

04

Listing media EXIF/location stripping if required.

Starting point vs what we required

Starting point versus the controls we required
Starting pointWhat we required
Marketing wanted “vibrant” and “exclusive” language that reads as steering.Forbidden-steering suite: familial status, race, religion, disability coded language.
The ads platform, not the client, did the delivery optimization — residual risk still sat with the advertiser.Search filters cannot include discriminatory attributes the product claims not to offer.
Image generation for listings invented interior features not in the photos.Human review on generated ads before they can be pushed to a platform.

What we delivered

01

Adversarial evals

  • Promptfoo — Fair-housing language suite
02

Journeys / UI

  • Playwright — Filter UI and ad-preview
03

API / contract

  • Postman — Search API rejected filter params
04

LLM traces / evals

  • LangSmith — What audience hints were sent to the ads tool

Outcomes

Copy evals failed coded steering. Generated ads could not publish without a broker-of-record acknowledgement in staging.

Image generation was labeled and blocked from stating features not in listing fields. We documented residual ad-delivery risk instead of pretending a prompt filter solves HUD delivery issues.

Stack

Testing stack used on this product class
LayerToolWhat we validated
Adversarial evalsPromptfooFair-housing language suite
Journeys / UIPlaywrightFilter UI and ad-preview
API / contractPostmanSearch API rejected filter params
LLM traces / evalsLangSmithWhat audience hints were sent to the ads tool

Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.