← back to work
work
client work · at multiskills it

AI real estate platform.

A full ecosystem for a real estate client: public website with dynamic listings, internal CRM for the sales team, WhatsApp automation to upload and update listings from the team's phones, and a voice agent for inbound enquiries. One system replaced three spreadsheets, a group chat, and a call log.

  • roleLead builder on the platform side. Worked alongside the voice agent workstream (see separate writeup) so the two surfaces shared the same data layer.
  • clientReal estate client of Multiskills IT. Client name withheld.
  • datesaug 2025 → present
  • statuslive, maintaining

the problem

The client was running their real estate business across three spreadsheets, a group chat, and a call log. Listings were maintained in one place, marketed in another, and tracked in a third, with no reliable way to keep them in sync. Website listings went stale because the sales team updated the team chat first and forgot to touch the CMS afterwards. Enquiries landed across WhatsApp, voice, and the website without a shared view of which lead came from where. The system had to meet the team where they already worked, not force them onto a new tool.

the approach

Built the core platform on Replit for development and hosting, with Supabase (PostgreSQL with row-level security) as the shared source of truth. The public-facing website pulls listings dynamically from Supabase so new listings appear the moment they enter the system. The internal CRM sits on the same database, giving the sales team a live view of leads, assignments, and communication history without round-tripping through anyone's personal channel.

The WhatsApp automation layer is what made the system get adopted. The sales team already lived in WhatsApp, nobody was going to open a separate CMS to upload a listing. Built an n8n-orchestrated WhatsApp Cloud API integration so a team member could add a new listing by sending the photos and details straight to a business number. The automation parses the message, structures the listing, pushes it to Supabase, and the public website picks it up within minutes. Same surface handles updates, status changes, and pulls.

Wired to work in unison with the Retell AI voice agent that handles inbound qualification and booking (see separate writeup). The voice agent reads the same Supabase listings the website reads, so a caller asking about a property gets the current state, not yesterday's version. Enquiries captured by voice land in the same CRM the sales team uses for WhatsApp leads: one inbox, multiple channels upstream.

the outcome

One system replaced three spreadsheets, a group chat, and a call log. Listings flow from a WhatsApp message to the live public site in minutes, no CMS touching required. Voice-captured enquiries and web-form submissions land in the same CRM view as manually-entered leads. The sales team stayed on WhatsApp, which is what made the whole thing work.

the lessons

The hardest engineering was not the CRM or the listings pipeline; it was the WhatsApp integration. Meeting the team on the channel they already lived on decided whether the platform would be used or quietly abandoned. If the sales team had been forced onto a new tool for uploads, the CRM would have sat empty no matter how well the backend was built.

stack

  • Replit ·
  • Supabase (PostgreSQL) ·
  • WhatsApp Cloud API ·
  • n8n ·
  • Retell AI (voice agent surface)

screenshots

coming soon