Skip to main content

Implementation Overview

Implementation Type: Kombo-based Integration Note Format: Plain Text Status: Production Ready iCIMS is a thin Kombo-based provider. Reading jobs, applications, and candidates, moving applications between stages, and creating applications all work through Kombo’s unified API. Job custom fields are the exception: Kombo’s unified iCIMS payload never populates them, so the configured “Tenzo Enabled” job field is fetched directly from iCIMS via the passthrough API (see below).

Configuration

Interview Summary & PDF Writeback (Passthrough)

Because Kombo’s unified iCIMS connector has no note endpoint and rejects non-CV attachments, interview results are written back through the iCIMS passthrough API by PATCHing the applicant workflow directly. The applicant-workflow id used is the Kombo application’s remote_id (not the Kombo internal id). These destinations are configured per org in the ATS Integration UI, under the Custom Field Mapping section, as free-text field ids (e.g. field675560). They are free-text rather than dropdowns because these applicant-workflow field ids are not surfaced by Kombo’s unified custom-fields endpoint.

Interview Summary (Supported)

Set iCIMS Interview Summary Field ID to the applicant-workflow custom field id that should receive the interview summary text. When set, the post-call flow writes the summary via:
Gated purely on the presence of the configured field id (leave it blank to skip). The PATCH overwrites the same field, so a redelivered post-call flow is idempotent. Write failures do not prevent the independent PDF write from being attempted, but they propagate through post-processing retries. Persistent failures ultimately dead-letter for investigation.
Set iCIMS Interview PDF Field ID to the applicant-workflow binary field id that should receive the interview PDF. When set, the post-call flow writes the PDF via:
The PDF rides as a Content-Transfer-Encoding: base64 part so the request body stays ASCII and survives Kombo passthrough’s UTF-8 forwarding intact (verified byte-identical round-trip); iCIMS decodes it back to the original bytes on receipt. Gated purely on the presence of the configured field id (leave it blank to skip). Skips cleanly when the call produced no PDF (no gradeable content, or the org has no PDF template). The PATCH overwrites the same binary field, so a redelivered post-call flow is idempotent. Write failures do not undo the independently attempted summary write, but they propagate through post-processing retries. Persistent failures ultimately dead-letter for investigation.
Set iCIMS Tenzo Enabled Job Field ID to the job custom field id (e.g. field51234) that marks a job as Tenzo enabled. When set, job enrichment fetches the value directly from iCIMS via:
The field then appears in the integration rules editor as a boolean job custom field (custom_field_values.<field id>) and rules evaluate against it. Yes/no and true/false values are normalized to booleans. Gated purely on the presence of the configured field id (leave it blank to skip). Fetch failures are logged and fail soft — the job still syncs, just without custom field values. After configuring the field id, re-sync jobs: cached enhanced jobs won’t carry the field until re-synced.

Known Limitations

Notes & non-CV attachments not supported via Kombo Kombo’s iCIMS connector exposes no note endpoint and its attachment endpoint accepts CV/resume attachments only. Interview summaries and the interview PDF are instead written to configured applicant-workflow custom fields via passthrough (see above).
Disposition Reasons iCIMS does not expose a disposition reason bank through Kombo, so rejection and not-interested flows are handled as stage moves.
  • Implementation: server/ats/icims/icims_ats_client.py
  • Models: server/ats/icims/icims_models.py
  • Config fields: server/ats/config/models.py (IcimsInterviewSummaryCustomField, IcimsInterviewPdfCustomField, IcimsTenzoEnabledJobCustomField)
  • Config registration: server/ats/config/providers.py (IcimsConfig)
  • Typed accessors: server/ats/org_config.py (icims_interview_summary_custom_field, icims_interview_pdf_custom_field, icims_tenzo_enabled_job_custom_field)
  • Field Mappings: server/ats/field_type_mapper.py (ICIMS_FIELD_MAPPINGS)

See Also