Skip to main content

APIs Deeper Signals calls

A.1 Cadence​

JobCadenceSurfaceWorkday APIs called
Assess-candidate pollEvery 10 minutesATSGet_Assess_Candidate, Get_Candidates, Get_Job_Requisitions, Get_Organizations
Hired-candidate pollEvery 15 minutesATSGet_Candidates (filtered by Updated moment)
Worker (HRIS) syncEvery 30 minutes (incremental)HRISGet_Workers (filtered by Transaction_Date_Range)
OAuth access tokenOn demand, cached about 1 hourBothPOST /ccx/oauth2/{tenant}/token (refresh_token grant)
Assessment-finished write-backEvent-driven (no schedule)BothAssess_Candidate, Put_Candidate_Attachment, Put_Worker_Document, REST customObject/v2

A.2 By Workday operation​

SOAP serviceOperationUsed for
RecruitingGet_Assess_CandidateList newly-assessed candidates in the time window.
RecruitingGet_Candidates(a) Fetch candidate email and personal data after a new assess event. (b) Detect newly hired candidates by polling for updated candidates with a Worker_ID populated.
RecruitingGet_Job_RequisitionsRead recruiter (campaign owner), supervisory organisation, and posting title for a job requisition.
RecruitingGet_OrganizationsResolve the supervisory organisation's manager (the hiring manager) so they can be granted campaign-scoped access in Deeper Signals.
RecruitingAssess_CandidateWrite the assessment status, score, results URL and comment back to the candidate's assessment record on completion.
RecruitingPut_Candidate_AttachmentAttach the assessment PDF report(s) to the candidate.
Human_ResourcesGet_WorkersBulk worker sync (incremental and full).
StaffingPut_Worker_DocumentAttach the assessment PDF report(s) to the worker.
RESTPOST /api/customObject/v2/{tenant}/customObjects/{name}?bulk=true&updateIfExists=truePush per-dimension scores into the candidate or worker custom object. Idempotent — re-runs replace prior rows.

A.3 Idempotency and locking​

  • All scheduled jobs hold a distributed lock keyed by job name (and integration ID for the HRIS sync). Overlap is skipped, never run in parallel.
  • The REST customObject/v2 endpoint is called with bulk=true&updateIfExists=true so a re-run of the same assessment overwrites the prior rows — there are no duplicates.
  • SOAP Put_Candidate_Attachment and Put_Worker_Document use Add_Only="true" so re-running won't update other documents accidentally.