hyreflow
Integrations

Carerix

Recruiting ATS/CRM reads and writes via the GraphQL API. Candidates, vacancies, companies, contacts, matches and notes.

Use Carerix as the ATS/CRM write target at the end of a recruiting pipeline: push enriched candidates in, and read vacancies, companies, contacts and matches back out.

Free on hyreflow (0 credits): runs on your own Carerix connection. You pay only for the upstream sourcing/enrichment.

Connect your Carerix

Takes about five minutes. You need to be able to manage clients in Carerix (Maintenance > Identity Access).

Create a confidential client in Carerix

In Carerix, open Maintenance > Identity Access > Clients and add a new confidential client. Name it hyreflow so you can spot it later, make sure it is Active, and give it the default scope urn:cx/cx5Wrapper:data:manage.

Set what the client may read and write

On the client's Permissions, grant read access to candidates (employees), and read/write on the records you want hyreflow to change: candidates, matches and notes, plus read on vacancies, companies and contacts. Hyreflow can only do what this client is allowed to do.

Copy the Client ID, secret and your Carerix URL

Copy the client's Client ID and Client Secret, and the address you log in to Carerix at, for example https://acme.carerix.net. hyreflow reads your tenant (acme) from it; the bare name works too.

Paste them into hyreflow

In hyreflow, open Integrations (recruit.hyreflow.ai/dashboard/integrations) and find the Carerix card under Recruiting CRM. Click Connect, paste the Client ID, Client Secret and Carerix URL, then click Save and test. You can also run hyreflow byok set carerix.

The Connect Carerix window in Hyreflow, with the Carerix Client ID, Client Secret and Carerix URL fields and the Save and test button

You're connected

hyreflow requests a token from Carerix straight away and refreshes it automatically. When the card says connected, every Carerix tool runs on your own client.

If something goes wrong

  • "Carerix rejected this Client ID" … tenant not found: the Carerix URL is not your own login address (copy it from the browser when you are signed in to Carerix), or your tenant signs in on a Carerix login host other than id.carerix.io, which is not supported yet.
  • "Carerix rejected this Client ID" … invalid_client: the Client ID and secret don't match, or the client is not active. Copy both again from the same client.
  • "Carerix rejected this Client ID" … invalid_scope: the client does not have the urn:cx/cx5Wrapper:data:manage scope.
  • A tool fails with a 403: the client is missing a permission for that record type. Add it on the client's Permissions in Carerix, then click Save and test again.
  • To disconnect: on hyreflow's Integrations page, open the Carerix card's Manage menu and choose Disconnect (or Remove key), then deactivate or delete the hyreflow client in Carerix so its secret can't be used again.

Capabilities

ToolDoesCost
pingVerify the credentials and tenant (safe read-only pilot)Free
list_candidatesOne page of candidates, oldest first, optionally filtered by a qualifierFree
search_candidatesCandidates matching a qualifier such as emailAddress = '[email protected]'Free
get_candidateFetch a candidate by idFree
create_candidateCreate a candidate, with Carerix duplicate detection on by defaultFree
list_vacanciesOne page of vacancies, oldest firstFree
get_vacancyFetch a vacancy by idFree
list_companiesOne page of client companiesFree
get_companyFetch a company by idFree
list_contactsOne page of client contactsFree
get_contactFetch a contact by idFree
list_matchesOne page of matches, the candidate-to-vacancy links that carry the pipeline statusFree
get_matchFetch a match by idFree
update_matchUpdate a match, for example its notes or pipeline statusFree
list_notesOne page of notesFree
get_noteFetch a note by idFree
create_noteAdd a note to a candidate, vacancy, match, company or contact (pass your tenant's note type as toDoTypeKey)Free

Guidance

  • Filters are Carerix qualifier strings: list_* and search_candidates take a qualifier. Each call returns one page: page starts at 0 and page_size is at most 100 (a larger value is rejected, not clamped). Keep raising page until a page comes back short.
  • Record ids are strings.
  • A GraphQL error returned with an HTTP 200, or a missing result, is surfaced as an error, not as an empty result.
  • No delete operation is exposed for any record: pushes and edits only.
  • Never blind-retry a create or update: a lost response may already have applied the write. Reads retry on rate limits and server errors; writes are never retried after a timeout or server error, only after a rate limit or an authentication refusal (HTTP 401, or GraphQL UNAUTHENTICATED on the top-level field), which Carerix rejects before running them.
  • Status ids are tenant-specific, so read a match first and reuse the status id it carries before moving one.
  • Pilot one record first: required fields and the duplicate-detection key vary by tenant setup, so create a single candidate and check it in Carerix before a bulk push.
hyreflow tools execute carerix create_candidate \
  --payload '{"payload":{"firstName":"Ada","lastName":"Lovelace","emailAddress":"[email protected]"}}'

Enriched candidates land here at the end of the pipeline: source → enrich → verify → create_candidate.

Rate limits & bulk writes

Carerix allows 10 requests/second per client, which is 600 requests/minute. The adapter paces to that number per client and tenant rather than guessing a conservative default. Use create_candidates_batch for large pushes. See Bulk pushes to ATS / recruiting CRM.

On this page