Skip to content
ATS Mako
Staffing guide

How to Build a Candidate Database That Stays Fresh: A Guide for Staffing Agencies

A candidate database only earns its keep when recruiters trust it enough to search it first. This guide covers the intake rules, tagging, outreach routines and cleanup habits that keep records usable, and how to measure the results in placements.

Updated November 2, 2026 11 min read

Most staffing agencies don't have a sourcing problem. They have a records problem. Knowing how to build a candidate database is only half the job. The other half is keeping it accurate enough that a recruiter can open it on a Monday morning, pull a shortlist and start calling. This guide walks through the full process: why databases decay, how to capture clean data at intake, how to tag and segment, how to run scheduled re-engagement, how to remove duplicates and stale records, and how to measure whether the database is producing placements.

It is written for agency owners and recruiters who already have candidates in a system and want those records to be usable. Every section ends in something you can put into practice this week.

Why candidate databases decay over time

A candidate record is a snapshot. The moment it is saved, it starts going out of date. People's lives move on, and the record doesn't move with them unless someone updates it.

  • Availability changes. Someone who was looking for work last season may now be placed, employed elsewhere or on a long assignment.
  • Contact details drift. Phone numbers change, personal email addresses get abandoned, people move house.
  • Skills and credentials move. Certifications expire, new ones get earned, people learn new equipment and software.
  • Pay expectations shift with experience and with the local market.
  • Duplicates pile up. The same person applies through a job board, an email and a referral, and ends up as three separate records.
  • Context stays in recruiters' heads. When a recruiter leaves, the notes that never made it into the system leave with them.

None of this is anyone's fault. It's what happens when a database is treated as storage instead of a working tool. The fix is a routine, not a one-time cleanup.

Step one: define what a usable record looks like

Before changing any process, write down the minimum standard for a record your team will call complete. If you can't define it, you can't enforce it at intake or audit it later. Keep the list short. Every field you add is a field someone has to keep current.

A minimum record standard for a staffing database
FieldWhy it mattersWhen to capture
Name and primary phoneFast contact by call or textAt intake
Email addressLonger messages, documents, confirmationsAt intake
Contact consent and preferred channelKnow who agreed to hear from you, and howAt intake
Location or travel radiusMatch candidates to client sitesAt intake
Core skills and job titlesSearch and segmentationAt intake, refreshed on every re-engagement
Certifications and expiry datesRoles with credential requirementsAt intake and whenever the candidate updates them
Availability statusKnow who can startAt intake and on every confirmed contact
Pay expectationAvoid wasted submissionsAt screening
SourceSee which channels produce placementsAutomatically at intake
Last verified dateMeasure freshnessOn every confirmed contact

The last two fields are the ones most agencies skip. They are also the ones that make measurement possible later. Without a source, you can't tell which channels pay off. Without a last verified date, you can't tell a fresh record from a dead one.

Capturing clean data at intake

Every bad record started as a bad intake. Fixing data at the front door is far cheaper than cleaning it up months later, when nobody remembers where it came from.

Route every channel into one system

Candidates arrive through job boards, your careers page, email, walk-ins, referrals and recruiter calls. If any of those channels lives outside the ATS, such as a shared inbox, a spreadsheet or a recruiter's phone, you'll get gaps and duplicates. Set up applications that arrive by email to land directly in the ATS so nothing sits in an inbox waiting for someone to re-type it.

Let the system do the typing

Manual data entry is where typos, missing fields and inconsistent job titles come from. Use resume parsing to turn CVs into structured fields, then have recruiters review and correct the result instead of re-entering it.

Standardize the fields people fill in by hand

  • Use picklists for job titles, skills, shifts and availability instead of free text.
  • Agree on one format for phone numbers and locations, and stick to it.
  • Make the minimum fields mandatory before a record can move forward in a pipeline.
  • Record the source automatically, not from a recruiter's memory.
  • Stamp a last verified date the first time you speak to the candidate.

Capture consent and channel preference up front

Ask each candidate how they want to be contacted and record their agreement to receive texts and emails. This keeps later re-engagement clean, and candidates tend to respond on the channel they chose. Follow your agency's own consent and opt-out policy, and take legal advice on what that policy needs to cover.

Tagging and segmenting candidates

A database you can't slice is a database you can't use. Tags and segments turn a long list of names into shortlists you can act on quickly.

Build a small, controlled tag taxonomy

Tags fail when anyone can create them. Before long you have forklift, Forklift, FLT and forklift cert all meaning the same thing, and searches miss half the people. Limit who can add new tags and group them into a few families.

