The brief
A scaled telemarketing operation needed to retire a sprawl of spreadsheets and ad-hoc tools and replace them with one CRM that three different roles — Admin, Floor Employee, and Senior Advisor — could each use without stepping on each other's work.
Speed mattered. Lead lists were arriving in 5–10K row XLSX dumps and the floor expected those to be assignable within seconds, not minutes.
What I built
A Next.js 16 + Prisma + MongoDB application built around a strict three-role hierarchy: Admin owns ingestion and personnel, Employees run outbound, Advisors close escalated leads.
Edge-Routed security model: JWT verification lives in Next.js middleware, so React Server Components don't carry auth weight. All admin mutations re-verify on the route handler.
Performance engine: bulk inserts via `createMany` + unique-phone dedup, 1-second debounced autosave on every detail field, and a 30-second poll loop that keeps every operator's view in sync without manual refresh.
Outcome
Floor handles thousands of active leads daily without lag. Admins can dump 1K+ leads in a single drop and assign them in seconds. Advisors get a focused 'closer' workspace with their own queue.
Live deployment is private (confidential client). Happy to walk through the code, schema, or screen-record the live admin tour for serious enquiries.