Back to Alchemy
Alchemy RecipeBeginnerautomation

Real estate listing automation from property inspection reports

24 March 2026

Introduction

Property managers and real estate agents spend considerable time extracting information from inspection reports, then manually typing that data into listing platforms. A single property inspection generates a PDF report filled with details about condition, repairs, measurements, and features. Someone then reads through it, picks out the relevant bits, and enters them into whatever listing system they use. It is tedious, error-prone, and scales poorly when you have multiple properties.

This workflow automates that entire process. You upload an inspection report as a PDF, the system extracts the key information, generates compelling listing copy, enhances it with professional descriptions, and pushes everything into your listings platform, all without touching a keyboard after the initial upload. What takes 30 minutes of manual work per property now happens in under two minutes.

The three tools in this workflow handle distinct jobs: Chat with PDF reads and understands your inspection documents; Copy AI writes persuasive property descriptions; Flair AI polishes those descriptions with professional tone and formatting. An orchestration layer ties everything together so data flows automatically from one tool to the next.

The Automated Workflow

Which Orchestration Tool to Use

For this particular workflow, we recommend starting with Zapier if you want the absolute simplest setup with zero configuration. If you need more control or plan to scale this across many properties, use n8n for its flexibility and lower per-operation costs. Make works well as a middle ground. Claude Code is worth considering if you want to write custom logic for complex extraction rules.

We will show the complete flow using n8n, since it gives you the most control and transparency about what is happening at each step.

The Data Flow

Here is what happens when you drop a PDF into your workflow:

  1. Webhook receives the PDF file and passes it to Chat with PDF
  2. Chat with PDF extracts structured data from the inspection report
  3. Copy AI receives that data and generates initial listing copy
  4. Flair AI receives the copy and enhances it with professional language
  5. The final output gets sent to your listing platform via API

Each step waits for the previous one to finish. No manual intervention needed.

Setting Up the Webhook Trigger

In n8n, start with a webhook node. This listens for incoming PDF files.


{
  "webhook_url": "https://your-n8n-instance.com/webhook/property-inspection",
  "method": "POST",
  "content_type": "multipart/form-data"
}

Configure it to accept POST requests. When someone uploads a PDF to this endpoint, the workflow triggers. Most people use a simple web form or zapier integration to send files to this webhook.

Step 1: Extract Data with Chat with PDF

Chat with PDF by Copilotus reads PDFs and answers questions about their content. Rather than trying to extract everything at once, send it specific questions that match your listing template.

Use the Chat with PDF API endpoint to send your PDF and extraction prompts:


POST https://api.chatpdf.com/v1/chat/message
Content-Type: application/json
X-API-Token: your_api_key_here

{
  "sourceId": "src_pdf_file_id",
  "messages": [
    {
      "role": "user",
      "content": "Extract the following information from this inspection report as JSON: property_address, total_square_feet, number_of_bedrooms, number_of_bathrooms, year_built, roof_condition, foundation_condition, hvac_status, major_repairs_needed, and notable_features. Return only valid JSON."
    }
  ]
}

The sourceId comes from uploading your PDF first. In n8n, use the Chat with PDF upload endpoint before sending the extraction request:


POST https://api.chatpdf.com/v1/sources/add-file
Content-Type: multipart/form-data
X-API-Token: your_api_key_here

file: <your pdf binary data>

This returns a sourceId you use in subsequent requests. In n8n, store this in a variable for the next step.

The response from Chat with PDF will be a JSON object with all extracted fields. It will look something like this:

{
  "property_address": "42 Oakwood Lane, Bristol BS8 2LA",
  "total_square_feet": "2,850",
  "number_of_bedrooms": "4",
  "number_of_bathrooms": "2.5",
  "year_built": "1987",
  "roof_condition": "Good condition, replaced 2019",
  "foundation_condition": "No visible cracks or settling",
  "hvac_status": "Central heating and air conditioning, serviced annually",
  "major_repairs_needed": "Fence panels require replacement in rear garden",
  "notable_features": "Original period features, recently updated kitchen, south-facing garden"
}

Step 2: Generate Listing Copy with Copy AI

Copy AI creates marketing copy based on your extracted data. Send it the structured information from step 1, along with instructions about tone and length.


POST https://api.copy.ai/v1/generate
Content-Type: application/json
Authorization: Bearer your_copyai_api_key

{
  "input": {
    "address": "42 Oakwood Lane, Bristol BS8 2LA",
    "bedrooms": 4,
    "bathrooms": 2.5,
    "sqft": 2850,
    "year_built": 1987,
    "condition_summary": "Good condition, replaced 2019",
    "features": "Original period features, recently updated kitchen, south-facing garden"
  },
  "template": "real_estate_listing_description",
  "tone": "professional_inviting",
  "max_length": 300
}

Copy AI returns a draft description ready for a listing platform:


Charming Victorian property on desirable Oakwood Lane. This four-bedroom, two-and-a-half bathroom home offers 2,850 square feet of comfortable living space. Recently updated kitchen combines modern conveniences with original period features throughout. South-facing garden provides excellent natural light and outdoor entertaining potential. Central heating and air conditioning with annual servicing. Roof replaced in 2019. An excellent opportunity for families seeking character and location.

In n8n, map the extracted data fields to Copy AI's input parameters. Use the expression editor to create the mapping.

Step 3: Enhance with Flair AI

Flair AI takes the copy from step 2 and polishes it further, improving readability, adding professional formatting, and optimising for search visibility on listing platforms.


POST https://api.flair.ai/v1/enhance
Content-Type: application/json
X-API-Key: your_flair_api_key

