Case study

Scheduling OS for union dock workers. Every Canadian port.

Agencies log in, claim shifts, union hours calculate themselves. No one emails a PDF roster at 11pm anymore.

12k+
Monthly shifts scheduled
14mo
In production without a Saturday call
6
Ports on one system

Before

Shift assignment ran on paper rosters, regional spreadsheets, and phone trees. Union hour rules lived in one person's head. Agencies called the office; the office called someone else.

After

A single scheduling OS: agencies authenticate, view open shifts, claim within union rules, and see hours accrue automatically. Ops leads approve exceptions from one dashboard.

Architecture

  • SvelteKit admin for port coordinators
  • Cloudflare Workers for assignment logic and union calculations
  • Postgres for audit trail (who claimed what, when)
  • Email notifications on claim and approval events

Results

Over twelve thousand shifts per month flow through the system. Fourteen months in production. Median uptime above 99.9%.

What we'd do differently

We'd push mobile-friendly agency views earlier — many coordinators work from tablets on the floor, not desktops in the office.

"We hired five different agencies before thind. They built decks. Thind built the thing."

— Operations Director, Maersk Canada
SvelteKitCloudflarePostgres

Want something similar?

Start with a teardown — we'll map your spreadsheet.

Book a teardown →