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
| Tool | Does | Cost |
|---|---|---|
ping | Verify the key (returns the user it belongs to; safe read-only pilot) | Free |
list_contacts | One page of contacts, optionally filtered (for example by emails, record_types, job_ids) | Free |
search_contacts | Keyword search over contacts (summary fields only) | Free |
get_contact | Fetch a contact by id | Free |
create_contact | Create a contact (candidate or client contact) | Free |
update_contact | Partial update of a contact: only the fields you send change | Free |
list_jobs | One page of jobs, optionally filtered | Free |
search_jobs | Keyword search over jobs | Free |
get_job | Fetch a job by id | Free |
list_workflow_statuses | The pipeline stages a contact can sit at on a job | Free |
add_contact_to_job | Put a contact on a job's pipeline at a stage (by status_name or status_id) | Free |
list_companies | One page of companies, optionally filtered | Free |
search_companies | Keyword search over companies | Free |
get_company | Fetch a company by id | Free |
list_notes | One page of notes | Free |
create_note | Add a note to a contact, optionally linked to a job | Free |
create_contacts_batch | Create many contacts, paced | Free |
Guidance
- A contact is any person: a candidate and/or a client contact, told apart by
RecordType. - Paging:
list_*takeoffset(from 0) andlimit(at most 200);search_*takelimit(at most 100). A larger value is rejected, not clamped. Keep raisingoffsetwhile the response'sMetadata.MoreRecordsis true. Search returns summary fields only, so useget_*for the full record. - Check for duplicates first: Crelate answers a create that matches your workspace's duplicate rules with a 409. Run
list_contactswithemailsbefore creating, and useupdate_contacton the match instead. - Create fields:
FirstName,LastName,EmailAddresses_Work(Value,IsPrimary),Websites_LinkedIn(Value) andPhoneNumbers_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_jobneeds exactly one ofstatus_nameorstatus_id; list them withlist_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.
ClinicalTrials.gov
Pharma/biotech/CRO hiring signals: trial activity predicts hiring before jobs are posted. Free public API; uses Essie query syntax.
Bulk pushes to ATS / recruiting CRM
Rate-limited batch helpers, API limits, and cost gating for high-volume writes to Bullhorn, JobAdder, Loxo, Recruiterflow, Vincere, Atlas, Recruit CRM, Spott, TrackerRMS, Carerix and Crelate.