6,000+
Property case studies generated
Built the AI capabilities behind KeyStory, turning a sold MLS listing into a written property case study, brand-matched design, and platform-ready social posts, with an in-app copilot that reads the live web.
Property case studies generated
Brokerages actively generating
Median time from MLS listing to publish-ready case study
Client: Testimonial Tree, Inc.
Industry: Real estate technology
Company size: Small
Product: Claude Sonnet 4.6
Location: Florida, United States
Testimonial Tree builds reputation and marketing software for residential real estate agents, teams, and brokerages. Its KeyStory product turns closed deals and client reviews into ready-to-publish marketing, including property case studies, social posts, and embeddable review widgets.

A real estate agent's strongest marketing assets are the homes they have sold and the clients behind those sales. For Testimonial Tree, the challenge was that turning those assets into marketing demanded more time and design skill than most agents could spare.
Each case study meant pulling listing facts from the MLS, sourcing local market statistics, choosing photos, and writing several hundred words of copy styled to the agent's brand. Given that effort, most agents never wrote one, and their sales stayed as raw MLS records and one-line testimonials that did little to win new clients.
Facebook favors a short teaser with one hero image, Instagram an energetic carousel with dense hashtags, and LinkedIn a professional, data-led tone. Agents rewrote every post for each network and also had to judge which photos would perform and where overlay text could sit without hiding key features of the home, which turned a routine post into design work.
Users needed guidance on the platform as well as help with live web content, such as summarizing a listing page or reviewing a brokerage's website. A conventional chatbot could only handle the first, which sent users to a search engine mid-task. Adding web access the usual way meant building and running crawling and scraping infrastructure alongside the product.
Simform built KeyStory’s AI capabilities on Claude Sonnet 4.6 and integrated it server-side through Anthropic’s Python SDK. One model writes the copy, reads the photos, extracts the branding, and powers the in-app assistant. A shared layer beneath all four handles the guardrails, keeps each tenant’s data separate, and tracks cost per call. Because Claude reads the listing’s actual photos alongside its facts, the writing describes the specific home that sold.
When a real estate agent selects a sold listing, KeyStory pulls its details from the platform’s own database and calls the MLS API only as a fallback, fetching photos, market statistics, and community data in parallel.
Claude receives these facts, plus up to six property photos, in one call and writes each section in the agent’s first-person voice. A companion call reads the agent’s website or logo and extracts brand colors and typography, so the page matches their identity.
Both prompts carry the listing’s exact values, such as address, square footage, and year built, and prohibit placeholders like “N/A”, so a published page never shows a figure the listing does not support.
If a response isn’t valid JSON, the service retries once with corrective instructions. Each job runs in the background with a trace ID the app uses to check progress, and every read and write stays inside that tenant’s own section of the database.
A central registry holds each network’s voice, slide limits, and hashtag rules. Claude uses it to generate the caption, hashtags, and slide plan for Facebook, Instagram, and LinkedIn in one call, and agents can regenerate a single caption or slide on its own.
In a separate vision call at zero temperature, Claude scores each listing photo, labels what it shows, and marks where overlay text can sit, producing the same ranking on every run.
When a message contains a URL, the copilot routes it to Anthropic’s server-side web search and web fetch tools, which run inside the same API call. Search stays within the domains the user referenced, and each tool is capped at three uses per message.
If the web path fails, the copilot answers through its standard path instead. Out-of-scope questions, such as financial or legal advice, get a scripted reply that points the user to a KeyStory capability.
With the Claude-powered capabilities live across more than 100 tenant organizations, a closed deal now becomes a case study, platform-ready social posts, and brand-matched widgets, without the manual work that kept most agents from starting.
A multi-section case study, grounded in the listing's exact figures and its actual photos, now takes a median of under 40 seconds to generate. Agents have produced more than 6,000 of them, with 99.9% completing successfully, and every price, square footage, and year built comes straight from the listing record.
Agents get a caption, hashtags, and a slide plan for Facebook, Instagram, and LinkedIn in one step, each written the way that network rewards, with the strongest photos already chosen and the space for overlay text already marked. If a caption or a single slide misses, it can be redone on its own.
When a question points to a web page, the copilot reads that page and answers from what it finds, so users stay inside KeyStory instead of breaking off to search. Testimonial Tree gained that capability without building or running its own crawler.
Hiren Dhaduk
Creating a tech product roadmap and building scalable apps for your organization.
We do not collect any information about users, except for the information contained in cookies. We store cookies on your device, including mobile device, as per your preferences set on our cookie consent manager. Cookies are used to make the website work as intended and to provide a more personalized web experience. By selecting ‘Required cookies only’, you are requesting Simform not to sell or share your personal information. However, you can choose to reject certain types of cookies, which may impact your experience of the website and the personalized experience we are able to offer. We use cookies to analyze the website traffic and differentiate between bots and real humans. We also disclose information about your use of our site with our social media, advertising and analytics partners. Additional details are available in our Privacy Policy.
These cookies are necessary for the website to function and cannot be turned off.
Under the California Consumer Privacy Act, you may choose to opt-out of the optional cookies. These optional cookies include analytics cookies, performance and functionality cookies, and targeting cookies.
Analytics cookies help us understand the traffic source and user behavior, for example the pages they visit, how long they stay on a specific page, etc.
Performance cookies collect information about how our website performs, for example,page responsiveness, loading times, and any technical issues encountered so that we can optimize the speed and performance of our website.
Targeting cookies enable us to build a profile of your interests and show you personalized ads. If you opt out, we will share your personal information to any third parties.