Teamtailor
Below is a table detailing common error codes returned by the Unified API, their meanings, and common remediation steps:| Error Code | Description | Probable Cause | Remediation Steps |
|---|---|---|---|
501 | Bad Request | The API key is missing permissions to access the given endpoint | Ask your customer to re-authenticate following the steps outlined in the relevant documentation |
Candidate hired_at date
- Given Teamtailor considers a Candidate as hired when they are in the
Hiredstage, thehired_atfield indicates the date when the Candidate entered theHiredstage.
Hibob
Missing or inaccurate employment information
termination_datemay be missing or null as well asemployment_statusif theView selected employees' Lifecycle sectionsis missing from the service user (refer to the Hibob guide for the full permission sets that your customer needs to enable)
| Error Code | Description | Probable Cause | Remediation Steps |
|---|---|---|---|
403 | Forbidden | If you receive an empty response or error 403, it likely means the permissions do not allow you to access the data you are trying to fetch. | Ask your customer to re-authenticate following the steps outlined in the relevant documentation |
Greenhouse
| Error Code | Description | Probable Cause | Remediation Steps |
|---|---|---|---|
404 | Not found | Greenhouse may also return 404 if an invalid Greenhouse user ID was provided in the on-behalf-of input in the account linking process. | Ask your customer to re-authenticate following the steps outlined in the relevant documentation |
SmartRecruiters
SmartRecruiters has restrictive rate limits and does not offer the ability of listing applications and interviews. This means a lot of requests need to be made to backfill this behaviour (and allow it in the unified API), combined with the rate limits it can take some time to list / sync applications & interviews. Due to these behaviours, theinterview endpoint by default has a filter applied to only return interviews for candidates in the following status INTERVIEW OFFERED HIRED TRANSFERRED, filtering out candidates that are in REJECTED WITHDRAWN LEAD and IN_REVIEW status.
Lever
| Error Code | Description | Probable Cause | Remediation Steps |
|---|---|---|---|
400 | Invalid Request | This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again. | Double-check the parameters you are sending (query parameters or body data) |
401 | Unauthorized | The credentials or scopes provided do not suffice to access this resource. | Verify the lever credentials in the integrations page per the relevant documentation |
403 | Forbidden | The Lever account settings don’t authorize the oauth app to perform the requested operation. | Talk to a Super Admin on your Lever account to update your API settings. |
429 | Too many requests | Lever imposes a limit of the number of requests a client can make in a short time. Read more about our rate limiting here. | Implement a retry strategy (you can do this easily via retryConfig of the StackOne sdk) |
500 | Server Error | There was an error on Lever or StackOne’s end. | Contact StackOne via your dedicated slack channel or support@stackone.com |
503 | Service Unavailable | Lever is temporarily down for maintenance. Please retry your requests with exponential backoff. | Implement a retry strategy (you can do this easily via retryConfig of the StackOne sdk) |
Bullhorn (ATS)
Bullhorn’s ATS system is a crossover with a traditional CRM based tool. It has relaxed validation rules that means some operations can fail silently or create records with invalid relationships. It is possible to supply an invalid or missingid when creating candidates/notes. When you create a Note with an invalid/missing:
candidate_id- the note is still created in the BH db with the invalid reference. This means it’s successful and retrievable but won’t appear anywhere in the UI.author_id- the author is defaulted to the api userid
Workable
Candidates created without an associated application will be added to a generic talent pool that appears in the Workable UI. These candidates will not be returned in the API response as the provider does not support returning talent pool candidates at time of writing.SAP SuccessFactors (LMS)
If you are integrating with SAP SuccessFactors via the OCN (Open Content Network) flow, you must use the/unified/lms/content/batch endpoint.
This is due to the OCN API having a rate limit of 1 request per 5 minutes and the batch endpoint has a number of configurations that help batch requests in a performant way.
content_id is not a required field for creating a completion.
Factorial HR
| Error Code | Description | Probable Cause | Remediation Steps |
|---|---|---|---|
403 | Forbidden | The OAuth token does not have the required scopes to access the requested resource. | Ensure the integration is authorized with the following scopes: documents, employees, company_legal_entities, contracts, finance, company_locations. Re-authenticate the connection with these scopes enabled. This applies only to OAuth-based integrations. |
CascadeHR (HRIS)
Time-off
We have used the IRIS Cascade HR Absence API to create time off records for employees. The Absence API has several limitations, including no validation for entitlement checks, key person blocking, overlapping rules, or approval workflows. All absences are treated as admin-entered and auto-approved.For full details, refer to the official documentation:
Absence Endpoint Limitations – IRIS Cascade HR APICreate The system currently supports applying a half day only on the start or end date of a time off request by using the start_half_day and end_half_day fields in the request body. Unlike CascadeHR UI, this system does not support marking arbitrary days within the date range as half days
Personio (HRIS)
Employee’s employment
The employee’s salary information will be accessible within the employment record if the employee has at least one Base Salary entry and the Legal Entity is selected in their profile. This is essential for retrieving thepay_rate as part of the salary in the API response.