This endpoint lets you look up the "hiring status" for an employee. It's useful in Applicant Tracking and similar hiring workflows to determine whether an employee already has a payroll profile history, and what action to take next.
Simply provide a demographic data field and we'll let you know whether a worker with that data exists in the company's worker census. If so, we'll return basic information about that worker's profile, so you can take appropriate action.
How to query this endpoint
This endpoint is designed to look up one employee at a time. You can provide multiple data fields in the same request to allow us to locate an employee profile using as much data as possible.
This endpoint has no "error" cases. If no employee is found with the given lookup data, it will return a "New Hire" response (see below) indicating that you may create a new profile for an employee with that info.
Always use the most static data you can!It's important to use the most "static" data field possible when looking up worker hiring status, because when data changes over time, it becomes impossible to locate worker profiles containing the old data. This can cause hiring discrepancies and manual work to resolve them.
The preferred order of data fields to look up is:
- Social security number (either complete or the last 4 digits)
- First name
- Last name
- Date of birth
- Phone number
- Email address
You can also provide an "external worker ID" field, which is useful if you manage your own employee IDs and provide them to Everee when you create employee profiles. You should provide all the fields you can in a single call, including the "external worker ID" if you have one.
The four hiring scenarios
There are four "hiring scenarios", and you'll always receive one of these four scenarios back in the hiringScenario field. The possible values are:
| Value | What it means |
|---|---|
NEW_HIRE | No employee with that data exists in payroll, so this is a brand new hire, and not a re-hire. ✅ You may create a profile for the new employee. |
ACTIVE | An employee with that data exists in payroll, and they are actively employed. ❌ You should not create a new profile for this employee because it would be a duplicate. Instead, link it to your system using the workerId and externalWorkerId fields. |
ELIGIBLE_FOR_REHIRE | An employee with that data exists in payroll. They were active and subsequently separated, and marked eligible for rehire. ✅ Rehire the worker using the Rehire a worker endpoint, providing a rehireDate equal to or later than hiringStatus.earliestValidHireDate. This restores their existing profile rather than creating a new one. Exception: if the worker's type is also changing as part of this rehire (for example, a former contractor returning as a W-2 employee), don't use the rehire endpoint — instead, you may create a new profile for the employee using the usual hiring flow. |
NOT_ELIGIBLE_FOR_REHIRE | An employee with that data exists in payroll. They were active and subsequently separated. ❌ You should not create a new profile for this employee because they were marked as "not eligible for rehire" when they were separated, usually because they were terminated for cause . Generally, you should not proceed with hiring this employee. |
How matching works, and how to use externalWorkerId
externalWorkerIdThe lookup returns the single best match for the data you send. It's a best-effort match, not an exact one, so treat the answer as a recommendation to verify, not as proof of identity.
- More matching fields make a better match. A complete 9-digit
taxpayerIdentifieris the strongest, followed by yourexternalWorkerId, email, phone, date of birth, and name. - A different
externalWorkerIdrules a worker out. If you send anexternalWorkerIdand a worker already has a different one on file, that worker isn't returned, so that two people with the same name aren't confused. The exception is a worker whose complete 9-digittaxpayerIdentifiermatches the one you sent. That is returned even if the external IDs differ, andexternalWorkerIdMismatchistrue. A last-4taxpayerIdentifierdoes not make this exception. - A worker with no external ID on file is never ruled out by this check.
An external ID that is wrong in Everee can hide a workerIf an existing worker's external ID in Everee doesn't match yours, and you don't send a complete
taxpayerIdentifier, the lookup can returnNEW_HIREfor a person who already exists. Creating a profile in that case produces a duplicate. Before you create a profile for someone you already track, check the worker directly, or look them up again with their fulltaxpayerIdentifier.
When the returned externalWorkerId isn't yours
externalWorkerId isn't yoursIf externalWorkerIdMismatch is true, or the externalWorkerId in the response isn't the one you sent:
- Confirm it's the right person by comparing the name, email, and phone in the response.
- If it is, don't overwrite your own mapping with the returned value. Correct the ID in Everee with Update external worker ID so both systems agree.
- If it isn't, don't use the returned
workerId.
To rebuild your mapping in bulk, list your workers with List workers and match on stable data, rather than relying on lookup results.
Validation rules & errors
| Validation rule & error message | HTTP code |
|---|---|
| At least one lookup field must be populated. | 400 |
You must provide both firstName and lastName fields, not just one or the other. | 400 |
You must provide at least one field in addition to firstName and lastName. | 400 |
You must provide at least one field in addition to dateOfBirth. | 400 |
You must provide either: at least one field in addition to the last 4 digits of taxpayerIdentifier, or a complete 9-digit taxpayerIdentifier. | 400 |
The field taxpayerIdentifier doesn't match any of the valid formats. | 400 |