A starter tag taxonomy for staffing agencies
Tag familyExamplesUsed for
Role and skillWarehouse associate, CNA, CDL driver, receptionistMatching to job orders
CredentialForklift certified, CPR current, food handlerRoles with credential requirements
AvailabilityAvailable now, on assignment, available soon, not lookingPrioritizing outreach
Shift and scheduleNights, weekends, part-time, seasonalShift-based orders
LocationBranch, metro area, willing to travelMulti-location clients
HistoryPlaced before, client re-request, do not rehireFast redeployment and risk control
EngagementResponded recently, unresponsive, opted outCleanup and outreach targeting

Turn tags into saved segments

Segments are saved combinations of tags and fields: available now plus forklift certified plus north branch, or placed before plus assignment ending soon. Build the handful your desks use every week and keep them saved so recruiters aren't rebuilding filters each time. You can segment candidates into targeted lists and reuse them for outreach and for new job orders.

Keep availability current above everything else

Of all the fields, availability decays fastest and matters most. Tie it to events instead of memory. When a candidate is placed, set them to on assignment. When an assignment ends, set them back to available and trigger a check-in. This is the same discipline behind keeping a ready bench of workers you can call on when an order lands.

Scheduled re-engagement outreach

Re-engagement is how a database stays fresh without a cleanup project. Each touch is a chance to confirm contact details, availability and skills, and to move the last verified date forward. A reply updates the record. No reply is a signal too.

Set a cadence by segment

  • Available now: frequent, short check-ins tied to new job orders.
  • On assignment: a touch before the assignment is due to end, so they're ready to redeploy.
  • Placed before with strong client feedback: regular personal contact from their recruiter.
  • Not looking: lighter, less frequent updates so the agency stays front of mind.
  • Unresponsive: one final still-interested message before the record is archived.

Pick intervals that match your sector's pace. Light industrial and hospitality orders move faster than professional placements. What matters is that the cadence is written down and runs on a schedule, not whenever someone remembers.

Use the channel candidates actually read

Text is usually the quickest way to get a yes or no on availability. Email suits longer updates, documents and job details. Use both from the same record so the conversation history stays in one place. For a full playbook, see how agencies automate candidate outreach with text and voice.

Availability check-in (SMS)

Hi {first_name}, it's {recruiter_name} at {agency_name}. We have new {role_type} shifts coming up near {location}. Are you available to work? Reply YES, NOT NOW, or STOP to opt out.

Keep it short, name the recruiter and give a one-word reply option. Log every reply against the record and update availability straight away.

Profile refresh (email)

Subject: Quick update so we can match you to the right roles

Hi {first_name},

We want to make sure we only send you jobs that fit. Could you take a minute to confirm a few details?

- Are you available now, and if not, from when?
- Has your phone number or location changed?
- Any new certifications or skills?
- Preferred shifts and pay range?

Just reply to this email and I'll update your profile.

Thanks,
{recruiter_name}
{agency_name}

Ask only for the fields that decay. Long forms get ignored.

Run outreach in bulk without losing the personal touch

Re-engagement at volume means sending to whole segments at once. Use bulk actions to message and update large groups of records, then have recruiters follow up personally on the replies that matter, such as a strong past placement saying they're free next week.

Removing duplicates and stale records

Even with clean intake, duplicates and dead records build up. Schedule cleanup as routine work with a named owner, not as an annual project nobody wants.

A simple cleanup routine

  1. 1 Find duplicates Search by phone number and email first. They are the most dependable match keys. Names alone produce false matches.
  2. 2 Merge, don't delete Keep the most recent contact details, combine notes and history, and preserve placement records and the original source.
  3. 3 Flag stale records Pull records with no confirmed contact for longer than the threshold your team agreed on.
  4. 4 Send a last-chance message One clear message asking whether they still want to hear about roles. Make replying easy.
  5. 5 Archive non-responders Move them out of active segments so they stop cluttering searches and skewing response numbers.
  6. 6 Honor opt-outs and removal requests Mark opted-out candidates clearly so nobody contacts them again, and handle removal requests according to your data policy.

Archive versus delete

Archiving keeps history while removing the record from daily searches. Deleting removes it. Many agencies archive by default and delete only when a candidate asks or when their retention policy requires it. Set your retention policy with legal advice and apply it the same way every time.

Measuring database ROI by placements

A fresh database is only worth the effort if it produces placements. Measure it like any other sourcing channel, with the same rigor you'd apply to a paid job board.

