Every company that places professionals with clients has the same polished presentation ready for new customers. A streamlined process. A clear chain. A CRM or ATS that tracks everything. Then the first assignment arrives. And it turns out the work does not fit the standard process. It lives in the exceptions. And those exceptions are not incidental. They are the core of the business.
The staffing market runs on deviating contracts, mismatched hours, rates that change per assignment and billing that crosses borders. Not because nobody works hard enough, but because the market itself is built that way. The question is not how to eliminate those exceptions. The question is how to structure them so you do not have to work through them manually every month.
The real process is the edge case
What you see on the website of a secondment firm, staffing agency or freelance platform is the standard story. Candidate, vacancy, match, placement, billing. In practice, almost every placement is a variation on that theme. One client demands a client-specific contract with its own terms. Another works through a broker construct where the invoice goes to an intermediary before it reaches the end client. A third has agreed that the candidate tracks hours weekly while the client wants a monthly overview.
These variations are not mistakes. They are the business model. Companies that place professionals earn money by being flexible. Flexibility means no two assignments are the same. But it also means your back office has to choose every day: correct manually, or adapt the system. Most teams choose manual correction, because adapting the system seems more expensive and slower. Until you scale.
Contracts that are never the same
A standard employment contract or assignment agreement exists. But practice starts with the client contract. The client sends its own terms. Sometimes liability, sometimes confidentiality, sometimes a specific notice period or non-compete. That document has to be reviewed, compared with your own terms, and often adjusted before placement can begin.
Broker constructs make it truly complicated. The assignment comes in through party A, is executed by party B, and is billed to party C. Sometimes party C is a subsidiary in another country. Sometimes the client itself is an international entity that is only allowed to hire through a Dutch inlenersconstructie. The chance that your standard contract is prepared for this is zero. The chance that something goes wrong in the first month is high.
Hours that pass each other
The classic timesheet gap: the candidate works and reports weekly. The client validates monthly. Or the other way around. Sometimes the timesheet comes from the client's system, sometimes from your own portal, sometimes via a spreadsheet someone emails on Friday evening. The hours do not match the schedule. Vacation days are registered differently in two places. There is a day worked that the client considers a day off.
These differences are not solved by buying another timesheet tool. The tools already exist. The problem is that the data is not aligned. The candidate, the client, the planner and billing each see a different version of the same week. Only when someone lays them side by side does a usable overview emerge. That laying out is manual work. And that manual work does not scale.
Rates that break every rule
The standard hourly rate is a fiction. In practice you have special rates for long-term clients, rates that depend on weekly hours, rates for evening or weekend work, and rates that only apply to this specific assignment because the competition was different. Sometimes the client pays a fixed monthly price while you bill the candidate by the hour. Sometimes travel costs are included, sometimes billed separately.
All those exceptions have to be recorded somewhere. Usually in a note field, a spreadsheet, or the head of the consultant who won the assignment. When that consultant leaves, or when the assignment is handed over, part of the rate story disappears. Billing then has to guess, or call, or both. That takes time and it costs money. Not only because errors are made, but because the process itself takes time that is not billed.
Freelance, secondment and payroll mixed together
Most professional service providers use multiple forms at once. One candidate is a freelancer who invoices through their own company. Another is on payroll through a payrolling construct. Another works via secondment, where you invoice the client and the candidate is employed by you. Each model has its own documentation, its own risks and its own billing cycle.
The transition between these forms is where it goes wrong. A freelancer who suddenly wants to work through payroll. A seconded employee who turns out to need a DBA check for an assignment abroad. A candidate who switches clients and therefore also switches contract type. If your core systems do not know which candidate falls under which rules at which moment, manual control emerges. And that control is repeated roughly five times a day.
Invoices that cross borders
International assignments add an extra layer. The invoice has to go to an entity in Ireland, Germany or Belgium. VAT rules differ. Payment terms differ. Sometimes the invoice has to be in another currency, sometimes it needs a specific reference that only appears in the client's contract. A small error in the address or currency means a delayed payment of two to six weeks.
Domestic billing to a different entity of the same client is often just as difficult. The holding company pays, but the assignment comes from the subsidiary. The invoice has to go to a different email address, with a different cost center, and under a different PO number. This information is scattered across emails, contracts and notes. Not because nobody wants to structure it, but because every time it is slightly different.
Expenses that surface months later
A candidate declares travel costs from three months ago. The assignment is already closed. The client no longer has room in the budget. Your system does not allow the declaration because the period is closed. But the candidate did incur the receipt during the assignment. So an email chain begins. The planner asks the client for approval. The client asks for a specification. Finance searches for the original invoice.
These situations are not incidental. They are structural. Expenses often come in late because candidates do not declare weekly, because receipts get lost, or because the procedure is unclear. Every overdue declaration is a small project in itself. And if you place hundreds of professionals, those small projects become a significant burden.
Why another tool will not solve this
The reaction to these pain points is often: we need a better system. A new ATS. A new time tracking tool. A new billing module. But the problem is not a lack of tools. It is a lack of aligned data. Contracts sit in one tool, hours in another, rates in a spreadsheet and client specifications in emails. No new tool solves that as long as the data is not aligned.
“Most companies in the staffing market do not have too little software. They have too many versions of the truth.”
- Dissel AI
The solution is in the core, not the edge
We work with companies on a different approach. Not another tool on top of the existing stack, but first getting the core data right. Clients, vacancies, professionals, assignments, contracts and margin. When those six entities are aligned, you can build agents that recognise and resolve the exceptions themselves. Not by replacing the human, but by reducing the manual work.
An agent that scans an incoming contract and immediately flags where it deviates from your standard terms. An agent that places client and candidate timesheets side by side and only presents the deviations. An agent that checks whether rate, entity, currency and PO number match the contract when an invoice is created. This is not future music. This is what happens when you get the core right first.
Where to start
Do not start with full automation. Start by mapping your exceptions. Where does most time go every month? Which actions are repeated because systems do not talk to each other? Which information lives in heads instead of data? That is your roadmap. And that roadmap starts with a database rebuild, not a new tool.
- 01Map your core entities: clients, vacancies, professionals, assignments, contracts and margin.
- 02Collect the exceptions that are currently solved manually. Not the theory, the actual examples from the past three months.
- 03Connect your existing systems and documents to that core, instead of moving everything to a new platform.
- 04Build agents that take over the first repetitions and checks, under human supervision.
- 05Only scale once the accuracy of the agents is proven on real cases.
The staffing market runs on exceptions. That will not change. But the way you handle those exceptions can change. From monthly manual work to a structured process that scales. That is where applied AI in this industry really delivers value.


