AERIAL SHOTSmedia

For Agents · What's Working

Real AI builds for real estate agents.

Tools you build with Claude Code, Hermes Agent, OpenClaw, and MCP servers. Not chatbots you pay $20/month for. Your data, your workflows, your voice - automating the parts of your business that you actually want automated.

Last updated June 16, 2026. Refreshed roughly weekly. Mined from r/ClaudeAI, r/LocalLLaMA, r/ChatGPTCoding, and X builders shipping real implementations.

01 · The build

Personal AI memory layer over every client conversation

Your iMessage threads, Notes, and Calendar become a queryable memory bank. Ask what the Johnsons said about schools back in March and your agent answers from your actual data.

What you build

A local agent runtime on a Mac mini in your office. MCP servers expose your iMessage threads, Apple Notes, and Calendar to the agent. It indexes everything and answers natural-language questions over your real client history. No vendor in the middle, no monthly subscription, your data stays on your machine.

The stack

Hermes Agent or OpenClaw + MCP servers (iMessage / Notes / Calendar) + a Mac mini M-series with 16GB unified memory (or your existing laptop).

Repos to study or fork

  • modelcontextprotocol/servers

    Anthropic's official MCP server reference repo. Filesystem, fetch, Postgres, SQLite, Brave Search all included. Clone this first to understand how MCP works before wiring iMessage / Notes / Calendar.

  • steipete/openclaw

    OpenClaw daemon - the easiest local agent runtime to set up. Search GitHub for the latest; the README plus the example skills folder will get you started.

  • mcp-server-imessage

    Community-maintained iMessage MCP servers. Search GitHub for this and pick one updated within the last 30 days. Same approach for mcp-server-apple-notes.

How this adds value

For you
No more "wait, what did they say last month?" The answer is one prompt away. 10-15 minutes saved per client interaction, multiplied across your book.
For your business
Clients feel seen and remembered, which is what they pay you for. Referral rates lift because you're the agent who remembers everything - names, deal breakers, school preferences, the spouse's job change.
For your clients
They get the experience of working with someone who actually paid attention. Their kid's name, the contractor estimate they mentioned, the price ceiling they walked back from. Recalled accurately, every time.

The caveat

Privacy. Your client data lives on your machine, not in the cloud. Encrypt the drive. Don't sync the agent's memory to iCloud. If you ever sell the Mac mini, wipe it like it's full of client contracts - because effectively it is.

02 · The build

Telegram bot that triages inbound leads and drafts your first reply

Lead webhook in, Telegram message out with one-tap actions. Tap a button, get a 30-second voicemail script in your voice ready to record.

What you build

Your CRM or website lead form fires a webhook into a Cloudflare Worker (or any cheap host). The Worker sends you a Telegram message with the lead's details and inline buttons: DRAFT VOICEMAIL / SCHEDULE TOMORROW / NOT NOW. Tap a button and the bot generates exactly what you need - the voicemail script uses your past client data and your voice from prior conversations, so it doesn't read like a chatbot.

The stack

Cloudflare Worker (or any webhook host - Vercel, Railway, a VPS) + python-telegram-bot or aiogram + Claude API + your existing CRM webhook output.

Repos to study or fork

  • python-telegram-bot/python-telegram-bot

    The canonical Python Telegram bot library. Inline keyboards (the APPROVE / SKIP button pattern we use in our own content-engine) are documented under InlineKeyboardMarkup. Look at the examples folder first.

  • aiogram/aiogram

    Async alternative if you want better performance or prefer async/await syntax. Same functionality, different ergonomics.

  • anthropics/anthropic-sdk-python

    Official Anthropic SDK for calling Claude. The README has the simplest possible example - send a prompt, get a response. Build the voicemail-draft prompt around that.

How this adds value

For you
90 seconds per lead intake. First reply in under 5 minutes instead of 'I'll call them back tonight' that turns into next week. Decision fatigue drops because the bot already did the cognitive work.
For your business
Speed-to-lead is the killer conversion metric. The 5-minute response window is cited everywhere because it actually works. Leads that get a human voice within 5 minutes convert at multiples of leads that get 'I'll get back to you.'
For your clients
They get a real, voice-recorded response in minutes - not a chatbot, not silence. Their first impression of you is responsiveness, which sets the entire relationship.

The caveat

Your voice has to be in the prompt. Feed it 5-10 examples of your actual past first-replies to leads. Without them, the bot writes generic and the lead can smell it before they listen to the second sentence.

03 · The build

Daily commitment scanner across iMessage, Slack, and email

Bot scans the last seven days for promises you made. Bubbles them to a 7am Telegram so nothing slips.

What you build

A cron-triggered script that reviews the last 7 days of your iMessage, Slack, and email. It uses Claude to identify "promises you made" - callbacks, comp requests, property tours, follow-ups - and sends a morning Telegram each day with the list. "You owed the Smiths a callback by Thursday, the Johnsons a price comp by tomorrow, the Wilsons a property tour proposal..." The bot remembers when you forget.

The stack

