How we ran Vantage
on 5 hours a week.
Vantage Labour Hire is our own labour hire shop placing workers on Sydney construction sites. We built Nexes on it first — so every agent you buy has been stress-tested on a real business with real workers, real invoices, and real licences about to expire.
The Before
VLH is a small Sydney labour hire shop — construction vertical, Tier-2 sites, East Ryde base. Before Nexes, the admin looked like this: every new worker meant a folder made by hand, licences photocopied and dropped in Drive, a spreadsheet row updated if someone remembered. The prospect list for chasing new sites lived in Ethan's inbox and a Google Sheet he kept forgetting to open. Compliance was a ticking bomb — a white card expires and you don't find out until the supervisor calls from site.
The week roughly burned like this: 6–8 hours onboarding new workers, 4–6 hours reconciling timesheets into Xero, 5+ hours hunting prospects across the NSW Planning Portal and cold-calling, 3–4 hours chasing licence renewals, and the rest on inbox triage and invoice follow-ups. Call it 30–35 hours a week — almost all of which scales linearly with each worker and client added. The business couldn't grow without eating Ethan's weeks.
The stack we deployed
// all ten agents exist as templates in the Nexes library · labour_hire industry · see /api/public/quote
The After
Joshua (the AI chief of staff) has already dropped the Weekly Owner Brief Sunday at 8pm. Revenue MTD, this week's placements, anyone hitting a licence expiry inside 60 days. Ethan reads it over coffee. Zero dashboards opened.
A worker fills the public registration form → n8n fires → the onboarding agent builds their folder and profile page. Ethan never sees it unless something fails. A new DA approval pops on the NSW Planning Portal → SMS to phone.
Prospect list refreshes to Drive. Compliance watcher is silent (which is the target — silence is the green light). Ethan's on-site with a new client from a DA trigger that fired Tuesday. Total manual admin this week: roughly 5 hours.
A local multi-page HTML+JS dashboard at /Vantage labour hire/. Auto-refreshed every 15 min via launchd. Deliberately not on Vercel — it's for one operator, not a team. Same pattern Nexes ships every customer: start local, promote to hosted when a team joins.
What we haven't automated yet
Three gaps, called out plainly — because credibility beats perfection.
- Client invoice reconciliation is still manual. ConnectTeam shift data → Xero invoicing is scaffolded but not live. Invoice Generator is queued, not running.
- Gmail triage still needs the owner's eye. New client leads and awkward worker messages don't get auto-replies. Everything else does.
- n8n self-healing is in progress. When a workflow fails (e.g. an expired Gmail OAuth token) Ethan still sees it first. The vision — Ethan texts Joshua, Joshua fixes n8n — is next quarter's build, not today's.
What Nexes built for VLH
- Custom local command centre at
/Vantage labour hire/— five pages, shared shell, launchd-refreshed every 15 min. - n8n cloud instance at
vantagehire.app.n8n.cloud— worker registration webhook live; client lead workflow queued for import. - Worker Profile agent (
vlh-worker-profile-agent.sh) — launchd 3× daily, Claude-authored HTML profiles + 5-folder structure per worker. - Prospect Builder (
vlh-master-prospects.py) — Python pipeline: NSW Planning Portal + Infrastructure NSW + ABR + Google Places → dedupe → xlsx export. - Gmail-VLH credential wired inside n8n · welcome emails to workers · alerts to
info@vantagelabourhire.com.au. - A CLAUDE.md system prompt injected into every n8n Claude call — so the model has full VLH context without ever storing state.
The numbers
// wages-equiv = sum of library wages_saved_per_month across live agents · conservative, not revenue · real VLH figures confidential
Start with the $349 audit.
45 minutes of intake. AI-authored quote + 20-page plan in your inbox. No salespeople, no pressure, no calls. If it fits, we build. If it doesn't, keep the plan.