hyreflow docshyreflow docsDocumentation
Integrations

Crelate

Recruiting ATS/CRM reads and writes. Contacts (candidates and client contacts), jobs, companies, pipeline stages and notes.

Use Crelate as the ATS/CRM write target at the end of a recruiting pipeline: push enriched candidates in, put them on a job's pipeline, and read jobs, companies and contacts back out.

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

Connect your Crelate

Takes about two minutes. API access is part of Crelate's Business plan and higher.

Turn on API Access in Crelate

In Crelate, open Your Profile & Preferences (Settings > My Settings & Preferences), go to API Access and turn on Enable API Access. Crelate generates your API key the first time you enable it.

Ask an admin if you can't see it

If API Access is not available to you, a Crelate admin needs to allow it for your role: Security > User Roles > your role > Misc > API Access = Allowed.

Paste the key into hyreflow

In hyreflow, open Integrations (recruit.hyreflow.ai/dashboard/integrations) and find the Crelate card under Recruiting CRM. Click Connect, paste the API key, then click Save and test. You can also run hyreflow byok set crelate.

You're connected

hyreflow checks the key against Crelate straight away. When the card says connected, every Crelate tool runs on your own account.

The key acts as the Crelate user who created it, so hyreflow can read and write what that user can. Regenerating or disabling the key in Crelate breaks the connection until you paste the new one.

Each member uses their own key. Because a Crelate key acts as its user, the owner's key is the workspace key and every member adds their own under Add your key, so their work shows up under their name in Crelate. Until a member adds theirs, Crelate won't run for them. See Personal keys.

If something goes wrong

  • A 401 or 403 on Save and test: the key is wrong, API Access was turned off or the key was regenerated, or your role does not allow API Access. Copy the key again from API Access in Crelate.
  • A tool fails with a 403: the Crelate user behind the key lacks access to that record type. Change the role in Crelate, then try again.
  • To disconnect: on hyreflow's Integrations page, open the Crelate card's Manage menu and choose Disconnect (or Remove key), then disable API Access in Crelate (or regenerate the key) so the old key can't be used again.

Capabilities

ToolDoesCost
pingVerify the key (returns the user it belongs to; safe read-only pilot)Free
list_contactsOne page of contacts, optionally filtered (for example by emails, record_types, job_ids)Free
search_contactsKeyword search over contacts (summary fields only)Free
get_contactFetch a contact by idFree
create_contactCreate a contact (candidate or client contact)Free
update_contactPartial update of a contact: only the fields you send changeFree
list_jobsOne page of jobs, optionally filteredFree
search_jobsKeyword search over jobsFree
get_jobFetch a job by idFree
list_workflow_statusesThe pipeline stages a contact can sit at on a jobFree
add_contact_to_jobPut a contact on a job's pipeline at a stage (by status_name or status_id)Free
list_companiesOne page of companies, optionally filteredFree
search_companiesKeyword search over companiesFree
get_companyFetch a company by idFree
list_notesOne page of notesFree
create_noteAdd a note to a contact, optionally linked to a jobFree
create_contacts_batchCreate many contacts, pacedFree

Guidance

  • A contact is any person: a candidate and/or a client contact, told apart by RecordType.
  • Paging: list_* take offset (from 0) and limit (at most 200); search_* take limit (at most 100). A larger value is rejected, not clamped. Keep raising offset while the response's Metadata.MoreRecords is true. Search returns summary fields only, so use get_* for the full record.
  • Check for duplicates first: Crelate answers a create that matches your workspace's duplicate rules with a 409. Run list_contacts with emails before creating, and use update_contact on the match instead.
  • Create fields: FirstName, LastName, EmailAddresses_Work (Value, IsPrimary), Websites_LinkedIn (Value) and PhoneNumbers_Mobile (Value, in E.164 with the leading +). Which fields are required is configured per Crelate account.
  • Tags are replaced whole on update_contact, so send the full list.
  • Read the stages first: add_contact_to_job needs exactly one of status_name or status_id; list them with list_workflow_statuses.
  • No delete operation is exposed for any record: pushes and edits only.
  • Pilot one record first: create a single contact and check it in Crelate before a bulk push.
hyreflow tools execute crelate create_contact \
  --payload '{"payload":{"FirstName":"Ada","LastName":"Lovelace","EmailAddresses_Work":{"Value":"[email protected]","IsPrimary":true}}}'

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

Rate limits & bulk writes

Crelate limits requests by caller IP (about 120 per minute), so hyreflow paces all Crelate calls at 100 requests per minute, just under that cap. Use create_contacts_batch for large pushes. See Bulk pushes to ATS / recruiting CRM.