Back to Alchemy
Alchemy RecipeIntermediateautomation

Real estate listing automation: inspection photos to virtual tour to listing copy

An estate agent's Tuesday morning usually looks like this: two hours photographing a three-bedroom semi, another hour touching up images, forty-five minutes writing listing copy, and then waiting for someone to manually create a virtual tour. By lunchtime, a single property has consumed half the working day. Multiply that across a busy office handling ten to fifteen properties a week, and you're looking at fifty-plus hours of repetitive work that doesn't actually sell homes, it just describes them. The problem is structural. Each step requires a different tool and a different skill set. Photos need editing. Copy needs writing. Tours need building. These tasks are sequential, and they're sequential because no system has existed to run them in parallel or to pass data between them without human intervention. Until now. This workflow connects five AI tools into a single pipeline that takes raw inspection photos and produces a complete, ready-to-publish listing with enhanced imagery, professional copy, and a narrated virtual tour. You upload photos once. Everything else happens automatically. For more on this, see Real estate virtual tour generation from inspection photos. For more on this, see Real estate listing automation from property inspection r....

The Automated Workflow

We'll use n8n for orchestration because it handles image processing, API calls, and conditional logic without requiring you to code. Zapier would work too, but n8n gives you more control over file handling and lets you run transformations in parallel. Here's how data flows: 1. Photos are uploaded to a shared folder (Google Drive or Dropbox).

  1. n8n detects new files and triggers the workflow.

  2. Images are enhanced using Pixelcut AI and AI Boost.

  3. Metadata (address, bedrooms, price) is extracted or manually added.

  4. Copy.ai generates the listing description.

  5. ElevenLabs converts the description into audio.

  6. All outputs are assembled and saved to a delivery folder.

Setting up the trigger in n8n

Start with a webhook or folder watcher. If you're using Google Drive, authenticate n8n with your Google account and set the trigger to watch a folder called "Raw Photos".

Trigger: Google Drive - Watch Folder
Folder: /Real Estate Inspections/Raw Photos
Output: File ID, File Name, MIME Type

Step 1: Image Enhancement (Parallel Processing)

Once files are detected, send them to both Pixelcut AI and AI Boost simultaneously. This saves time because you don't need to wait for one service to finish before starting the other. For Pixelcut, use their REST API to remove backgrounds and enhance lighting:

POST /api/v1/process
Content-Type: application/json { "image_url": "https://drive.google.com/uc?id=FILE_ID", "operations": [ { "type": "enhance", "brightness": 1.1, "contrast": 1.15, "saturation": 1.1 }, { "type": "remove_background", "output_format": "png" } ], "output_destination": "https://your-webhook-endpoint.com/receive-enhanced"
}

For AI Boost, configure the upscaling operation:

POST /api/v2/upscale
Content-Type: application/json { "image_id": "FILE_ID", "scale_factor": 2.0, "enhance_sharpness": true, "denoise": true, "webhook_url": "https://your-webhook-endpoint.com/receive-upscaled"
}

Both images come back to n8n via webhooks. Store them in a dedicated Google Drive folder called "Enhanced Images".

Step 2: Generate Listing Copy

Pass the property metadata (address, bedrooms, bathrooms, price, property type) to Copy.ai. You can hardcode this data in the n8n node or pull it from a Google Sheet if you prefer not to re-enter details.

POST /api/v1/generate
Content-Type: application/json { "api_key": "YOUR_COPY_AI_KEY", "template": "real_estate_listing", "variables": { "address": "47 Elm Street, Manchester M1 1AE", "bedrooms": 3, "bathrooms": 2, "price": "£450,000", "property_type": "Semi-detached", "key_features": ["New kitchen", "Recently rewired", "Double glazing"], "tone": "professional_inviting" }, "max_length": 400
}

Copy.ai returns polished, SEO-friendly listing text. Store this in a text file in your "Listing Assets" folder.

Step 3: Convert Copy to Audio

