The mechanism
One file in. Every building out.
Your portfolio is data, not eighteen hand-built pages. Adding a building is a row, not a project, and every guarantee applies to it the moment it exists.
How it goes
From your property list to a running system
Send your property list
A link to your current site or listings is enough. Two minutes of your time, in the form at the bottom of this page.
Open your preview link
Three of your buildings, built for real: your brand, your photos, your policies. Show your leasing team. Show your owner. Free either way.
The whole portfolio goes live
Corporate foundation plus a site per building, every page through the publishing gate: fair housing language, accessibility floor, all-in rent totals.
We run it, you read the report
Local SEO worked per property, eligible sales or leasing office profiles managed with owner authorization, leads tagged and routed, and a per-property report with freshness shown.
Step one
Your portfolio becomes one structured file
Address, beds, amenities, pet policy, photography, coordinates, program type, required fees. Most of this already exists in your listing feed, scattered and inconsistent. We normalise it once.
Normalising is not cosmetic. In one real portfolio we found the same amenity listed twice under two spellings, six different labels for parking, and three for laundry that mean genuinely different things to a renter. In-unit laundry, laundry hookups and a shared laundry room are three different products. Conflating them produces tours that waste everyone's time and reviews saying the listing lied.
Step two
Every building gets a real page
Its own everything
Unique title, description and canonical URL, so search engines and renters have a distinct, accurate property surface instead of one blended portfolio page.
Structured data with real coordinates
ApartmentComplex markup with address, geo and normalised amenities, which gives search engines structured facts they can understand. It does not guarantee crawling, rich results or local ranking.
Amenities ranked by evidence
From the NMHC and Grace Hill 2024 Renter Preferences Survey, 172,703 renters across 4,220 communities: air conditioning and in-unit laundry both clear 93%. Zillow reports twice as many renters filter for pet-friendly as for any other amenity, and pet policy is the one operators bury.
Its own tagged lead form
Every enquiry carries the building it came from, so a lead is attributable to a door rather than to one blended company number.
Honest scope: form attribution is per building today. Per-building call tracking is onboarding work plus a pass-through vendor cost, not something we have already built. Google also treats rental properties themselves as ineligible for Business Profiles. A real sales or leasing office may qualify, with the operator owning or authorizing it.
Step three
The gate
Nothing publishes until it passes. This is the part that is genuinely different, and it is the part you can watch run.
Structure
Unique titles and canonicals, valid structured data, sitemap coverage, page count matching the portfolio, and a rent never shown without its all-in total.
Accessibility
Contrast computed against your actual brand tokens, alt text, form labels, heading order, landmarks, and no measurement tag loading before consent.
Published language
Nine rules over what your pages say, each carrying its basis and a concrete fix. The rules are themselves tested on every run against known-bad copy.
Your brand is never the thing that gets changed
Brand accents are the usual accessibility culprit. One client's orange scores 3.04 to 1 against a 4.5 to 1 floor.
The fix is never to change your brand. The accent stays exactly as it is wherever it works, which is as a fill with dark text on it, and the build derives a darkened variant only for the places the accent is used as text. Computed per client, so it is correct for any palette without anyone remembering to check. One client's colour needed no change at all; another's was automatically lifted until it cleared the floor.
Step four
A dated record of what shipped
Every build writes a manifest: what each page contained, a content hash for it, when it was published, and which checks passed on that exact build.
When counsel, an owner or an allocator asks what a specific building published on a specific date, that question currently has no answer anywhere in a typical organisation, including inside the PMS. Two manifests also settle the other question nobody can answer today: did this page change, and when.
The proof
Watch the build refuse
Not a promise of diligence. This is the real output, run against a real portfolio, and the exit code is the guarantee.
$ node engine/gate.mjs clients/sierra sierra ------ verify pass property pages 18/18 accessibility pass NO FAILURES, 0 warning(s) fair housing pass No high severity flags. not applicable [n/a] FH-FEE-TRANSPARENCY (tested nothing, not a pass) linter self-test all 9 rules fire GATE PASSED