Shifts, Timesheets and Compliance for a Nova Scotia Staffing Agency
Designed and built a clickable booking and timesheet platform for a Halifax agency that places temporary RNs, LPNs and CCAs in care homes: fill shifts only with workers who are compliant and eligible, turn approved hours into separate pay lines and charge lines, and stop booking when a licence or check expires.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, bookings board and table with a New booking form, booking detail with ranked candidates, the timesheets queue with its detail view and the compliance queue with a document viewer.
Each shift is split at the 19:00 evening and 23:00 to 07:00 night windows and on weekends, then priced from pay rules v7 and the client's own rate card. An LPN night hour at Saltmarsh Manor pays $38.00 and charges $53.25.
Grade, skills, compliance valid on the shift date, the client's do-not-return list, overlap and the 10 h rest gap, hours against the 48 h weekly threshold and travel distance. Ineligible workers show the reason.
24 workers, 12 client care homes across 13 sites, 14 timesheets, 18 compliance documents and checks, 6 staff users and 3 open disputes.
Wyndcliffe ran on phone calls, a group text for open shifts, paper timesheets and two spreadsheets, one for pay and one for billing. Workers texted photos of signed timesheets days late, coordinators re-keyed hours twice and worked out pay and charge rates by hand, a worker was twice sent to a home with a lapsed CPR certificate, and nobody could say which clients or grades actually made money.
Fogbell follows a shift from the care home's request to pay and invoicing. Coordinators fill it from a ranked list of eligible workers, the worker clocks in and out with breaks, a supervisor approves the hours, and the approved hours become pay lines for the worker and charge lines for the client, each from its own rules.
Every shift touches a worker's licence and checks, a client's rate card, Wyndcliffe's pay policy and Nova Scotia labour standards, and the same hours have to be right on both the pay side and the billing side.
RNs and LPNs need an active NSNMR licence, CCAs need certification and a place on the provincial CCA Registry, and care homes expect a vulnerable sector check. A worker must not be offered any shift that starts after a required document expires, and that has to hold on the server, not only on screen.
What the worker is paid comes from Wyndcliffe's pay policy and the Labour Standards Code minimums; what the client is charged comes from each client's signed rate card. A night shift carries a different uplift on each side, and both were worked out by hand from a rate sheet.
Signed paper timesheets arrived by text, often days after the shift, so pay and invoices waited. Weekly invoices went out 5 to 8 days after the week closed, and one in ten was queried by the client.
Vacation pay rises with length of service, paid holidays have eligibility tests and overtime starts at a weekly threshold. These are configured as dated settings, alongside HST codes per client and WCB Nova Scotia assessable earnings, so a rule change does not need a code change.
Mapped 9 user roles and 41 screens across the staff app, the worker app and the client portal, and the data model for bookings, offers, eligibility, timesheets, clock events, pay rules, rate cards, compliance documents, pay runs and invoices. Wrote down the rules the design follows: the Labour Standards Code, NSNMR licensing, the CCA Registry, vulnerable sector checks, PIPEDA and PHIA, WCB Nova Scotia and HST.
Built 5 key screens on a production dashboard kit: the dashboard with the next 72 hours by grade, bookings as a board and a table with a shift quick view, booking detail with the progress rail, rates by segment and ranked candidates, the timesheets queue with pay and charge lines, and the compliance queue with verify and reject. Offers, assignments, adjustments and checks run on local state.
The worker app with clock events and on-phone supervisor signatures, the client portal, pay runs, vacation pay, invoices, disputes and margin reports. Integration with payroll (such as Ceridian Dayforce, ADP Canada or Wagepoint), QuickBooks Online or Xero, background check ordering, Twilio, push notifications, maps and geofences, and document storage in Canada. Staff auth by role and a full audit log of every change to hours, rates, compliance and invoices.
Candidates are ranked by fit, each with a row of passed or failed checks. Workers who cannot take the shift are listed below with the exact reason, such as an NSNMR licence that expires before the shift date, a do-not-return entry or an overlapping booking.
The timesheet detail lists scheduled against actual times for clock-in, breaks and clock-out with the source of each, then the pay lines with their pay rule and the charge lines with the client's rate card version, so payroll and the client see the same arithmetic.
Timesheets are flagged for a variance over 30 minutes, no break on a long shift, a clock-in outside the site geofence or a manual time entry. Only unflagged rows can be marked checked in bulk, and the dashboard lists them under Needs attention.
The compliance queue shows documents to review, workers blocked by expiry and those expiring in 30 days with the shifts already booked after that date, so the coordinator can re-fill them before the day arrives.

Designed and built a clickable applicant tracking system for a Bratislava retail and logistics group that hires about 3,500 store, warehouse and driver staff a year: a hiring dashboard, jobs with pay ranges on every posting, a per-job pipeline board with no ranking or AI sort, candidate profiles with consent and retention, and a knockout review where a person confirms every rejection.

Designed and built a clickable AI-assisted screening tool for a New York City fintech's Technology Graduate Programme: blind resumes with quoted evidence against a short list of job-relevant criteria, a recruiter who advances, holds or rejects with reasons, a second review of risky rejects, and a candidate request inbox - with no auto-reject, no overall score and no ranking.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab