Clients are not candidates with a different label
Open a generic CRM and look for your clients. Often they are not really there. They are contacts, accounts, or "companies" sharing the same blurry space as drivers, with a drop-down that says Employer or Client so the desk can pretend the model fits.
It does not. A hiring company is not a candidate who pays invoices. A vacancy is not a ticket. When those distinctions collapse, the desk spends the week translating the software back into how an agency actually thinks.
For UK HGV and industrial recruitment, that translation tax shows up every time someone asks which client raised the nights run, what you have filled for them before, or who on the worker side can legally go out on that job.
Agencies already keep two ledgers in their heads
On a real desk, candidates and workers live on one side of the work. Clients live on the other.
Drivers apply, upload licence and Right to Work documents, become workers with compliance on a record, and wait to be placed. Hiring companies ring up, send emails, raise cover needs, argue about timesheets, and build a history with you — contacts, sites, shift patterns, preferred licence categories, the jobs that went well and the ones that did not.
Those are different objects. Mixing them because a CRM only had one "person or company" shape is how you end up searching a candidate list for a transport manager, or hunting a shared Drive folder for "what we usually send this client on Fridays".
Jobs sit between the two ledgers. A vacancy belongs to the client that raised it. It has a status the desk actually tracks — open, covered, cancelled, extended — not a generic pipeline stage renamed until it vaguely sounds like recruitment. When the job is only a note on a contact, or a row in a spreadsheet that never links back to the company, history dies the moment the person who remembered it is off.
How generic tools flatten the wrong things
Salesforce-shaped platforms and blank CRMs are good at contacts and opportunities. They are not born knowing that an HGV agency keeps hiring companies separate from the people it places.
So someone configures it. Clients become Accounts. Drivers become Contacts or Candidates. Jobs become Opportunities or Cases. Consultants add fields until a demo looks tidy. Under pressure, staff dump the vacancy into email anyway because raising a proper "job" object takes longer than a WhatsApp from the client. The CRM still holds names. The real client history drifts back into inboxes and a placements sheet updated on Friday if someone remembers.
Ticket systems make a different mess. They treat a vacancy like an IT request: subject line, priority, assignee. Useful for chasing tasks. Poor at carrying the commercial and operational facts a desk needs — which client, which site, which licence category, PAYE or umbrella on the eventual placement, whether the worker you are about to send is current on CPC and Right to Work.
Spreadsheets feel honest because columns can say "client" and "job". They still leave the worker record, the compliance trail, and the client history in three places that never meet. You can fill the sheet. You cannot ask it a clean question without archaeology.
What separate objects buy you on a busy morning
When clients are first-class, you see the company, its contacts, and its history with you without opening a candidate file and squinting. When jobs are first-class, a vacancy links to the client that raised it, with the status your desk actually uses — not a ticket queue dressed up as recruitment.
That is what lets scheduling mean something. Matching a worker to a shift is not only "who's free". It is "who's free, compliant, right category for this client's job, on the commercial route this engagement needs". PAYE and umbrella placements remain different things at the end of that chain. Licence categories stay facts on the worker, not inventable tags. None of that helps if the job itself is a free-text blur that forgot which company asked.
Separate does not mean disconnected. The point of one system is that a candidate becomes a worker, a compliant worker becomes available, and a placement fills a client's job without typing the same facts twice. The ledgers stay distinct. The pipeline still connects them.
What we're building at Haulbase
Haulbase is recruitment software for UK HGV and industrial agencies — pre-configured so client management and job management sit beside worker management the way the desk already thinks, not as labels bolted onto a generic contact model.
At launch that includes the job board through registration, worker, client, and job management, plus scheduling and placement tracking. DVLA and Right to Work status are tracked manually on the worker, with documents uploaded and reviewed in one place. Automated DVLA licence check API integration, automated Right to Work identity verification, and payroll or umbrella company integrations come later.
We would rather ship clients and jobs as real objects inside a connected spine than pretend a renamed CRM entity is the same thing. Built with real agency back-office experience — ten years of watching client history vanish into email because the "recruitment system" never gave hiring companies a proper home.
Still pre-launch. If you're on the waitlist, thanks — more soon.
Two sides of the same desk
You will still recruit drivers and look after the companies that hire them. What you should not need is a mental map that says "clients are over here in Drive, workers are in the CRM, and jobs are wherever someone typed them last".
If your hiring companies still share a contact list with your candidates, you're the reason we're building Haulbase.