APIs Deeper Signals calls
A.1 Cadence
| Job | Cadence | Surface | Workday APIs called |
|---|---|---|---|
| Assess-candidate poll | Every 10 minutes | ATS | Get_Assess_Candidate, Get_Candidates, Get_Job_Requisitions, Get_Organizations |
| Hired-candidate poll | Every 15 minutes | ATS | Get_Candidates (filtered by Updated moment) |
| Worker (HRIS) sync | Every 30 minutes (incremental) | HRIS | Get_Workers (filtered by Transaction_Date_Range) |
| OAuth access token | On demand, cached about 1 hour | Both | POST /ccx/oauth2/{tenant}/token (refresh_token grant) |
| Assessment-finished write-back | Event-driven (no schedule) | Both | Assess_Candidate, Put_Candidate_Attachment, Put_Worker_Document, REST customObject/v2 |
A.2 By Workday operation
| SOAP service | Operation | Used for |
|---|---|---|
| Recruiting | Get_Assess_Candidate | List newly-assessed candidates in the time window. |
| Recruiting | Get_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. |
| Recruiting | Get_Job_Requisitions | Read recruiter (campaign owner), supervisory organisation, and posting title for a job requisition. |
| Recruiting | Get_Organizations | Resolve the supervisory organisation's manager (the hiring manager) so they can be granted campaign-scoped access in Deeper Signals. |
| Recruiting | Assess_Candidate | Write the assessment status, score, results URL and comment back to the candidate's assessment record on completion. |
| Recruiting | Put_Candidate_Attachment | Attach the assessment PDF report(s) to the candidate. |
| Human_Resources | Get_Workers | Bulk worker sync (incremental and full). |
| Staffing | Put_Worker_Document | Attach the assessment PDF report(s) to the worker. |
| REST | POST /api/customObject/v2/{tenant}/customObjects/{name}?bulk=true&updateIfExists=true | Push 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/v2endpoint is called withbulk=true&updateIfExists=trueso a re-run of the same assessment overwrites the prior rows — there are no duplicates. - SOAP
Put_Candidate_AttachmentandPut_Worker_DocumentuseAdd_Only="true"so re-running won't update other documents accidentally.