solve it · case · hq · recruitment · australia & new zealand · 2026

One front door for a recruitment group.

A group of four specialist recruitment brands across Australia and New Zealand, around 40 consultants, was running its working day across six rented tools that never shared a record. I replaced them with one platform the business owns, on its own server, reading one people record. It is called HQ.

6 → 1rented tools, now one login
70,000+candidates searchable, cvs and notes included
$0per search, on the business’s own server
$150,397revenue the old reporting missed
3,471training items checked, zero errors

Open it on this page.

Clients is the contact board. Match is the search. Home, reports and training are in the same sign-in. Nothing on the screen is a real client or candidate. Pick a stop below and the prototype jumps straight there, or sign in as anyone and wander.

Dummy data. The client’s name is not on this page.fig. 01 · prototype

The problem

solve it

Everything the business needed already existed somewhere. Team news lived in a chat channel and scrolled away by lunchtime. Support requests went into a form and landed on a board nobody reported from, so no one could say how long anything took or what people kept asking for. Training sat in a rented learning platform and a pile of old posts. Dashboards ran on scripts and spreadsheets. Onboarding ran on manual forms and someone remembering to send a calendar invite.

An earlier reporting build had already surfaced $150,397 in revenue the old reporting missed. It made the real problem obvious: six tools, six logins, six versions of who works here, and a monthly bill for each.

Finding a candidate was the worst of it. The CRM offered Boolean search on fields only, so a recruiter had to guess the exact words a colleague typed years ago. Search “foreman” and you would never find the record that said “site supervisor”. Notes were not searchable. CVs were not searchable. Tens of thousands of people the business had already paid to find were effectively invisible.

searchforeman0 results · The record says “site supervisor”.

Six tools, one record.

before · rented, separate, billed monthly
Chat channel
team news, gone by lunchtime
login · copy · bill
Form + board
support nobody reported from
login · copy · bill
Rented learning platform
training and old posts
login · copy · bill
Scripts + spreadsheets
dashboards
login · copy · bill
Manual forms
on and offboarding, from memory
login · copy · bill
CRM Boolean search
fields only, no notes, no cvs
login · copy · bill
6 logins · 6 versions of who works here · 6 bills
after · owned, on its own server one google sign-in, company domain only
FeedDashboardsMatchOne people record · read-only to the crmTrainingPeople opsSupport
assistant over all of it, answering from 600+ trainings 1 login · 1 record · $0 a search
fig. 02 · before and after · six modules, one data model underneath.

What I built

build it

One platform behind a single Google sign-in, restricted to the company domain. A sidebar that is always there, one search across people, posts, dashboards and training, and each person’s own numbers on the home page before they open a single report. Six modules, one data model underneath.

01

The feed

Posts, reactions, comments and pinned announcements, scoped to the whole group or a single brand. Mentions find you, and a digest reaches people who do not log in daily. The old channel ran alongside it through an overlap, so nothing was lost in the move.

02

Match

A search engine over the business’s own candidates. More on this below, because it is the part nobody had seen before.

03

Dashboards

7tab weekly review
0 to 100leadership score
5ready-made report packs
6timezones scheduled properly

Every report the business already relied on, rebuilt in the product on live data. A seven-tab consultant weekly review that takes ten to fifteen minutes before a catch-up and fills the rest in itself. The same picture one level up for agency managers, with ranked consultants, colour-coded client health and a full financial-year history, aggregated from the consultant data rather than calling the CRM again. A KPI leaderboard scored against targets pro-rated to the days each person actually worked, so leave, part-time hours and a short week stop distorting the table. A weighted leadership score from 0 to 100. A scorecard that runs from group to brand to office to person. And a self-serve report builder with five ready-made packs, a custom builder, branded email, PDF or spreadsheet output, and scheduling that handles six timezones properly.

04

Training

100day programme
400+lessons, 43 modules
500+quiz questions
3,471items, zero errors

A 100-day development programme built natively into the system, sitting in the same database as the performance data. Five pathways, 43 modules, 400+ lessons, 1,500+ content blocks across seventeen types, 500+ quiz questions marked on the server, and five milestone gates each signed off by a mentor. Competency ratings carry forward until a behaviour is consistently there, and every quiz attempt is kept, so the business can see which question everyone gets wrong and fix the lesson rather than the learner. Alongside it, 166 legacy modules, roughly 30 hours of the company’s own content, came across from the old platform. The import was checked against the original source by a verifier written to share no logic with the importer: 3,471 pieces of content, zero errors.

