Shiftaru Blog

How Shiftaru Automatically Matches Requests to Staff Availability

July 5, 2026 · The Shiftaru team

In the previous article I argued that scheduling gets easy once you split it into three parts. This time: what actually happens inside the automatic matching, with diagrams.

No heavy algorithm theory. All you really need to know is what it optimizes for, and in what order.

🔧 Note
Shiftaru is in active development. Right now you can try the free practice mode (sample data, no signup).
👉 https://shiftaru.com

The overall flow

Matching in Shiftaru is three steps.

1. Collect            2. Match                3. Adjust
requested date/time   apply the constraints   review on screen and
area, service,        and assign              fix only what bothers you
availability
   ↓                       ↓                       ↓
 Google Forms          greedy algorithm       tentative → confirmed

You handle step 1 (prep) and step 3 (final call). The machine takes step 2 — the part that actually hurts.

Inside step 2: what gets priority

"Automatic matching" can sound like it's just filling slots at random. It isn't. It searches for combinations that satisfy the constraints, in this priority order:

  1. Area fit (highest weight)
    Staff who cover the customer's requested area win. Closest first.
  2. Order of preference
    First choice beats second beats third. Whichever can actually be honored.
  3. Workload balance
    Spread the work so nobody gets buried — staff with lighter loads get preference. (You can flip this to "concentrate on the same people" if that's how you run.)

On top of that, there are hard constraints — break one and the assignment simply isn't made:

Anything touching safety or feasibility (certifications, conflicts, caps) is never violated. Anything that's a preference (proximity, order of choice) gets scored and compared. That two-tier approach is what produces schedules you can actually run.

Matching is two-tier: scored preferences, plus hard constraints that are never broken

The greedy algorithm, in one line

Shiftaru uses a greedy algorithm. It sounds technical; it isn't.

"Assign the best available match, one at a time, in order."

For each slot it asks: among everyone who satisfies the hard constraints, who's the best fit? It locks that in and moves to the next slot. It's the same thing you do by hand — just fast, and without missing anyone.

The greedy method: lock in the best person for each slot, then move on

Even at a few hundred people, results come back in seconds. So "someone's plans changed, rebuild everything" takes a moment, not an evening.

Step 3: the machine doesn't get the last word

The important part: an automatic match is a draft.

Real operations carry context the data can't hold — "she can't miss this day," "I want this pairing this time." So Shiftaru gives you:

The machine clears 90% of the work. You decide the last 10%. That division of labor is the whole reason it holds up in practice.

Wrapping up

🚀 Try it now (in development, free practice mode)

Everything described above runs in the browser with sample data. No install, no signup.

👉 https://shiftaru.com

Note: while it's in development, some features (importing your real data, exporting results) unlock with a license. Start with practice mode.


If you're now wondering "OK — but where does all that customer data get stored?", good instinct. Shiftaru never sends your customers' or staff's personal information to a cloud server. Here's why, and how that works.