All posts

Staffing Agencies: How to Verify Candidate Emails and Phone Numbers Before You Text or Email

··5 min read

A staffing agency should verify candidate contact data at the moment it's about to be used: run a live mailbox check on the emails and a format check on the phone numbers, then add a carrier lookup on US and Canadian numbers before any text campaign. That removes dead inboxes, numbers that can't exist and landlines from the send, and rewrites every number as E.164 (+13125550142) so your texting tool reads it correctly. Consent is a separate step, and you still need it.

Why candidate data goes bad

A staffing database is built over years from applications, job-board resumes, referrals and walk-ins. A few things happen to it that don't happen as quickly to a B2B list:

  • Candidates change numbers between assignments. Prepaid phones, new carriers and moves all break the number you had.
  • Personal email accounts get abandoned. A candidate who applied with a college address or an old ISP account may not read it any more.
  • Resumes are parsed, not typed. Resume parsers sometimes put a fax number in the phone field, glue an extension to a number, or read [email protected]. with the trailing full stop.
  • Job boards hand you their formats. One export has (312) 555-0142, another 312.555.0142, another +1 312-555-0142, and the duplicates don't match.

The result: a job alert goes to a few thousand people, a share of the texts fail, a share of the emails bounce, and nobody knows which rows were the problem.

Step 1: pull only the rows you'll contact

Don't verify your whole database on a schedule. Verify the segment you're about to message: candidates for this role, this location, this shift. It's cheaper in time, and the check is as fresh as it can be on the day you send.

Export the segment to CSV. If phone numbers sit in several columns (mobile, home, work), pick the one you'll text. The phone list segmenter helps split rows by which column is filled. If your ATS export has emails glued together in one cell, split them with the split multiple emails in a cell tool.

Step 2: check the emails

Upload the file to the verify page. Every address gets a live SMTP mailbox check: SimpleVerifier asks the receiving mail server whether the mailbox exists, without sending anything to the candidate. Results come back as valid, invalid, risky or unknown.

  • Invalid: remove from the email send. Try the phone.
  • Risky: usually a catch-all domain, a full mailbox or a role address. Catch-alls are reported as risky, never guessed valid, with a higher, medium or lower likelihood grade (catch-all grading). Candidates mostly use personal addresses on Gmail, Outlook or Yahoo, which aren't catch-alls, so risky rows here are often full or disabled inboxes.
  • Unknown: the server didn't answer clearly. Re-check later.

Keeping bounces low protects the sending reputation of the domain your recruiters use for every other email they send.

Step 3: validate the phone numbers

The same upload checks the phone column. Each number gets a status (can it exist in its country's numbering plan?), the E.164 form, the country and the numbering-plan type where the country defines it.

Things this step catches in candidate data:

  • Numbers missing a digit, or with an extension glued on (3125550142x12).
  • Numbers from the wrong country because the country code was dropped. Numbers without a + are read as US numbers, so for international candidates add the code first with the add or remove country code tool.
  • Placeholder numbers like 000-000-0000 or 555-555-5555 typed to get past a required field. The fake phone number checker flags those, plus repeated digits, straight runs and reserved fictional ranges.

Step 4: separate mobiles from landlines before texting

In the US and Canada, mobile and landline numbers share area codes, so a format check alone often says "mobile or fixed line". Before a text campaign, run a live carrier lookup: it returns the current carrier and the carrier-reported line type, mobile, landline or VoIP, and follows numbers that were ported.

What to do with each type:

Line type Text it? Call it?
Mobile Yes, with consent Yes
Landline No, the text usually can't be delivered Yes
VoIP Some can receive texts, some can't Yes

Test one number first with the landline or mobile checker. More on the edge cases in can you text a landline and VoIP numbers in lead lists.

Step 5: consent and quiet hours

Recruiting texts are still marketing-style messages to personal mobiles. In the US, the TCPA generally requires prior consent for automated texts, and the 10DLC registration process for business texting asks how you collect it. Keep a record of how each candidate opted in to job alerts (application form, text keyword, verbal on a call) and honour STOP replies.

Useful tools:

Background reading: prepare an SMS list for 10DLC and why SMS delivery fails. This isn't legal advice.

Step 6: write the results back

Import the cleaned file into your ATS with two extra columns: the verification result and the date checked. Next time the candidate comes up for a role, you know whether the data was good last month or three years ago. Dedupe on the E.164 number and the lower-cased email first, using remove duplicate phone numbers.

If your ATS can call a webhook or an API, check new applications as they arrive with the API instead of in batches.

What it costs

  • Free: 100 checks with a Google sign-in, no card.
  • Starter, $9 a month: 2,500 emails a month, email only.
  • Pro, $39 a month: Unlimited email verification*, phone format checks, the email finder, the API and an MCP server your AI assistant can call.
  • Pro + Phone, $49.99 a month: adds 5,000 live carrier lookups a month.

*Fair use: the first 100,000 checks a month at full speed, then slower, never cut off.

Details on pricing. Upload a segment at /verify.

More reading: verifying candidate and client emails for recruiters, validate phone numbers for SMS, Twilio SMS error codes.

Common questions

Why do texts to candidates fail?

The common reasons are a number that no longer exists, a landline, a number formatted without the country code, or a carrier filtering the message. Validation and a carrier lookup remove the first three before you send.

How do I verify a candidate list from a job board export?

Export the candidates to CSV, keep phone numbers as text, and upload the file to a verifier that checks emails and phones together. You get each email's mailbox status and each number's validity, E.164 form, country and type.

Should I remove candidates whose email comes back risky?

Not automatically. Risky usually means a catch-all domain or a full inbox. For a candidate you can reach by phone, keep the row and confirm the email on your next call.

Can validation tell me if a candidate still uses the number?

No. It tells you the number can exist and, with a carrier lookup, what line type it is now. Only a reply or an answered call confirms the person.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.