05

People operations

One form starts an onboarding, and the checklist, calendar and training all follow. The new starter’s first week books itself into their calendar, with each event linked to the lesson it belongs to, and they can be reached before day one on a personal email. Offboarding is a form too: access removed, assets returned, manager and payroll notified, account deactivated. Not a task someone has to remember. Agency managers get their own scoped portal to update their team, start an onboarding or offboarding, and see training completion and their own dashboards, and nothing beyond that. Tested deliberately with two real accounts.

06

Support

Real tickets with owners, quotable references, six categories and four severities. Each ticket captures the page, brand and device it came from, so nobody has to ask “where were you?”. Reporting runs on medians, not averages, and reads as product pain rather than a scoreboard. It started clean: the old board stays readable as history and nothing new goes into it.

+

The assistant

An in-app assistant sits over all of it, answering from 600+ indexed trainings and reading a person’s own stats without sending anything outside the system.

Match

own it · match, in more detail

Every candidate’s fields, every note ever written about them, and the full text of every CV (PDF, Word, RTF and plain text) are combined into one profile per person, split into passages so a single line buried in a CV can still surface someone, and searched two ways at once: by meaning and by keyword. Seven signals decide the ranking: meaning, keyword strength, skills and tickets, what the CV says, how close the job title is, how recently the record was touched, and how near the person lives. Each is arithmetic on real evidence, so every score can be explained.

Meaning
Keyword strength
Skills and tickets
What the CV says
Job title closeness
Recency
Distance
Bars show an illustrative balance. Recruiters move them with sliders.

Recruiters get sliders instead of one score they cannot argue with, plus four presets: balanced, semantic-led for a vague brief, skills and tickets for compliance-heavy roles, and fresh and local. Every result explains itself, down to “skills 2 of 3, same city, updated 12 days ago”, and in red when a required ticket is missing.

Carpenter, Aucklandscore 0.86
skills 2 of 3same cityupdated 12 days agorequired ticket missing: EWP
CV: “…six years as a chippie on residential builds in Tāmaki Makaurau…”
Every result explains itself. Illustrative, not a real candidate.

It was taught the industry by hand. A general model does not know a chippie is a carpenter, that MEWP and scissor lift both mean EWP, or that Tāmaki Makaurau is Auckland. So Match carries 610 New Zealand locations down to suburb level with Te Reo names and macron folding, 80+ role families with seniority tiers, and 950+ tickets and licences. Synonyms are added to a search, never substituted for what was typed. Three ways in: a free-text brief, a live job, or a saved talent pool. 5,000+ jobs synced, each with its own candidate matches.

610nz locations, suburb level, te reo names
80+role families with seniority tiers
950+tickets and licences
5,000+jobs synced, each with matches

Owned, private, and nothing leaves

$900–2,200a month on commercial ai
$0per search, on its own server

The whole Match engine runs on a small model on the business’s own server. There is no per-search cost and no candidate data is ever sent to an outside AI service. A comparable build on commercial AI services was costed at $900 to $2,200 a month, or $30 to $65 per consultant. This removes that line entirely, and the privacy conversation with it.

Candidate data sits on a Sydney server, with New Zealand data held in Australia documented rather than assumed. There are two locks on the door: a company-only gateway in front of the site and Google sign-in inside it. The database is not reachable from outside, and the server has no open door: it dials out, nothing dials in. Access is enforced on the server, not hidden in the page, so a consultant cannot reach another’s data at all. Match and the reporting are read-only to the CRM; they can never change or delete anything, and it stays the single source of truth. Backups are restored and tested, because a backup nobody has restored is an assumption.

Sydney server
nz data held in australia, documented
Two locks
company gateway, then google sign-in
No open door
it dials out, nothing dials in
Server-side access
nobody reaches another’s data
Read-only to CRM
it stays the source of truth
Restored backups
tested, not assumed
keep it · owned outright

One place.

Every person, every number, every candidate, in one place. Owned outright.