The problem
People who work in road-accident claims (claims firms, law firms, forensic doctors, loss adjusters) follow each case across many tools: documents in shared folders, email and PEC (certified email), deadlines in a calendar, damage calculations in separate spreadsheets, invoices in another system. Every hand-off between tools costs time and means retyping the same data.
UnigestPro brings all the work around a case into one place: cases, documents, communications, calendar, collaboration with outside parties, damage assessments and finances. Everyone involved, from the loss adjuster to the client, gets the access and permissions the firm decides.
Context and team
UnigestPro is a product of the company I work for, and I’m its Head of Product. We rebuilt the new UnigestPro as a team, and we keep growing it. The work covers the product and also the shared foundations that Vidimo and Recapito now rest on, where I’m Head of Product too: design system, file handling, security rules, error monitoring.
My contribution
- Product direction: what to build, in what order, and how each feature fits the firm’s real work.
- Application architecture: a React frontend organised by feature, a Laravel backend organised by domain (cases, contacts, documents, compensation, calendar, messaging, invoicing).
- The Node.js service for real time (chat, notifications, presence) and for asynchronous queued jobs.
- The Case from documents flow with AI reading.
- The shared file standard and the worker that generates previews and metadata, now also used by Vidimo and Recapito.
- The error audit system and the common password rule.
Design choices
A case that starts from documents
The firm drops in the accident documents it already has: joint accident reports, ID documents, vehicle registrations, medical certificates, police reports, witness statements. A Claude model on AWS Bedrock reads them and proposes the case data (parties, vehicles, date, place, injuries, how it happened), each value next to the document it came from.
The rule is simple: nothing gets made up here. Every value carries the page and the text it was read from, along with a confidence level; uncertain fields are flagged. The firm corrects, completes and confirms: without confirmation, no case is created. Reading uses a European inference profile, so the data stays in the EU.
Evidence, in order
The Evidence summary (Compendio probatorio) reads and orders the evidence of a claim (police reports, joint reports, witness statements, photos, expert reports, insurer replies received by email and PEC) and proposes a draft report on liability. Every argument links to the document and page it comes from; contradictions, unreadable parts and missing signatures are flagged. Here too, the professional checks and decides.
The backend doesn’t trust the browser
Files go straight from the browser to S3 via a signed URL, but the server decides the path. When the file arrives, a worker generates previews and metadata in a separate storage area and notifies the application with a signed call. AI reading starts only once the file is confirmed and the previews are ready.
The system suggests the next status, the user decides
Each firm configures its own status workflows. The platform reads the signals in the case and suggests the next step, but it never changes a status on its own.
Errors that don’t stay invisible
Errors go to GlitchTip, hosted on our own servers so that claimants’ data doesn’t leave our perimeter. A dispatcher groups reports and routes them by severity. A real error that stayed hidden inside a catch led to a rule: every caught exception must still be reported.
Outcome and status
The new UnigestPro covers the full lifecycle of a case, from opening it to managing its finances. E-invoicing is handled by Vidimo, which UnigestPro uses as an integrated partner; WhatsApp messaging comes from Recapito, integrated as a service. The shared foundations built here have become the standard for the other products.
Features, solutions and demos are on unigestpro.com (in Italian).