{
  "content": "Charming Victorian property on desirable Oakwood Lane...",
  "content_type": "real_estate_listing",
  "enhancement_type": "professional_polish",
  "target_length": "medium",
  "include_highlights": true,
  "optimise_for_search": true
}

Flair AI returns enhanced copy with bullet points for key features:


Charming Victorian Home in Prime Bristol Location

Overview
This exceptional four-bedroom, two-and-a-half bathroom property combines period character with modern living standards across 2,850 square feet of well-appointed space.

Key Features
• Recently refurbished kitchen with integrated appliances
• Original period details throughout
• South-facing garden with entertaining space
• Modern central heating and cooling systems
• Roof replaced 2019
• Solid foundation, no settlement issues

Property Highlights
Located on the desirable Oakwood Lane, this home offers an ideal blend of Victorian charm and contemporary comfort. Original features have been preserved whilst the kitchen has been thoughtfully updated to meet modern expectations.

Step 4: Send to Your Listing Platform

Most real estate platforms provide APIs for creating or updating listings. Here is an example using a generic real estate API endpoint:


POST https://api.your-listing-platform.com/v1/properties
Content-Type: application/json
Authorization: Bearer your_listing_api_token

{
  "address": "42 Oakwood Lane, Bristol BS8 2LA",
  "bedrooms": 4,
  "bathrooms": 2.5,
  "square_feet": 2850,
  "year_built": 1987,
  "description": "<output from Flair AI>",
  "property_condition": "good",
  "features": ["updated_kitchen", "original_period_features", "south_facing_garden"],
  "roof_status": "recently_replaced",
  "heating_cooling": "central_hvac",
  "external_id": "inspection_report_unique_id"
}

The listing platform confirms receipt and returns a property ID for your records.

In n8n, your complete workflow now looks like this:

  1. Webhook node (receives PDF)
  2. Chat with PDF node (extracts data)
  3. Copy AI node (generates copy)
  4. Flair AI node (enhances copy)
  5. HTTP Request node (posts to listing platform)

Connect each output to the next input using n8n's data mapping interface. The entire flow runs automatically when a PDF arrives.

Error Handling and Retries

Add error handling nodes after each API call. If Chat with PDF fails to extract data, the workflow should log the error and notify you rather than proceeding with empty data.


{
  "node": "Chat with PDF",
  "error_handler": {
    "on_error": "send_notification",
    "notify_email": "alerts@yourcompany.com",
    "retry_count": 2,
    "retry_delay_seconds": 10
  }
}

Use n8n's error output to catch failures, then branch the workflow to send alerts or store failed PDFs for manual review.

The Manual Alternative

If you prefer human review before publishing, pause the workflow after the Flair AI step. Use n8n's email node to send the enhanced listing copy to your team for approval. Someone reviews it, makes final tweaks, and manually publishes to your platform. This trades automation for control and is perfectly reasonable if you have time or need quality assurance on every listing.

Alternatively, use Zapier's approval workflow to require manual sign-off before the listing gets posted. Set up a Zapier action that sends a review request and waits for approval before proceeding to the final posting step.

This approach takes longer but ensures no listing goes live without human eyes on it.

Pro Tips

Rate Limiting and API Quotas

Chat with PDF, Copy AI, and Flair AI all have rate limits. Check your plan details carefully. If you process many PDFs daily, you may hit limits quickly. Spread uploads throughout the day rather than batching them all at once. In n8n, use delay nodes between API calls to throttle requests.


{
  "delay_between_requests": "2000ms",
  "max_concurrent_workflows": 5
}

Most services charge per API call, so batching can actually save money if you have daily volume targets rather than sudden spikes.

PDF Quality Matters

Chat with PDF works best with clean, well-formatted PDFs. Scanned images of inspection reports with poor contrast will produce unreliable extractions. If you receive low-quality PDFs, consider running them through an OCR tool first. This adds a step but dramatically improves extraction accuracy.

Store Extracted Data

Save the JSON output from Chat with PDF to a database or spreadsheet alongside your listing. You now have a searchable archive of extracted property data. Use this for compliance, historical tracking, or re-listing properties later.

Customise Your Extraction Questions

Do not rely on generic extraction prompts. Tailor Chat with PDF questions to match exactly what your listing platform requires. If your platform needs separate fields for "selling points" and "repairs needed", ask Chat with PDF to extract those as separate items rather than combined into one field.

Monitor Listing Quality

Set up a weekly audit of published listings. Check a sample of five to ten listings for accuracy and tone. If you notice patterns (extraction always misses electrical systems, for example), adjust your Chat with PDF prompts accordingly. This continuous improvement keeps quality high as you scale.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Chat with PDF by CopilotusPro£30500 documents/month, sufficient for 30-40 properties with multiple uploads. Pay as you grow option available.
Copy AIStarter£20Unlimited generations, basic templates. Upgrade to £60 for advanced templates if you need more customisation.
Flair AIProfessional£351,000 enhancements/month. Contact sales for volume discounts above 5,000/month.
n8nCloud Pro£20100,000 executions/month. Self-hosted option is free but requires server infrastructure.
ZapierStandard£252,000 tasks/month. Better value if you only process 10-15 properties weekly.
Listing Platform APIYour existing plan£0Already paying for this; no additional cost.
Total Monthly£130-£175Scales down to £75-£100 if you use Zapier instead of n8n and process fewer than 20 properties weekly.

The total cost sits between £130 and £175 per month assuming moderate volume. At 40 properties processed monthly, your cost per listing is roughly £3.25 to £4.37. Manual data entry costs considerably more when you factor in staff time.