Spreadsheets, county data dumps, and missed next of kin.
- ×Multiple contacts per case (primary next of kin + extended relatives) tracked across separate spreadsheets
- ×Large, inconsistent county data sets ingested by hand — slow, error-prone, easy to miss records
- ×Communication history scattered across phones, inboxes and team Slack threads
- ×Voice and SMS via third-party diallers — every call required CSV imports and exports re-keyed each cycle
- ×Staff tasks & follow-ups slipped — recovery opportunities lost to slower competitors
Recovery is a race — and the data was the bottleneck.
Simply Refund recovers unclaimed funds tied to deceased estate properties — work that requires finding the right next of kin (and often their extended family), making contact across multiple channels, and moving fast enough to recover funds before the trail goes cold or another firm gets there first.
Adam’s team had the playbook. What they didn’t have was a system that matched the playbook’s pace. County data sets came in as inconsistent CSV dumps — different schemas, different field names, dirty deduplication. Each property had a tree of contacts. Each contact had a history of calls, voicemails and SMS. Every step of that lived in a different tool.
The bottleneck wasn’t the work. It was the seams between the work.
A CRM with dual pipelines and a workspace behind every card.
We built two pipelines the team lives in — a Sales Kanban for the lead-to-engagement journey, and a Fulfillment Kanban for engagement-to-payout. Both with clear ownership, stage ownership, due dates, and a single screen that shows where every case sits in either flow.
Click a card and you’re in the case workspace: the property, every linked contact (primary next of kin and extended family, with relationships modelled), every interaction across Twilio voice and SMS, every uploaded document, every internal note. One record, complete history. The “where did we leave this?” problem disappears.
The whole thing runs on React 18 + TypeScript + Vite with shadcn/ui and Tailwind on the front end, Supabase (PostgreSQL, Auth, Storage, Realtime) on the back end, and row-level security on every table. Realtime keeps every staff member’s pipeline view in sync without refreshes.
Bulk data in. Twilio call centre out. No CSV ping-pong.
County data ingestion runs through a bulk CSV import flow with field mapping, fuzzy-match dedupe against existing leads, and a preview-before-confirm step — hundreds of new leads loaded in seconds, mapped to property + contact records, ready for outreach.
The call centre is native — not a third-party bolt-on. We shipped a dedicated Node server (simply-refund-server) that brokers Twilio tokens, runs call blast campaigns, and handles inbound webhooks. Every call and SMS is logged automatically against the right case the moment it happens. No copy-paste, no “did anyone get back to them?” — every conversation is a row on the case timeline.
Bulk export to third-party platforms (skip-tracing services, alternate diallers, mailing-house tools) is one click. Round-trips that used to take half a day take a few seconds — and the staff time saved goes back into the work that actually moves recovery forward.
The numbers, after six months.
Recovery is a race. The platform turned what used to be days of stitching county data, contact trees and call history into something that just runs. We’re finding next of kin faster, and we’re not leaving money on the table any more.
