Compliance that runs before the shift, not after
Most workforce systems report a breach. The engineering problem worth solving is making the breach impossible to book in the first place.
Workforce compliance fails as a reporting problem and succeeds as a scheduling one. A dashboard showing three expired licences is a list of things that already went wrong. A gate that removes those three workers from tomorrow's eligible list is a control.
What this class of system demands
4 things that decide this
- 01Eligibility belongs in the scheduling query, not in a report. If an ineligible worker can be booked and flagged later, the check has already failed.
- 02Document expiry has to be a live input. Shift Link validates against the UK Government Right-to-Work API and tracks expiry, so status changes without anyone remembering.
- 03Overrides will happen. Design them, name them, and log who made each one, because an unattributed override is worse than no override path at all.
- 04The clock-in has to be defensible. GPS and facial recognition exist so the record holds up when someone disputes a shift months later.
- OnboardWorker record created.
- ValidateDocuments checked at source.
- ExpireDates drive status, not reminders.
- GateIneligible workers see no shifts.
- Clock inGPS and face, on site.
- PayHours and margin from one record.
Move the gate to step four and most compliance risk disappears. Leave it after step six and you are writing incident reports.
The four problems every build hits
These appear whatever sector your workers are placed into.
A stored document is not a completed check
Filing a passport scan proves you collected something. What defends you is the record of what was checked, on which date, against which source, and what happened when it lapsed.
Expiry is a state change, not a notification
Email reminders assume somebody acts. Tie eligibility to the date itself and the worker leaves the available pool automatically, whether or not anyone opened the inbox.
The edge cases need a person
A name mismatch or an unusual visa condition is not a parsing failure to retry. Route it to a consultant with the context, because guessing here is exactly the risk the system exists to remove.
Scheduling and payroll must share one record
When hours, rates and eligibility live in separate systems they drift, and reconciliation becomes a monthly argument. One record removes the argument rather than automating it.
Design the override before you need it
A gate with no override gets worked around. Somebody creates a duplicate worker record, or books the shift in a spreadsheet, and now your system knows less than it did before.
So build the exception path deliberately. A named person, a reason, a time limit, and a record that appears in the same audit view as everything else. Overrides are not a failure of the design; unattributed ones are.
- Require a reason and attach a name. Anonymous overrides make the audit trail decorative.
- Time-box the exception so it expires on its own.
- Report override frequency. A rising rate means your rules are wrong, not that your staff are.

Systems where a rule blocks the action
Shift Link
AI workforce compliance and shift management for healthcare and logistics.
Read the case study →
WorkMateAI
Dispute resolution, payments, and compliance for Australia's on-demand trades.
Read the case study →
WAIQ
Business operations and execution platform for multi-site organizations.
Read the case study →
A compliance dashboard against a compliance gate
Both know the same facts. Only one of them changes what can happen.
| Criterion | Dashboard and alerts | What production requires |
|---|---|---|
| When you learn | After the shift was booked. | Before the shift is ever offered. |
| Expiry | An email somebody may open. | A state change that removes eligibility. |
| Enforcement | Depends on a consultant noticing. | Built into the scheduling query itself. |
| Exceptions | Handled quietly, off-system. | Named, reasoned, time-boxed, logged. |
| Proving it later | A screenshot of a report. | The check, the date, the source and the outcome. |
The stack this work runs on
Platform
Verification
Controls
What staffing and workforce leaders ask us
01Can eligibility checking be fully automated?
The document validation and expiry tracking can be. Shift Link runs both through the UK Government Right-to-Work API. The judgement calls should not be: a name mismatch or an unusual visa condition goes to a consultant with the context attached.
02Why is a gate better than an alert?
An alert reports something that already happened, and depends on a human acting on it during a busy shift. A gate removes the option. Shift Link only offers shifts to workers who currently pass, so the breach never gets booked.
03What stops someone working around the system?
A designed override path. Without one, people create duplicate records or book in a spreadsheet, and your data quietly gets worse. With one, the exception is named, reasoned, time-limited and visible in the same audit view as everything else.
04How do you prove a worker was actually on site?
Capture at the moment, not afterwards. Shift Link clocks workers in with GPS and facial recognition, so the record carries where and who rather than a typed time. That is what survives a dispute about a shift six months old.
05Does this replace our HRIS?
No. Your HRIS holds employment records and statutory data that took years to get right. This is the operational layer above it: who can legally work tomorrow, on which site, at what rate, with the evidence attached.