Take the generated listing text and send it to ElevenLabs Turbo v2.5 for voice synthesis. Choose a voice that sounds professional and neutral. ElevenLabs supports multiple accents; British English voices work well for UK property descriptions.

POST /v1/text-to-speech/VOICE_ID/stream
Content-Type: application/json { "text": "47 Elm Street, Manchester. This stunning three-bedroom semi-detached home features a modern fitted kitchen, rewired electrics, and double-glazed windows throughout...", "model_id": "eleven_turbo_v2_5", "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 }
}

Set the output format to MP3 and save it to your "Audio Assets" folder.

Step 4: Assemble and Deliver

Create a final n8n node that compiles everything into a folder structure:

/Completed Listings/
├── 47 Elm Street/
│ ├── listing_copy.txt
│ ├── enhanced_images/
│ │ ├── image_1_enhanced.jpg
│ │ ├── image_2_upscaled.jpg
│ │ └── image_3_no_background.png
│ └── narration.mp3

You can optionally generate a simple HTML preview file that displays the images, text, and embeds the audio, so clients can review everything before publication. Use the Google Drive node to move files to this structured folder, then send a Slack notification to your team indicating the listing is ready.

POST /chat.postMessage
Content-Type: application/json { "channel": "#estate-listings", "text": "New listing ready: 47 Elm Street, Manchester. Review here: [Google Drive Link]", "attachments": [ { "image_url": "https://drive.google.com/uc?id=HERO_IMAGE_ID", "text": "3 bed, 2 bath | £450,000" } ]
}

The entire workflow, from upload to delivery, takes 8 to 12 minutes depending on file sizes and API response times.

The Manual Alternative

If you prefer more control, you can run each step independently: 1. Upload photos to Pixelcut via their web interface, download enhanced versions.

  1. Open Copy.ai, paste property details, copy the generated text.

  2. Use ElevenLabs' web app to generate audio from your listing copy.

  3. Manually organise files in folders and create a simple HTML or PDF summary. This approach gives you a chance to review and tweak each step, but it reintroduces the handoff problem. A junior agent or administrator ends up managing the coordination.

Pro Tips

Rate Limiting and Costs

Both Pixelcut and AI Boost have request limits on free tiers.

If you're processing more than five properties per day, upgrade to their paid plans. n8n will queue requests and retry on failure, but be aware that simultaneous API calls can hit rate limits. Stagger large batches by scheduling the workflow to run at specific times rather than on immediate file upload.

Image Quality Control

Pixelcut's background removal occasionally fails on images with complex backgrounds (mirrors, reflections, furniture edges). Add a conditional node in n8n that checks the confidence score returned by Pixelcut. If confidence is below 85%, flag the image for manual review instead of passing it through the full pipeline.

Voice Consistency

ElevenLabs allows voice cloning if you want all listings narrated in the same agent's voice (with their permission). Record a short sample, upload it to ElevenLabs, and use that voice ID in all subsequent calls. This creates brand consistency across your portfolio.

Data Security

Estate agent photos contain sensitive information. Ensure all your API keys are stored in n8n's encrypted credential store, not hardcoded in nodes. Use Google Drive's sharing settings to restrict access to listing folders to your team only.

Cold Start Testing

Before deploying this on live listings, test it with a single property. Run the workflow, review outputs, and adjust Copy.ai's tone and ElevenLabs' voice settings if needed. Save these settings as n8n defaults so all subsequent listings follow the same style.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
n8n (self-hosted)Cloud Pro£30Includes webhook triggers and file operations; self-hosting is free but requires server maintenance
Pixelcut AIProfessional£30500 images/month; overage £0.10 per image
AI BoostStandard£20Unlimited upscaling and face retouching; includes basic background removal
Copy.aiBusiness£49Unlimited generations; custom templates
ElevenLabs Turbo v2.5Pro£99500,000 characters/month (~150 listings)
Total£228Supports 10-15 listings per week