Conversion tracking for staffing agencies, on both sides of the marketplace
A staffing agency runs two acquisition problems that look the same in an ads account and behave nothing alike. Candidate applications are high volume, low value each, and worthless in the wrong skill category. Employer accounts are rare, enormously valuable, and take months. Most agencies send both into one conversion action, which teaches every algorithm to chase the cheap side and starves the side that pays. The build separates them: placements from the ATS, employer accounts from the CRM, each with its own value and its own campaigns.
Free30 minutesNo obligation
Getting and tracking leads for staffing agencies
Where a staffing agency's leads come from, and how to keep applicants from eating the client budget
A temp and light industrial staffing agency gets employer requests for workers and a far larger flood of job applications, through Search ads, the Business Profile, Indeed, Meta and walk-ins. Count an employer lead when a business asks for workers for a role and start date you can fill, and record its source on the client record in Bullhorn, Avionté or TempWorks, apart from candidates.
The complaint: Google Ads shows healthy conversion numbers, and the branch says nearly all of them were people looking for work, while the warehouse manager who needed a crew by Monday rang the branch directly. 'Staffing agency near me' is searched mostly by job seekers, and the 'request workers' form sits next to 'apply now' on the same site. If both fire the same conversion, the algorithm does the sensible thing and buys the cheaper one.
That starves the side that pays. Employer inquiries get fewer impressions, while applications pile up for roles you aren't filling and towns you don't serve. Indeed adds a second blind spot: candidates who clicked your ad often apply through Indeed Apply, and that application reaches the ATS with no source. A ten-minute check: put last month's Google Ads conversions next to new client contacts and new applicants in the ATS, counted separately.
Fixed means two conversion actions, employer request and qualified application, each with its own campaigns and budget; the click ID saved on both; and filled job orders sent back from the ATS as the employer-side value. Applications only count when they match a role and location you are recruiting for. Job ads follow Google's and Meta's employment targeting rules. The free audit splits the two sides in your own data first.
Where the leads come from
| Channel | Role | Note |
|---|---|---|
| Google Search ads | Employers searching for temp labor by role, and candidates searching for shifts | Separate client and candidate campaigns; job ads can't target by age, gender, parental or marital status, or ZIP code. |
| Business Profile | Walk-in applicants and local employers checking the branch | One profile per staffed branch; most profile calls are candidates, so tag them. |
| Indeed and job boards | The bulk of candidate applications | Indeed Apply posts applications straight to the ATS with no UTM, so they look direct unless the source is set. |
| Meta | Candidate recruiting for warehouse, production and shift work | Employment special ad category limits targeting; measure on applicants who finish onboarding, not form fills. |
| Plant, warehouse and HR managers on the client side | Low volume; measure on job orders received. | |
| Walk-ins and referrals | Candidates sent by current associates, employers sent by other sites | Ask at first contact and record it, or it becomes 'direct' in the ATS. |
Which calls count
- Count it when
- Count an employer call when a business asks for workers for a role, location and start date you can fill; candidate calls are tracked as a separate action.
- Minimum duration
- Candidates asking about pay or shifts talk as long as clients do, so duration can't separate them. Put different numbers on the client and candidate pages.
- After hours
- Second-shift supervisors call in the evening when an associate doesn't show. If someone carries the on-call phone, those are real orders; otherwise keep client ads to the day.
Where each lead should land
- Employer request form or call from a Search ad
- Client contact and job order in Bullhorn, Avionté or TempWorks with the click ID, so filled orders can go back to Google Ads.
- Indeed Apply application
- Candidate record with Indeed as source, set by the integration rather than left blank.
- Meta or Search candidate application
- Candidate record with the campaign stored, judged on completed onboarding.
- Walk-in or referral
- Candidate or client record with the referrer asked and logged at the front desk.
Staffing · what breaks
What staffing agencies usually run into
- 01
Candidate applications and employer inquiries in one conversion action
The cheap signal outnumbers the valuable one by orders of magnitude, so bidding optimizes entirely toward candidates.
- 02
Applications counted regardless of whether anyone is placeable
Volume in the wrong skill category, the wrong location or the wrong right-to-work status is not supply, it is admin.
- 03
Placement revenue arriving months after the click
The fee is earned when someone starts, and often paid later still.
Staffing · the fix
What changes — Staffing
Two conversion models, deliberately separated
Candidate-side and employer-side never share a conversion action or a bidding strategy.
Filled placements as the candidate-side money event
Sent from the ATS when a placement starts, valued at the actual fee.
Employer accounts as the client-side money event
Sent from the CRM, valued at expected first-year billings rather than a flat number.
Staffing · architecture
The conversion map for staffing agencies
Five events across two funnels. The only thing they share is the click identifier mechanism.
- 1
Candidate application
High volume, low value. Learning signal only, and only when filtered by category.
- 2
Candidate qualified
Recruiter-confirmed placeable in a category you actually staff.
- 3
Placement started
Candidate-side money event. Sent from the ATS with the fee.
- 4
Employer inquiry
Rare and valuable. Its own conversion action, its own campaigns.
- 5
Employer account opened
Client-side money event, valued at expected first-year billings.
Staffing · diagnose
Where staffing agencies tracking usually breaks
- 01
One conversion action for both sides
The single most damaging configuration in this category, and the most common.
- 02
ATS and CRM as separate systems with no shared identifier
The candidate record and the company record live apart, and the identifier is usually mapped into neither.
- 03
Long placement cycles against import windows
If your median click-to-placement exceeds 90 days, placements cannot be uploaded to Google Ads against those clicks.
- 04
Job-board traffic mixed with paid traffic
Aggregator and job-board clicks arrive without your click identifier and will silently dilute every coverage measurement unless separated.
Staffing · prove
How the work is proven — Staffing
Source of truth
The ATS for placements by start date, and the CRM for employer accounts by open date — two reports, for the same window, never summed.
- Placements reconciled per record against what each platform reports, candidate side only.
- Employer accounts reconciled separately, on their own window.
- Identifier coverage measured independently on each funnel, because they fail independently.
- Median click-to-placement and click-to-account measured against every import window before the build.
Staffing · free audit
What we check in the free audit
- One conversion action for both sides
- ATS and CRM as separate systems with no shared identifier
- Long placement cycles against import windows
- Job-board traffic mixed with paid traffic
Checked against
The ATS for placements by start date, and the CRM for employer accounts by open date — two reports, for the same window, never summed.
Free30 minutesNo obligation
Staffing · when not to buy
What lands in your monthly report — Staffing
One page a month, in language you can put in front of a agency owner.
- Placements and fees by campaign, candidate side, over a closed month.
- Employer accounts and expected billings by campaign, client side, over a closed quarter.
- Cost per placement and cost per employer account, never averaged together.
- Application-to-placement rate by campaign, which is where candidate traffic quality shows.
Staffing · what we deliver
The flow we build — Staffing
Click identifier captured on both funnels separately
Candidate and employer journeys usually run on different pages and sometimes different domains.
Carried into the ATS on the candidate side
Onto the candidate record, surviving the application-to-submission-to-placement chain.
Carried into the CRM on the employer side
Onto the company record, mapped through any lead-to-account conversion.
Fallen-through placements reversed
A candidate who does not complete the guarantee period is not the revenue you reported.
Written guarantee
95%+ tracking accuracy
Measured against The ATS for placements by start date, and the CRM for employer accounts by open date — two reports, for the same window, never summed.. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Staffing questions, answered
Because applications are the cheapest thing your funnel produces and the least correlated with revenue. An algorithm told that applications are the goal will find you an enormous number of applications from people you cannot place. That is the standard failure mode in this category and it is expensive.
Expected first-year billings for that account type, derived from your own history and documented. It will be a wide range, which is fine — a documented range beats an invented point estimate, and bidding only needs the relative ordering to be right.
No, because the two sides should be measured separately anyway. Each needs the identifier mapped into it independently. Not connecting them to each other is the correct architecture here, not a limitation.
Different value models and usually different campaigns. A temp placement earns margin over time; a perm placement earns a fee at once. Sending them as one conversion type with one value makes bidding optimize toward whichever is more frequent rather than whichever is more profitable.
More on Staffing
- Google Ads · StaffingGoogle Ads conversion tracking for staffing agencies
- Meta · StaffingMeta Ads conversion tracking for staffing agencies
- TikTok · StaffingTikTok Ads conversion tracking for staffing agencies
RELATED GUIDES
Funnels, reconciliation and tools for staffing agencies
- Marketing agenciesOne tracking standard across your whole client portfolio
- Web and dev agenciesConversion tracking for web agencies, measured in signed contracts
- Meta · RFP → awardHow to track RFP submission to contract award for Meta Ads
- Google Ads · RFP → awardHow to track RFP submission to contract award for Google Ads
- Meta × CRM DealsHow to reconcile Meta Ads against your CRM's closed-won deals
- SmartRecruiters → Google AdsConnecting SmartRecruiters to Google Ads
- Healthcare staffingConversion tracking for healthcare staffing, measured in filled assignments
- RecruitmentConversion tracking for recruiters, with candidates and clients measured separately
Free · 30 min
Separate your two funnels properly
Free30 minutesNo obligation
