A Los Angeles law firm was running its whole intake on tools that never talked to each other.

ClientMulti-office law firm, Los Angeles
StackLaravel, Vue.js, Twilio, OnSIP, AWS, Pusher
RoleArchitecture, build and ongoing development
500 concurrent users
20+ background jobs at once
1+ year in production, still expanding

The problem

The firm handles heavy call volume and books appointments across several offices. Calls, recordings, calendars and client files lived in separate tools, so things fell through the cracks between them.

Law firm intake platform Callers Twilio Intake platform 500 users · 20+ background jobs OnSIP → AWS Recordings Google Calendar · Outlook Two-way calendar sync Pusher Live updates to agents

What I built

Call handling. Agents take calls through Twilio, and every call is logged as it happens.

Recordings managers can review. OnSIP pulls the recordings and stores them on AWS for quality checks and training.

Two-way calendar sync. Appointments booked from the platform land in Google Calendar and Outlook, and changes come back.

From call center to CRM. Client files, multi-location scheduling and real-time updates through Pusher, in one place.

Intake spread across tools that never talk? Start with a communication audit → Next case AI voice calls into the UAE, wired into an app already live. →