DEV Community

Jo
Jo

Posted on AI-assisted

OffMarket Writer: A Local AI That Turns Property Photos Into Listings

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

OffMarket Writer is a local app for real estate agents. Upload up to six property photos, add the basic facts (price, beds, baths, location, extras), pick a tone, and it writes a headline, description, and highlights ready to paste into a listing.

Agents would pay for it because writing listings is repetitive, and unlisted properties and client photos are things they often don't want on a third party server. It could be sold as a flat price tool instead of a per listing subscription.

Demo

Code

🏠 OffMarket Writer

Turn property photos into polished real estate listings, 100% locally Your photos and unlisted property details never leave your laptop.

Built with Gemma 3 (open-weight) running through Ollama and a Streamlit interface.

What it does

  1. Upload up to 6 property photos
  2. Add basic facts (price, beds, baths, location, extras)
  3. Pick a tone (warm, luxury, concise, investor-focused)
  4. Get a headline, description, and highlights ready to copy

How it works

Two passes with gemma3:4b:

  1. Look: describes only what is visible in each photo
  2. Write: combines those notes with the agent's facts into a listing

The prompt forbids inventing features and follows fair housing guidelines.

Why local?

  • Client photos and unlisted properties stay private
  • No per-listing API fees
  • Open-weight model that can be swapped or fine-tuned

Setup

  1. Install Ollama and pull the model:
   ollama pull gemma3:4b
Enter fullscreen mode Exit fullscreen mode
  1. Install dependencies:
   pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode
  1. Run the app:
   streamlit run app.py
Enter fullscreen mode Exit fullscreen mode
  1. …

How I Built It

  • Model: Gemma 3 (4B, open weight) running locally through Ollama
  • Interface: Streamlit
  • Two pass pipeline: First, Gemma looks at each photo and describes only what is visible. Second, it combines those notes with the agent's facts to write the listing.
  • Prompt guardrails: A strict "use only provided information" rule, a ban on unsupported claims like "secure" or "newly renovated," and a fair housing rule that forbids language about who should or shouldn't live in a home.

What I learned testing it: I ran six photos of a stone villa (exterior, courtyard, terrace, pool, bathroom, bedroom). It identified each space correctly and used my numbers (2 bed, 2 bath, 1500 sq ft) accurately. Early output had two problems: chatty intros like "Here's a description of..." and flowery adjectives the photos didn't support. Tightening the prompts fixed most of it. A 4B model needs firm rules to stay factual. Generation took about [X seconds] for six photos on my [MacBook Pro].

Why Does Open Innovation Matter?

  • Privacy: Property photos and pricing for unlisted homes never leave the agent's laptop. It works with wifi off.
  • Cost: No per listing API fees, so a flat price is viable.
  • Control: Because the model is open weight, I can edit its behavior through prompts today and fine tune or swap it later for a specific market or brand voice.

Prize Categories

  • Best Use of Gemma

Top comments (0)