Raul Gumerov

Case studies · 2019 – 2026

Projects

Four implementations, told the way I work them: the workflow as I found it, the decisions I made, the stack, and what changed for the people using it. Every figure below was measured before and after, not estimated.

01

Clinical practice-management system

Moi Stomatolog Dental Clinic, Ufa — implementation lead & builder

2019 – Present

FastAPIReactPostgreSQLDockerSQL reporting

The workflow as I found it

Three commercial tools split one clinic: scheduling lived in one, billing and insurance in another, clinical records in a third. Staff re-entered the same patient three times, nobody trusted the numbers, and month-end reporting was assembled by hand. I was working in that clinic as an oral surgeon at the time, so the friction was mine as well as theirs.

What I did

  • Ran workflow discovery with front desk, clinicians and the owner across scheduling, billing, insurance and records, then wrote the requirements as testable statements rather than wishes.
  • Designed the data model around the patient record so scheduling, treatment and payment reference one source of truth.
  • Built the system — FastAPI service, React front end, PostgreSQL, Docker deployment — and the SQL reporting layer on top of it.
  • Migrated seven years of history — 27,700+ patient visits and ~6,900 patient records — with an idempotent, self-healing backfill that completes in minutes and can be re-run without creating duplicates.
  • Trained staff on the floor and ran the cutover in stages so the clinic never stopped seeing patients, then owned data quality, integrity and role-based access after go-live.

Before / after

Before3 systems
Scheduling tool — patient entered
Billing / insurance tool — entered again
Records tool — entered a third time
Month-end report — assembled by hand
After1 system
One patient record — entered once
Scheduling, treatment, payment reference it
Insurance handled in the same flow
Reporting runs from SQL, on demand

3 1

commercial tools replaced

27,700+

visits migrated, zero duplicates

SQL

reporting instead of manual assembly

02

Self-service invoice platform

AdAuto, Toronto — contract

2024 – Jul 2026

Reactn8nPostgreSQLMicrosoft GraphExcel Online

The workflow as I found it

Every pay cycle the owner assembled contractor invoices by hand: chase the numbers, reconcile them against a spreadsheet, retype the totals, send. Three to four hours of the one person's time the business could least afford to spend that way — and the mistakes surfaced days later at the accounting end, with no record of who changed what.

What I did

  • Sat with sales and ops to map the real process, including the undocumented steps people had invented to cope, and agreed which of them were rules and which were habits.
  • Turned it around: instead of the owner collecting numbers, 10+ contractors submit their own through a React portal that validates as they type.
  • Built the pipeline in n8n — ingest, validate, reconcile against PostgreSQL, then write back through the Microsoft Graph API into the Excel Online workbook finance already worked in, rather than forcing a new tool on them.
  • Left the owner one job: approve the cycle and handle the exceptions the validation rules flag.
  • Went from requirements to production in four days, running the first cycles in parallel with the manual process until the numbers matched.

Before / after

Before3–4 h / cycle
Owner chases every contractor
Reconcile against a spreadsheet
Retype totals into the invoice
Errors found later, downstream
After~15 min / cycle
Contractors submit their own
Validation runs at entry
Reconciliation against the database
Owner approves, handles exceptions only

3–4 h 15 min

of the owner's time per pay cycle

~85%

of the admin time removed

4 days

requirements to production

03

Vehicle intake & AI compliance pipeline

AdAuto, Toronto — contract

2025 – Jul 2026

ReactPostgreSQLAsana APIClaude vision APIMTO compliance

The workflow as I found it

Registering a vehicle took about fifteen minutes of copying details between a form, a spreadsheet and a task tool. Ownership was the real problem, not the typing: once a vehicle was in the sheet, whether anyone was working on it depended on someone remembering to create the task. Downstream sat the worse job — reading PDF invoices and bills of sale and retyping them into the province's compliance format, six to eight hours every month.

What I did

  • Reduced intake to a single validated form — one entry point, typed fields, no free text where a list would do.
  • Wired it into Asana so submitting the form creates the task with the right project, assignee and due date, and status changes flow back to the record.
  • Built a document-extraction pipeline on the Anthropic Claude vision API that reads PDF invoices and bills of sale and emits them in Ministry of Transportation Ontario compliance format, with the extracted fields surfaced for review before anything is filed.
  • Tuned the prompt and model tier against real documents until the whole thing ran at two to five dollars a month — the kind of cost that survives a budget review.
  • Shipped the compliance module and handed it over with the rest of the systems when the contract completed.

Before / after

Beforemanual, twice over
~15 min to register a vehicle
Task created by hand — or forgotten
10–15 min per compliance entry
6–8 h of filing every month
Afterone record, read once
~3 min to register a vehicle
Asana task created automatically
2–3 min per compliance entry
~1.5 h of filing every month

15 3

minutes per registration

6–8 h 1.5 h

monthly compliance reporting

$2–5

per month in model cost

04

CRM & scheduling rollout

Moi Stomatolog Dental Clinic, Ufa — amoCRM & YCLIENTS implementation

2019 – 2023

amoCRMYCLIENTSTelephony integrationData migration

The workflow as I found it

Enquiries arrived by phone and messengers and were handled from memory. A missed call was a lost patient with no trace, and nobody could say which channel actually filled the chairs. This was the first implementation I led — configuration, not code — and the one that taught me adoption is the deliverable.

What I did

  • Configured amoCRM around the clinic's real enquiry-to-booking path, with stages the front desk could recognise from their own day rather than a generic sales funnel.
  • Set up YCLIENTS for scheduling and connected telephony, so calls land as records automatically and nothing depends on someone remembering.
  • Migrated the existing patient and enquiry data, deduplicated it, and reconciled the result before switching the team over.
  • Trained staff, wrote the short version of the process they would actually read, and stayed on the floor through the first weeks to fix what the training missed.

Before / after

Beforeno trace
Enquiries by phone and messengers
Follow-up from memory
Missed calls disappear
No idea which channel works
Aftertracked end to end
Every channel lands in one pipeline
Calls logged automatically
Booking sits in the scheduler
Enquiry → booking is measurable

2

platforms configured and integrated

1

pipeline for every enquiry channel

5+ yrs

still in daily use after handover

Get in touch

Happy to walk through any of these in detail.

© 2026 Raul GumerovFigures are from delivered work, measured before and after.