Every ILS in America reads like it was written by the same person having the same day. "Spacious floor plans." "Modern finishes." "Your new home awaits." Somewhere there is a stock phrase generator that got loose in 2009 and nobody has caught it.
You have forty unit descriptions to write. Maybe more, if you're carrying a lease-up plus renewals plus the three assets that just got rebranded. The reason they all sound the same isn't laziness. It's that description number thirty-one gets written at 4:40pm on a Thursday and "spacious" is right there.
Here's the capability: you can produce forty distinct descriptions in an afternoon that actually sound like your brand, because you're going to build a brand definition the model can follow, then feed it real unit data instead of asking it to imagine an apartment.
First, stop asking the model to write "good copy"
The model has no idea what good means for your portfolio. Ask for good copy and you get the average of every apartment listing ever scraped, which is exactly the sludge you're trying to escape.
So you give it a spec. Not a vibe. A spec.
Open a doc called BRAND VOICE and fill in five things:
Three adjectives, with a "not" attached to each. "Warm, not cutesy. Confident, not luxury-speak. Specific, not poetic." The "not" does most of the work. It gives the model a boundary, and boundaries are the only thing that reliably changes output.
Sentence rhythm. "Short sentences. Fragments allowed. Never more than 22 words." Or the opposite, if your Class A property wants long flowing lines. Just pick one and say it.
Ten words we use. Pull them off your actual website and signage. If your brand says "neighbors" instead of "residents," that's on the list.
Ten words we never use. This is the fun one. Mine: luxurious, nestled, oasis, retreat, boasts, stunning, welcome home, your new home awaits, resort-style, and any sentence starting with "Experience." Add your own. Add "amenity-rich" for me.
Two real examples. Paste in two descriptions you'd be happy to see live and two you'd be embarrassed by. Label them GOOD and BAD. Models pattern-match off examples far better than they follow adjectives, and this is the single highest-leverage thing in the whole doc.
That doc takes forty minutes to build once. You'll reuse it for two years.
Then feed it the unit, not the adjective
Second failure mode: people paste in "2 bed 2 bath, 1,150 sq ft" and expect magic. The model fills the gap with invention. That's when you get a balcony that doesn't exist and a "chef's kitchen" in a unit with a 30-inch range.
Give it a fact block per floor plan. Pull straight from your unit mix sheet and a walk of the model:
- Plan name, beds, baths, square footage
- Actual finish list: quartz vs laminate, LVP vs carpet, cabinet color
- Appliance package, including whether the washer/dryer is in-unit, stacked, or a hookup
- Window orientation and what you can actually see out of them
- Layout quirk: the pass-through, the extra hall closet, the fact that the second bedroom has its own bath, the corner unit with two exposures
- Which floors it's on and the premium if there is one
- One thing that's genuinely different from the other plans in the building
That last line matters most. Forty descriptions sound identical because forty plans get described with the same eight amenities. The differentiator is the difference. A1 and A2 are both one-bedrooms, but A2 has the wider entry and the linen closet, and if you tell the model that, it will write about it.
The batch move
Don't do forty prompts. Do one prompt with the brand doc, then one message per plan, in the same chat, so the brand context stays loaded.
Better: paste six fact blocks at once and ask for six descriptions with a rule attached: "No two descriptions may open with the same sentence structure, and no adjective may repeat across the six." That constraint is what kills the sameness. The model will fight it, then comply, and the six will actually read differently.
Then run a check pass. Paste all forty back in and ask: "List every word that appears in more than four of these descriptions. Flag any claim not present in the source fact blocks." You'll catch the invented balcony and the fact that you used "bright" eleven times.
Describe the apartment, not the person who lives in it
This is the one part of the lesson to read twice.
Models are trained on marketing copy, and a lot of marketing copy describes the customer. So unprompted, they will happily write "perfect for young professionals," "ideal for a growing family," "great for students," or "a quiet building for mature residents." Every one of those describes who should live there rather than what the unit is, and that is a fair housing problem. Familial status, age, and national origin are protected classes, and copy that steers is a violation regardless of intent.
The fix is a standing line in your brand doc and in every prompt: "Describe the unit, the building, and the neighborhood. Never describe who lives here, who it suits, or who it's ideal for. No demographic references of any kind."
Then verify it yourself before anything publishes. Scan every description for the words "perfect for," "ideal for," "great for," and any noun describing a person. Run it as a find command. It takes two minutes across forty descriptions, and it is not a step you delegate to the model that wrote the copy. Your legal exposure, your read.
What you'll actually notice
The first six will need heavy editing. That's normal, and it's how you find the gaps in your brand doc: every edit you make is a rule you forgot to write down. Add it. By plan fifteen, edits get lighter.
What you'll get out of it: descriptions where the A2 sounds different from the A1, which matters because a prospect comparing two plans on your site is trying to find a reason to pick one. Give them the reason.
And the model will still occasionally call a Juliet balcony "expansive outdoor living." It's an optimist. That's what your check pass is for.