Implementation overview
Implementation type: Direct API integration Authentication: TempWorks personal access token Note format: Plain text TempWorks currently has one production configuration for Surge and a standard TempWorks Cloud flow under development for Employnet. Both useTempWorksAtsClient, but they intentionally enter different synchronization paths.
Operating modes
The standard flow does not enable candidate sync. A candidate is read in the context of a Job Order Candidate application rather than by sweeping the full employee directory.
Connection configuration
TEN-934 adds these values to each TempWorks integration:- API base URL;
- Account SID; and
- write-only Auth Token.
org_config.config, the existing per-integration typed configuration accessor. Missing values fail closed for every TempWorks integration. Surge uses the same per-integration configuration and has no environment-variable fallback.
Current verified coverage
Surge extension
- Incremental employee/candidate streaming into one configured Tenzo job
- Employee detail and resume retrieval
- Employee notes and attachments
- Employee interest-code and hire-status operations
- Assignment caching and Surge placement communication behavior
- Job Order detail lookup for assignment and placement workflows
Standard TempWorks flow
TEN-934 now provides:- Job Order streaming and detail reads;
- Job Order Candidate syncing through TempWorks’ candidate search endpoint, with individual applications loaded from the Job Order Candidate details endpoint. Tenzo stores both IDs as
job_order_id:job_order_candidate_idso it can find the same application again; - dynamic Job Order Candidate status retrieval as application stages;
- active Employee and Job Order custom-field definition reads, plus Job Order custom-field value reads; and
- Employee creation for sourced or uploaded candidates using the candidate’s state and target Job Order’s branch, application creation, status writeback to the exact candidacy, Employee and Job Order custom-field writeback, and validated basic Job Order PATCH support, with request failures propagated.
- Job Orders as Tenzo jobs;
- Job Order Candidates as Tenzo applications;
- reversible application identity containing both Job Order ID and Job Order Candidate ID;
- Job Order Candidate statuses as application stages;
- active Employee and Job Order custom-field reads; and
- Employee and application creation for sourced or uploaded candidates, status writeback to the exact candidacy, Employee custom-field writeback after an interview, and Job Order writeback for the Tenzo Job Link.
POST /Employees endpoint only when the target Job Order has a branch ID and the Tenzo candidate has a state that can be sent as the required TempWorks region. Missing required data fails closed before any TempWorks write. After TempWorks returns the Employee ID, Tenzo attempts to read the Employee back and uses the existing Job Order Candidate creation path. If that immediate read is delayed, Tenzo retains the validated ID from the create response so a retry does not create a duplicate Employee.
The basic Job Order PATCH implementation accepts only field paths explicitly documented by TempWorks and sends replace operations through the shared ATS request transport. TEN-934 does not expose the full set of operational Job Order fields in the provider field picker; choosing which fields users may edit remains separate product scope.
Initial rollout state
Provision a standard TempWorks Cloud integration with job, applicant, and candidate sync disabled. Enable job sync only after the tenant’s authentication, Job Order search metadata, hierarchy scope, and a bounded job page are verified. Enable applicant sync only after jobs, candidacy identity, status mapping, and a bounded candidacy page are verified. Candidate sync remains disabled unless full employee-directory sync is separately approved.Interview summaries, PDFs, and custom fields
The TempWorks Swagger reference and public OpenAPI description do not expose application-scoped notes, documents, or custom data as resources equivalent to the Employee and Job Order resources:PUT /JobOrders/{id}/candidates/{jobOrderCandidateId}exposes one nullable, overwriteablecomment, not an append-only message or note resource.- No
/JobOrders/{id}/candidates/{jobOrderCandidateId}/documentsresource is documented. TempWorks documents uploads to other entities, including the Employee document upload. - No
/JobOrders/{id}/candidates/{jobOrderCandidateId}/CustomDataresource is documented. The public contract exposesCustomDatafor Employees and Job Orders instead.
Other unsupported operations
- Rejecting with a separate disposition reason
- Re-engagement automation
- Employnet assignment or placement automation
Related files
server/ats/tempworks/tempworks_ats_client.pyserver/ats/tempworks/tempworks_library.pyserver/ats/tempworks/tempworks_models.pyserver/ats/candidate_sync_controller.pyserver/ats/config/providers.pyserver/ats/config/models.pyserver/ats/org_config.py