FAQ
Where do I get a Client ID and Client Secret?
Generate them in the Teamio application under Settings → Integrations → Candidate Import. There are separate credentials for the Sandbox (testing) and Production (live) environments.
The Client Secret is shown only once immediately after generation. Store it securely — it cannot be retrieved again. If you lose it, you can generate a new one, which will invalidate the old secret.
What attachment types are supported?
Use the following values in the type field of each attachment object:
CV— curriculum vitaeMOTIVATION_LETTER— cover letter or motivation letterOTHER— any other document
What is the maximum attachment size?
Each individual attachment file and the gdprNotice.consentText document must not exceed 10 MB. This limit applies to the base64-decoded file size.
How many attachments can I send?
The attachments array accepts a maximum of 5 attachments per request. The gdprNotice.consentText document does not count towards this limit.
Can I import the same candidate twice?
Yes, but each import will create a separate candidate record in Teamio. There is no deduplication based on name or email — the same person can be imported multiple times if submitted through the API.
How do I find the recruitment ID?
The recruitment ID is found on the position detail page in the Teamio application, in the “Links to the form and job ad” section on the right side. It is labeled Recruitment ID and has a copy button next to it.
If you are implementing this API on behalf of a client, ask them to open the relevant position in Teamio, locate the “Links to the form and job ad” section on the right side of the detail page, and copy the Recruitment ID from there. Use that value as the recruitmentId field in the API request.
Contact your Teamio administrator if you are unsure which ID to use.
How quickly does the import complete?
Processing is asynchronous and typically completes within a few seconds. Poll the status endpoint (GET /api/v1/candidate-reactions/{requestUuid}) with a short delay (e.g. every 2–5 seconds) until the status changes from PROCESSING to COMPLETED or FAILED.
Is there a sandbox / test environment?
Yes. Use POST /api/v1/candidate-reactions/test with your Sandbox credentials to validate a request payload without saving any data. A 204 No Content response confirms the payload is valid.
What is the rate limit?
The API enforces a per-company rate limit of 50 requests per minute. If you exceed it, you will receive a 429 Too Many Requests response. Implement exponential backoff and retry logic in your integration to handle this gracefully.