Claude Code skill OR a small Python script + iMessage MCP + Slack bot or bolt-python + Gmail IMAP or Gmail MCP + a cron job on your Mac or a VPS + Telegram bot for delivery.

Repos to study or fork

  • modelcontextprotocol/servers

    Has filesystem and Gmail integration patterns. The Gmail MCP server in particular is what you wire up for the email side of this. Read the auth patterns carefully - OAuth setup is the longest part.

  • slackapi/bolt-python

    Slack's official Python framework. You won't post anything - you're just reading your own DMs and channels for commitments. The Bolt examples cover read-only usage cleanly.

  • anthropics/anthropic-cookbook

    The 'extracting structured data' patterns are exactly what you want here. The prompt that distinguishes 'a real commitment' from 'chat noise' lives in this style.

How this adds value

For you
Never drop a promise. The bot remembers when you forget, which is genuinely most of the time once your book gets past 30 active clients.
For your business
Trust compounds when you always do what you said you'd do. The agents who win on referrals are the ones who never let a commitment slip - this is the tool that lets you scale that without scaling your memory.
For your clients
They get the response when you said they'd get it. Not 'next week,' not 'remind me again,' not silence. The single most uncommon trait in real estate is reliability. This is how you ship it.

The caveat

Distinguishing real commitments from chat noise needs prompt-engineering iteration. Expect 2-3 weeks of tuning before false positives drop to acceptable. Start by labeling 50 examples by hand - what counts as a commitment, what doesn't - and feed them into the prompt as few-shot examples.

04 · The build

Auto-CMA from a text message

Text "CMA for 123 Main St Orlando" to your bot. PDF back in 90 seconds.

What you build

