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.
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 it can rank on its own terms instead of competing with its seventeen siblings for one slot.
Structured data with real coordinates
ApartmentComplex markup with address, geo and normalised amenities, which is what makes a building eligible for rich results and the local map pack.
Amenities ranked by evidence
From the largest renter preference survey available, 172,703 renters across 4,220 communities. Air conditioning and in-unit laundry both clear 93%. Pet policy is the most used filter in the category, and it 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. We would rather write that here than let you assume 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.