What to measure to prove the database is paying off
MetricWhat it tells youHow to track it
Placements from existing recordsHow much revenue the database producesTag each placement as a new candidate or an existing record
Share of submissions from the databaseHow much recruiters trust and use itCompare database submissions with newly sourced ones
Time to first submission on rediscovered candidatesSpeed advantage over fresh sourcingTime from job order opened to first submission
Re-engagement response rateHealth of contact details and relationshipsReplies divided by messages sent, per segment
Recently verified recordsOverall freshnessActive records with a recent last verified date, compared with all active records
Duplicates found per cleanupQuality of intakeDuplicates merged in each cleanup cycle
Redeployment rateHow well you keep placed workers workingCandidates placed again after an assignment ends

Review these numbers with recruiters, not just in a dashboard. If the database share of placements is low, the cause is usually one of three things: records are stale, segments don't match the job orders coming in, or recruiters default to job boards out of habit. Each has a different fix. For the workflow side, see how agencies fill job orders from records they already have.

Surface the right people faster

When a job order comes in, recruiters shouldn't be scrolling. Rank existing candidates against the job order so the strongest matches in the database rise to the top, then confirm availability by text before submitting.

Common mistakes to avoid

  • Treating cleanup as a one-off project. Without a routine, the database decays straight back.
  • Letting everything be free text. Inconsistent titles and skills make search unreliable.
  • Letting tags multiply. A tag list nobody controls is as bad as no tags.
  • Only contacting candidates when there's a job. Silence between orders is when contact details go stale.
  • Ignoring the not-looking group. Today's employed candidate is next quarter's available one.
  • Keeping intake channels outside the ATS. Every side spreadsheet creates duplicates.
  • Measuring database size instead of placements. A bigger list of dead records is not progress.
  • No clear owner. If everyone is responsible for data quality, nobody is.

Candidate database maintenance checklist

Use this as a starting rhythm and adjust it to your volume. Put each task on a calendar with a named owner.

A maintenance rhythm to keep your talent database up to date
FrequencyTaskOwner
DailyUpdate availability when candidates are placed or assignments endRecruiters
DailyLog every reply and confirmed contact, and update the last verified dateRecruiters
WeeklyRun outreach to available-now and ending-soon segmentsRecruiters
WeeklyReview new records for missing mandatory fieldsTeam lead
MonthlySearch for and merge duplicatesDatabase owner
MonthlyReview placement metrics with the teamAgency owner
QuarterlySend last-chance messages to stale records and archive non-respondersDatabase owner
QuarterlyReview the tag taxonomy and retire unused tagsDatabase owner

Where ATS Mako fits

ATS Mako is a white-label applicant tracking system built for high-volume and multi-location hiring. Native SMS and an integrated email client keep re-engagement messages and replies on the candidate record, so history doesn't scatter across phones and inboxes. AI candidate ranking helps surface strong matches from existing records, and AI voice screening, interview scheduling and onboarding keep candidates moving once they say yes. If you need to connect other systems, see the public API and developer access. You can review plans and pricing or book a demo to walk through it with your own workflow.

Keep your candidate database working for you

See how a white-label ATS with native SMS, an integrated email client and AI candidate ranking helps your recruiters fill orders from the records they already have.

FAQ

Questions, answered.

How often should a staffing agency clean its candidate database?

Small and often works better than big and rare. Update availability and contact details every time you speak to a candidate, merge duplicates on a regular schedule, and run stale-record outreach and archiving on a slower cycle. Write the schedule down and give it a named owner.

What is the fastest way to keep a talent database up to date?

Tie updates to events. Change availability when a candidate is placed or an assignment ends, and use short scheduled text check-ins to confirm who is free. Each reply refreshes the record without a separate cleanup task.

Should I delete candidates who stop responding?

Most agencies archive instead of deleting. Archiving removes the record from daily searches but keeps placement history and notes. Delete when a candidate asks or when your retention policy requires it, and set that policy with legal advice.

Which fields matter most in a staffing candidate record?

Contact details, consent and preferred channel, location, core skills, credentials with expiry dates, availability, pay expectation, source and a last verified date. Availability and last verified date do the most to keep the database usable.

How do I know if my candidate database is worth the effort?

Track placements that came from existing records, the share of submissions sourced from the database, time to first submission on rediscovered candidates and redeployment rate. If those numbers are low, look at stale records, mismatched segments or recruiter habits.

Build a faster, smarter hiring engine.

Start your 30-day free trial — no setup fees, no contracts. Or see ATS Mako in action.

30-day free trial · No setup fees · No long-term contracts