MLS listing copy. AIDA, feature-to-benefit, A/B variants.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add LoopyLuci/Skills --skill real-estate-listing-copywriting --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Real Estate Listing Copywriting?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/loopyluci-real-estate-listing-copywriting)More formats (shields.io, HTML) on the badges page.
---
name: real-estate-listing-copywriting
description: "MLS listing copy. AIDA, feature-to-benefit, A/B variants."
version: 2.0.0
author: Hermes Agent
license: MIT
platforms: [linux, macos, windows]
metadata:
hermes:
tags: [real-estate, copywriting, mls, listings, marketing]
related_skills: [real-estate-social-media-content, real-estate-cma-generator]
---
# Real Estate Listing Copywriting
Write MLS-optimized property listings that convert. Use the AIDA framework, convert features into benefits, produce 3 A/B variants per listing, and optimize for all major platforms (MLS, Zillow, Redfin, Realtor.com, social media).
## When to Use
- Writing a new listing description for the MLS
- Refreshing a stale listing that's been on market 30+ days
- Creating versioned copy for different platforms (MLS vs. social)
- Coaching a client on how their listing will be marketed
- Building a listing copy template library for your team
## The AIDA Framework
Every listing should follow the **AIDA** structure:
| Stage | Purpose | Example Headline |
|---|---|---|
| **A**ttention | Hook in 3-8 words | "Rooftop Views + Chef's Kitchen" |
| **I**nterest | Build desire with benefits | "Wake up to sweeping skyline views from your private terrace" |
| **D**esire | Paint the lifestyle picture | "Imagine hosting dinner parties in this renovated open-concept space" |
| **A**ction | Clear next step | "Schedule your private showing today — this one won't last" |
## Workflow
### 1. Gather Property Details
Collect from the user or MLS:
```
Address:
Property Type: [Single Family / Condo / Townhouse / Multi-Family]
Bedrooms:
Bathrooms:
Square Footage:
Lot Size:
Year Built:
List Price:
HOA Dues:
Garage/Parking:
Key Features (list 5-10):
Recent Upgrades (list 3-5):
Unique Selling Points (3):
School District:
Neighborhood/Subdivision:
Nearby Amenities:
```
### 2. Feature → Benefit Translation
Convert every feature into a buyer benefit:
| Feature | → Benefit |
|---|---|
| "Quartz countertops" | "Elegant, low-maintenance quartz countertops — no sealing required" |
| "New HVAC (2023)" | "Year-round comfort with a brand-new HVAC system — lower utility bills" |
| "Walk-in closet" | "His-and-hers walk-in closets with custom organizers" |
| "Hardwood floors" | "Gleaming hardwood floors throughout — no carpet to clean" |
| "Open floor plan" | "Seamless flow from kitchen to living — perfect for entertaining" |
| "Smart home features" | "Control lighting, thermostat, and security from your phone" |
| "South-facing backyard" | "Sun-drenched south-facing yard — all-day natural light" |
| "Dual vanity" | "Morning-ready dual vanity — no more fighting for counter space" |
| "Updated kitchen" | "Turn-key chef's kitchen with stainless steel appliances" |
| "Pool" | "Resort-style pool — your weekend escape without leaving home" |
| "Mountain views" | "Breathtaking mountain panoramas from every window" |
| "Walking distance to transit" | "5-min walk to the metro — skip the traffic" |
| "Corner lot" | "Extra privacy and landscaping on a coveted corner lot" |
| "New roof" | "Peace of mind with a new roof and 30-year transferable warranty" |
### 3. Generate 3 A/B Variants
Create three distinct tones for A/B testing:
```python
def generate_listing_variants(property_info):
"""
Generate 3 tone variants for a property listing.
property_info: dict with beds, baths, sqft, price, features, etc.
"""
addr = property_info.get('address', '')
beds = property_info.get('beds', 3)
baths = property_info.get('baths', 2)
sqft = property_info.get('sqft', 1500)
price = property_info.get('price', 500000)
features = property_info.get('features', [])
usp = property_info.get('usp', [])
agent = property_info.get('agent_name', 'Your Agent')
agency = property_info.get('agency', 'Realty Co.')
phone = property_info.get('phone', '555-0100')
variants = {}
# Variant A: Luxury / aspirational
headline_a = f"Sophisticated Living in the Heart of {property_info.get('neighborhood', 'Town')}"
body_a = f"""
Price: ${price:,}
{headline_a}
Step into a world of refined elegance at {addr}. This {beds}-bedroom, {baths}-bathroom residence spans {sqft:,} sq ft of meticulously designed living space.
{usp[0] if len(usp) > 0 else 'Every detail has been thoughtfully curated to elevate your daily life.'}
FEATURES YOU'LL LOVE:
"""
for f in features[:5]:
body_a += f"\n• {f}"
body_a += f"""
DON'T MISS THIS OPPORTUNITY
Schedule your private tour today. Homes of this caliber don't stay on the market long.
{agent} | {agency} | {phone}
"""
variants['luxury'] = {'headline': headline_a, 'body': body_a.strip()}
# Variant B: Warm / lifestyle
headline_b = f"Welcome Home — {beds} Beds, {baths} Baths, Endless Charm"
body_b = f"""
Price: ${price:,}
{headline_b}
{addr} isn't just a house — it's where memories are made. Picture yourself sipping morning coffee on the sunlit deck, hosting friends in the open-concept living room, and tucking the kids into cozy bedrooms upstairs.
This inviting {beds}-bed, {baths}-bath home offers {sqft:,} sq ft of comfortable living space, including:
"""
for f in features[:5]:
body_b += f"\n• {f}"
body_b += f"""
Come see for yourself why {property_info.get('neighborhood', 'this neighborhood')} is one of the most sought-after communities in the area.
Schedule your showing today — your new home is waiting.
{agent} | {agency} | {phone}
"""
variants['warm'] = {'headline': headline_b, 'body': body_b.strip()}
# Variant C: Short / data-driven (Zillow-optimized)
headline_c = f"{beds}BR/{baths}BA | {sqft:,} sq ft | ${price:,} | {property_info.get('neighborhood', 'Prime Location')}"
body_c = f"""
{headline_c}
The Numbers:
• {beds} Bedrooms | {baths} Bathrooms | {sqft:,} Sq Ft
• Built: {property_info.get('year_built', 'N/A')} | Lot: {property_info.get('lot_size', 'N/A')}
• HOA: ${property_info.get('hoa', 'N/A')}/mo
• Price/Sq Ft: ${price // sqft:,}
Key Facts:
"""
for f in features[:5]:
body_c += f"\n• {f}"
body_c += f"""
{usp[0] if len(usp) > 0 else ''}
Available for showings starting immediately. Ask about our preferred lender incentives.
{agent} | {agency} | {phone}
"""
variants['data'] = {'headline': headline_c, 'body': body_c.strip()}
return variants
# Example usage
property_info = {
'address': '123 Main St, Austin, TX 78701',
'beds': 4,
'baths': 3,
'sqft': 2400,
'price': 675000,
'year_built': 2019,
'lot_size': '0.25 acres',
'hoa': 150,
'neighborhood': 'Zilker',
'features': [
'Chef's kitchen with quartz counters and Thermador appliances',
'Engineered hardwood floors throughout main level',
'Primary suite with spa-like ensuite and walk-in closet',
'Covered patio with built-in grill — perfect for entertaining',
'Smart home system: Nest thermostat, Ring doorbell, Lutron lighting',
'EV charger in two-car garage',
'Walking distance to Barton Springs, Zilker Park, and South Congress',
],
'usp': [
'Rarely available end-unit with extra windows and private yard',
'Top-rated Austin ISD schools — Zilker Elementary',
'Low-maintenance living with HOA-covered lawn care',
],
'agent_name': 'Sarah Johnson',
'agency': 'Austin Realty Collective',
'phone': '512-555-0142',
}
variants = generate_listing_variants(property_info)
for tone, content in variants.items():
print(f"\n{'='*70}")
print(f"VARIANT: {tone.upper()}")
print(f"{'='*70}")
print(content['headline'])
print(content['body'])
```
### 4. Platform-Specific Optimization
| Platform | Character Limit | Style | Key Rules |
|---|---|---|---|
| **MLS** | Usually unlimited, but first 250-500 chars shown | Professional, complete sentences | Include all room names, school district, property condition |
| **Zillow** | 500 chars for description | Benefit-forward, scannable | Lead with best feature, bullet points help |
| **Redfin** | 500 chars | Conversational, warm | Write like a local — mention nearby coffee shops, parks |
| **Realtor.com** | 500 chars | Balanced | Blend MLS professionalism with lifestyle language |
| **Instagram** | 2,200 chars caption | Emotional, visual-first | Start with the view/photo description, emojis OK |
| **Facebook** | 5,000 chars | Storytelling | Longer format, ask questions, encourage comments |
| **TikTok/Reels** | Caption: ~150 chars | Punchy, hashtag-heavy | Hook in first 3 words, 5-10 relevant hashtags |
### 5. SEO Keyword Strategy
Include these high-value keywords naturally in your copy:
- **Location**: neighborhood, zip code, school district, nearby landmarks
- **Property type**: single-family, condo, townhouse, loft, ranch, colonial
- **Lifestyle**: "starter home," "move-in ready," "turnkey," "income property"
- **Condition**: "newly renovated," "updated kitchen," "fresh paint"
- **Amenities**: "hardwood floors," "open floor plan," "granite counters"
- **Market cues**: "priced to sell," "rare opportunity," "motivated seller"
### 6. MLS Bullet Optimization
Keep MLS bullets punchy and benefit-driven:
```
❌ BAD: "New kitchen with quartz countertops"
✅ GOOD: "Gorgeous chef's kitchen w/ quartz counters & stainless appliances"
❌ BAD: "Large backyard"
✅ GOOD: "Expansive private backyard — perfect for summer BBQs and play"
❌ BAD: "Close to shopping"
✅ GOOD: "Walk to Trader Joe's, Starbucks, and the farmers market"
❌ BAD: "3 bedrooms"
✅ GOOD: "3 generously sized bedrooms with ceiling fans and walk-in closets"
```
### 7. Listing Refresh Strategy
For stale listings (30+ days on market):
1. **Change the headline** completely — new angle, new hook
2. **Update 3+ photos** — different angles, different lighting, different season
3. **Add a price improvement note** if applicable: "New Price! Originally $525k — now $499k"
4. **Emphasize different features** — if you led with kitchen, now lead with location
5. **Change the tone** — switch from luxury to warm, or from data to lifestyle
6. **Add a seller incentive**: "Closing cost credit offered," "Rate buydown available"
### 8. Listing Photo Caption Templates
**Living Room:** "Sun-drenched living room with 10-ft ceilings and gas fireplace — the heart of the home"
**Kitchen:** "Chef-worthy kitchen with waterfall island, Bosch appliances, and walk-in pantry"
**Primary Bedroom:** "Primary retreat with spa ensuite, dual vanities, and custom walk-in closet"
**Backyard:** "Resort-inspired backyard with saltwater pool, pergola, and outdoor kitchen"
**View:** "Unobstructed sunset views from the rooftop terrace — every evening is a show"
**Entryway:** "A grand welcome: marble foyer sets the tone for this meticulously maintained home"
## Common Pitfalls
- **Writing for agents, not buyers**: Avoid jargon like "3/2 SFD w/ 2CG" — write for humans, not the MLS grid.
- **Feature dumps with no benefits**: A list of features without "what this means for you" doesn't motivate a showing.
- **Hyperbole that triggers skepticism**: "Best house ever" and "one of a kind" are trust-killers. Be specific instead.
- **Ignoring the listing photos**: Copy that contradicts photos (mentions "city views" when no windows face the skyline) creates cognitive dissonance.
- **Overwriting the first 250 characters**: MLS and Zillow truncate. Put the strongest selling point in the first sentence.
- **Forgetting the call to action**: Every listing needs an explicit next step — "Schedule your showing" not "Contact us for more info."
- **Neglecting mobile formatting**: Buyers read on phones. Short paragraphs, bullet points, and frequent line breaks.
- **Missing key MLS compliance**: Every market has required disclaimers (brokerage name, fair housing, EHO). Check your local MLS rules.
- **Using stale templates**: Buyers have seen every real estate cliché. Fresh, authentic copy stands out.
- **Not localizing**: Generic copy that could describe any house in any city doesn't sell. Name the coffee shop, the park, the farmers market.
## Verification Checklist
- [ ] AIDA framework present (Attention hook in headline, Interest/Desire in body, Action in closing)
- [ ] Every feature translated to a buyer benefit (no naked feature lists)
- [ ] 3 A/B variants generated (luxury/aspirational, warm/lifestyle, data-driven)
- [ ] Strongest selling point in the first 250 characters
- [ ] Active voice throughout (not passive: "You'll love" not "It is loved by")
- [ ] MLS compliance checked (Fair Housing disclaimer, broker info, required disclosures)
- [ ] Mobile-friendly formatting (short paragraphs, bullets, line breaks)
- [ ] Platform-specific optimization applied (MLS vs Zillow vs social)
- [ ] SEO keywords included naturally (location, type, amenities)
- [ ] No hyperbole, clichés, or industry jargon for consumers
- [ ] Call to action is explicit and time-sensitive
- [ ] Photo captions written for each key space (living, kitchen, primary, outdoor)
- [ ] Spelling and grammar checked (use a tool — no exceptions)
- [ ] For stale listings: headline changed, photos updated, incentive addedIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!