MMichael Z Consulting
all cases
case 02 · Moving & home services

HirePipe

End-to-end hiring automation for a moving company: license OCR, scoring, knockouts, insurance loop, and SMS/email reminders.

Make.comClaude API (vision)JotformGmailTwilioCalendly
[demo video coming soon]
/ the problem

A regional moving company runs hiring through Indeed → Jotform → manual review → insurance check → onboarding. Each candidate eats 30+ minutes of owner time, weak candidates make it deep into the pipeline, and good ones get lost during the insurance wait.

/ the approach

Four chained Make scenarios. The main pipeline sends the candidate's driver's license photo + answers to Claude vision, gets back extracted fields and 1-10 scores in four categories, then routes: knockouts → auto-reject, low scores → auto-reject, qualified drivers → insurance loop. A nudge scenario watches the PendingInsurance store and sends timed candidate updates plus owner escalations. A booking watcher fires four reminders (email + SMS) at 48h / 24h / 2h / 30min.

/ the outcome

Owner time per candidate drops to near-zero on rejected paths and ~5 minutes on qualified paths (only the insurance forward). All candidate-facing messaging is on-time and consistent. Human approval gate retained at the final insurance step.

/ engineering notes

AI as a structured-data extractor, not a chatbot

Claude vision is given the license photo + a strict JSON schema. The downstream router doesn't care that it's an AI — it sees fields and scores. Adding a new score category is a prompt edit + a router branch, not a model swap.

Knockouts before scoring

Hard disqualifiers (can't work Saturdays, can't pass drug test) are checked first, so we don't waste a vision call on a candidate who's already out. Saves API spend and tightens the rejection email turnaround.

Data-store-backed handoffs between scenarios

Make has no native cross-scenario queue, so the PendingInsurance datastore acts as the seam. Main pipeline writes; nudge pipeline (hourly) reads and acts; insurance loop clears the row. Each scenario is independently restartable.

Human approval gate kept where it matters

Insurance clearance is the one step that's not safe to automate — wrong call here is a legal liability. Owner forwards the insurance reply through a tiny private Jotform to mark the candidate cleared; everything downstream is automatic again.

Got a workflow that looks like this?

Run the free 5-minute diagnostic — I'll tell you whether it's a $0 weekend project or a 2-week build.