Telegram bot that takes an address as input, pulls public listing data (Zillow, Redfin, Realtor.com - whichever doesn't block your scraper), fetches 5 comparable properties, runs your custom analysis prompt over them, and drops back a formatted PDF in 90 seconds. Built once, used forever, no Saleswise subscription.

The stack

Telegram bot (python-telegram-bot) + a scraper (Playwright or crawl4ai for the harder sites) + Claude API for the analysis + ReportLab or pdfkit for PDF generation + a cheap VPS or cloud function.

Repos to study or fork

  • unclecode/crawl4ai

    AI-friendly web crawler. Handles JavaScript-rendered pages (Zillow) better than plain BeautifulSoup. The output is already structured for LLM consumption, which saves you a parsing step.

  • microsoft/playwright-python

    If crawl4ai isn't enough, drop down to raw Playwright. Slower to write, but bulletproof for sites that aggressively block scrapers.

  • reportlab

    The Python PDF generation library most CMA tools end up using. Search GitHub for examples - the docs are dense but the patterns are well-documented.

How this adds value

For you
90 seconds vs 2 hours per CMA. "Do you have comps for this?" no longer eats your afternoon. Listing appointments stop being gated on prep time.
For your business
Faster turnaround wins listing appointments. The seller who's interviewing three agents picks the one who shows up with comps ready, not the one who says "I'll send you something this weekend."
For your clients
Get a real CMA when they ask, not a delay. The trust signal of "I can pull this in 90 seconds" is real - it tells them you're operating at a different level than other agents.

The caveat

Scrapers break when Zillow or Redfin change their HTML. Budget 1-2 hours per month for maintenance. If you outgrow scraping (volume or fragility), graduate to a paid data API - RentCast, HomeJunction, or Realtors Property Resource (if you have access via your MLS).

05 · The build

Listing-prep skill in Claude Code with your voice baked in

One command - claude prep 1234 Magnolia Way - pulls comps, drafts the MLS description in your voice, pre-fills the listing presentation deck, queues the social content.

What you build

A custom Claude Code skill that lives in ~/.claude/skills/listing-prep/ (or a private GitHub repo you load as a plugin). It encapsulates your entire listing-prep workflow: fetch comps, draft an MLS description in your voice using 5-10 of your past best listings as examples, generate the social content set, pre-fill the presentation deck. One command, hours of work done in minutes - in your voice, not a generic template.

The stack

Claude Code (the CLI tool) + a custom skill repo on GitHub + your past listings as voice examples (committed as MDX or plain text in the skill's references/ folder).

Repos to study or fork

  • anthropics/anthropic-cookbook

    Has skill patterns and Claude API examples. Read the 'tool use' and 'extended thinking' sections - they're the building blocks of any skill that does more than a single prompt.

  • mvanhorn/last30days-skill

    The skill we use to mine signals for our own blog (search GitHub for the latest version). It's a working example of a non-trivial Claude Code skill - read the SKILL.md and the scripts/ folder to see how a real skill is structured.

  • your-name/listing-prep

    This is the one you create. Your repo, your voice examples, your team's prompts, versioned in git. Share read access with your team so everyone on your brokerage runs the same workflow.

How this adds value

For you
Hours of repetitive prep collapse into minutes. Cognitive load on routine listings drops to zero, which frees attention for the parts that actually matter - the seller conversation, the strategy call, the staging walkthrough.
For your business
More listing appointments per week because prep is no longer the bottleneck. Your team can run the same skill - which means your operating standard is consistent across every agent in your office.
For your clients
Their listing presentation feels more polished because you put energy into the parts AI can't do (the local-market storytelling, the pricing strategy nuance). The mechanical work was already done.

The caveat

The voice examples ARE the skill. Without 5-10 of YOUR actual past listings in the prompt, the output reads identical to every other agent using the same shape of skill. Maintain a 'voice examples' file religiously - add new ones, retire stale ones, version it in git.

06 · The build

Local AI on a Mac mini repurposing your own footage

Drop a Loom recording into a watched folder. Out the other side: transcript, three vertical cuts, IG Reel script, LinkedIn post, email pitch. No subscription, no FlexClip.

What you build

A Mac mini in your office running a local agent runtime, ffmpeg, and Whisper. A watched folder script triggers on new video files. The agent transcribes the audio (Whisper), generates a Reel script and social copy (Claude or local LLM), and uses ffmpeg to cut three vertical clips with auto-captions. All local, no SaaS, no monthly fee, your raw footage never leaves your office.

The stack

Mac mini (M-series, 16GB+) + OpenClaw or any local agent runtime + ffmpeg + openai/whisper or m-bain/whisperX + a folder-watching script (Python watchdog or fswatch).

Repos to study or fork

  • openai/whisper

    OpenAI's open transcription model. Runs locally on a Mac, no API calls. The 'large-v3' model is what you want for accuracy; the 'medium' model is the speed-quality sweet spot.

  • m-bain/whisperX

    Faster Whisper with proper timestamps and speaker diarization. If you're cutting clips programmatically, the precise timestamps from whisperX are what you'll align ffmpeg cuts against.

  • FFmpeg/FFmpeg

    The command-line tool that does the actual video cutting and captioning. You won't read this source - you'll learn 8-10 specific ffmpeg invocations and copy-paste them forever. Lots of cookbook examples online.

How this adds value

For you
11 hours per week saved on manual editing. The same number FlexClip cites in their marketing - except you keep the workflow, the data, and the savings.
For your business
More content shipped per listing equals more impressions equals more inbound. Three vertical cuts plus a LinkedIn post per listing instead of one polished hero piece. The math compounds across your book.
For your clients
Their listing's video gets cut into 5-7 pieces of social content instead of one polished hero piece. More eyeballs per dollar they spent on media. Their listing moves faster because more buyers see it.

The caveat

Whisper hallucinates on quiet audio. Always review transcripts before publishing - it loves to invent words during silences. Also, your output is only as good as your input - a shaky iPhone walkthrough won't become a polished Reel just because AI touched it.

What we tried that didn't work

Or what to watch out for.

The builds above ship. These don't, or carry enough risk that we won't run them on a real client.

  • Skipping the voice examples in your custom skill or prompt

    Every build above leans on this rule: if you don't feed AI 5-10 examples of YOUR voice (past listings, past replies, past CMAs), the output reads identical to every other agent using the same shape of tool. The voice examples are the skill. Without them you're just running a generic API.

  • Building an agent that has access to client data with no off-button

    Every local agent needs a kill switch. A clear way to pause indexing, revoke MCP access, or shut down the daemon. Build it on day one - not after a privacy incident. Same applies to API keys: rotate quarterly, scope minimally, never commit to git.

  • AI-generated property photos or fake staging

    Legal and ethical issue, not a workflow choice. NAR rules require accurate representation; sellers can be liable for misrepresentation. AI editing has a place (sky replacement, lawn cleanup) but stops well short of inventing rooms or staging that isn't there.

  • Auto-posting AI content without human review

    Every build above ends with you in the loop. One invented feature on Facebook is a credibility loss that takes months to repair. The voicemail draft, the Reel script, the CMA summary - all of it gets human eyes before it ships. The agent does the work; you do the approval.

  • Treating these as set-it-and-forget-it

    Every build needs maintenance. Scrapers break when target sites update. MCP servers go stale when APIs change. Prompts drift as models update. Budget 1-2 hours per month per build for upkeep. Skip that and the systems decay into shipping bad output silently.

How this list gets made

Builders, not buyers.

Each entry has to pass three checks. First, we've either built it in our own ASM workflow or seen working agents document their build publicly with code or architecture details. SaaS reviews don't count. Second, every repo we cite is real and active. When the right repo is community-maintained with multiple competing forks, we say so and tell you what to search for. Third, the caveat is mandatory. No build ships without one.

The signal mining is ours - we run the same last-30-days research pipeline we use for our neighborhood field notes, scoped to the ai-for-agents cluster (Claude Code workflows, Hermes / OpenClaw / MCP, Telegram and Slack bots, local AI). The queries explicitly refuse SEO listicles and SaaS-comparison content. Synthesis is hand-written; nothing on this page is auto-posted.

Newsletter

Get this in your inbox.

The For Agents Brief covers what real estate agents are actually building with AI, alongside listing marketing playbooks. 600 words every Thursday.

No spam. Unsubscribe in one click. We only ever email you what we'd want to read ourselves.