Batch Listing Description Generator
You manage 20 active listings for a team and need fresh descriptions for all of them before the MLS syndication deadline tomorrow morning.
A team lead with 20 active listings that all need updated descriptions before a syndication deadline
An API workflow that takes a spreadsheet of listing data and returns 20 MLS-ready descriptions in under 3 minutes
A CSV with columns for address, beds, baths, sqft, price, key features, neighborhood, year built, and lot size for all 20 listings
Create the system prompt, the per-listing prompt template, and the spreadsheet format needed to run 20 listings through the API in one batch
You are a real estate AI automation consultant. Create a complete batch listing description workflow using the OpenAI API. Goal: Process 20 listings from a spreadsheet and generate MLS-ready descriptions for each Tool: OpenAI API (GPT-4) via a simple Python script or Zapier/Make.com workflow Create these components: 1. SYSTEM PROMPT (the instruction that stays the same for every listing): - Define the AI's role as a real estate copywriter - Set tone: professional, warm, specific — no superlatives like "stunning" or "gorgeous" - Set format: 150-200 words, 3 paragraphs, highlight top 3 features, include neighborhood context - Set constraints: MLS-compliant, no Fair Housing violations, no discriminatory language 2. PER-LISTING PROMPT TEMPLATE (with merge fields from the spreadsheet): - , , , , , , , , 3. SPREADSHEET FORMAT: - Show the exact column headers and 2 example rows 4. WORKFLOW STEPS: - Step-by-step instructions for running this via (a) a Python script or (b) Make.com/Zapier - Include error handling for missing data fields 5. QUALITY CHECK PROMPT: - A follow-up prompt that reviews all 20 descriptions for consistency, banned words, and Fair Housing compliance
**1. SYSTEM PROMPT** ``` You are a professional real estate copywriter. Write MLS listing descriptions that are specific, warm, and factual. Rules: - 150-200 words, 3 paragraphs - Paragraph 1: Property overview and standout feature - Paragraph 2: Interior highlights and layout - Paragraph 3: Neighborhood and lifestyle context - Highlight the top 3 features naturally within the description - No superlatives: never use "stunning," "gorgeous," "breathtaking," "amazing," or "dream home" - No discriminatory language per Fair Housing Act: never reference race, religion, national origin, familial status, disability, sex, or any protected class - No directional language suggesting who should/shouldn't live there - Use specific numbers (square footage, room counts, distances) - End with a call to action: "Schedule your private showing today." ``` **2. PER-LISTING PROMPT TEMPLATE** ``` Write an MLS listing description for this property: Address: Bedrooms: | Bathrooms: | Square Feet: List Price: Year Built: | Lot Size: Neighborhood: Key Features: Write the description following the system instructions. ``` **3. SPREADSHEET FORMAT** | address | beds | baths | sqft | price | yearBuilt | lotSize | neighborhood | features | |---|---|---|---|---|---|---|---|---| | 412 Eastland Ave, Nashville, TN 37206 | 3 | 2 | 1,840 | $485,000 | 1925 | 0.18 acres | East Nashville | Original hardwood floors, renovated kitchen with quartz, detached ADU rented at $1,200/mo | | 1521 Woodland St, Nashville, TN 37206 | 4 | 3 | 2,100 | $529,000 | 2019 | 0.12 acres | East Nashville | Modern farmhouse, open floor plan, primary on main, Shelby Park views | **4. WORKFLOW STEPS** **Option A — Python Script:** [Step-by-step code walkthrough for reading CSV, calling OpenAI API with system prompt and per-listing prompt, saving results to output CSV...] **Option B — Make.com/Zapier:** [Step-by-step no-code workflow: Google Sheets trigger → OpenAI module → output to new spreadsheet column...] **5. QUALITY CHECK PROMPT** ``` Review these 20 listing descriptions for: 1. Any use of banned words: stunning, gorgeous, breathtaking, amazing, dream home, perfect, must-see 2. Any Fair Housing violations: references to protected classes, directional language, neighborhood demographic descriptions 3. Word count compliance: flag any under 150 or over 200 words 4. Consistency: do all 20 follow the 3-paragraph structure? 5. Missing elements: does every description mention the top 3 features and end with a showing CTA? Return a table with: Listing #, Word Count, Banned Words Found, FH Issues, Structure OK (Y/N), Missing Elements ```
Why It Works
The system prompt stays constant while the per-listing data swaps in via merge fields — exactly how APIs work. The quality check prompt at the end catches the errors that batch processing can introduce. This workflow processes 20 listings in the time it takes to manually write 1.