> ## Documentation Index
> Fetch the complete documentation index at: https://www.composer.id/llms.txt
> Use this file to discover all available pages before exploring further.

# iCIMS

> iCIMS (ATS): the API posture, publish target and field mapping composerID publishes a decision reference through.

This page records how composerID publishes into iCIMS: the vendor's API posture, the publish target and field mapping, and the documentation each claim rests on. It is for anyone evaluating the connection or building against it.

iCIMS is an enterprise ATS (the iCIMS Talent Cloud) whose Platform API exposes People, Jobs and Applicant Workflows as profiles under a per-customer path, with a Search API for filtered reads that return matching ids. The Job profile is the requisition object, and tenant administrators define custom fields that the API reads, writes and searches by their customfield id. composerID creates the Job profile for an approved permanent hire and stamps the Intent ID into a tenant-created Job custom field, which the Search API can filter on for read-back.

<Info>
  Category: ATS. Coverage status: Specification mapped. Vendor documentation: public developer portal.
</Info>

## Integration path

How composerID connects to this destination, at a glance.

| Step                 | Detail                                                                                                                                                                |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication       | HTTP Basic with a dedicated API user that the tenant admin provisions in System Configuration, with per-object and per-field permissions (IP allowlisting is common). |
| composerID publishes | Job profile: POST jobs (Job profile) under /customers/\{customerId}                                                                                                   |
| Intent ID lands on   | `Job` `job.customfield{id}`, written into the destination record                                                                                                      |
| Back-sync            | Webhooks and polling: some lifecycle events are pushed, the rest are read on a schedule.                                                                              |

## Vendor documentation

<Columns cols={2}>
  <Card title="iCIMS Developer Resources (portal root)" icon="external-link" href="https://developer.icims.com/" horizontal />

  <Card title="iCIMS REST API reference" icon="external-link" href="https://developer.icims.com/REST-API" horizontal />
</Columns>

## API posture

| Aspect         | Detail                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication | HTTP Basic with a dedicated API user that the tenant admin provisions in System Configuration, with per-object and per-field permissions (IP allowlisting is common). iCIMS also offers OAuth 2.0 client credentials for newer Talent Cloud and Marketplace integrations; which flow a tenant runs is confirmed at onboarding.                                                         |
| Style          | REST, JSON, per-customer path. Profiles are read by GET on the object id, created by POST (the new id comes back in the Location header) and updated by PATCH with a partial body. The Search API takes a JSON filter set (field name, values, operator) and returns matching ids, followed by profile GETs; the exact verb and encoding are indicative until confirmed at onboarding. |
| Base URL       | [https://api.icims.com/customers/\\\{customerId\\}](https://api.icims.com/customers/\\\{customerId\\})  (resources: people, jobs, applicantworkflows, companies; search at .../search/\{objectType})                                                                                                                                                                                   |
| Webhooks       | Tenant-configured outbound notifications push job, person and workflow-status changes to a registered HTTPS endpoint. Coverage and payload are set per tenant and not every field change raises an event, so composerID pairs them with Search API polls on the Intent ID custom field.                                                                                                |
| Events posture | Webhooks and polling                                                                                                                                                                                                                                                                                                                                                                   |
| Rate limits    | Throttled per customer with 429 responses; iCIMS publishes no single figure we can cite. Plan for low tens of requests per second, back off on 429; indicative until confirmed at onboarding.                                                                                                                                                                                          |
| Objects        | people, jobs (requisition profile: jobtitle, folder as status, hiringmanager, recruiter, joblocation, numberofpositions, positiontype, customfield\{id}), applicantworkflows (candidate-to-job link and status), companies, talentpools; field names indicative until read from the tenant's profile schema                                                                            |

## Publish target and field mapping

Each object below pairs the canonical intent fields with the destination's own fields and operations. The mapping is indicative until it is confirmed against a tenant at onboarding.

<AccordionGroup>
  <Accordion title="Job profile" icon="arrow-right-left" description="Open the approved requisition">
    | Mapping                  | Detail                                                                                                                                                                                           |
    | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | Canonical to destination | role\_title -> jobtitle, headcount -> numberofpositions, hiring\_manager -> hiringmanager, location -> joblocation, status -> folder                                                             |
    | Target                   | POST jobs (Job profile) under /customers/\{customerId}                                                                                                                                           |
    | Requirement              | Required                                                                                                                                                                                         |
    | Notes                    | Field names follow the iCIMS Job profile schema and are indicative until read from the tenant; folders, position types and locations are tenant lists resolved to the tenant's ids at onboarding |
  </Accordion>

  <Accordion title="Intent ID correlation" icon="arrow-right-left" description="Carry the Intent ID">
    | Mapping                  | Detail                                                                                                                                                                                                                                                                                                                                                                                                   |
    | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | intent\_id -> customfield\{id} on the Job profile                                                                                                                                                                                                                                                                                                                                                        |
    | Target                   | Job profile custom field (customfield\{id}), created by the tenant admin and enabled for the API user                                                                                                                                                                                                                                                                                                    |
    | Requirement              | Required                                                                                                                                                                                                                                                                                                                                                                                                 |
    | Notes                    | iCIMS exposes admin-defined custom fields to the API as customfield\<id> and the Search API filters on them, so the Intent ID is readable back and queryable. No stock client-supplied external reference on the Job profile is known to us; if the tenant's schema carries one, prefer it. Deep link uses the careers-site job route (illustrative); the recruiter-UI route is confirmed at onboarding. |
  </Accordion>

  <Accordion title="Applicant workflow and job status" icon="arrow-right-left" description="Close the loop">
    | Mapping                  | Detail                                                                                                                                    |
    | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
    | Canonical to destination | hire\_status \<- applicantworkflows status, requisition\_status \<- job folder                                                            |
    | Target                   | Search API (search/jobs, search/applicantworkflows) plus tenant outbound notifications                                                    |
    | Requirement              | Read scope only                                                                                                                           |
    | Notes                    | Notifications arrive only for the changes the tenant configures; the Search API poll on the Intent ID custom field is the guaranteed path |
  </Accordion>
</AccordionGroup>

<Note>
  The Intent ID field is a tenant-created Job profile custom field: its customfield id differs per tenant, and the API user must be granted field-level visibility to it (and to every field the create call writes) in System Configuration, or the stamp silently fails to round-trip. Onboarding also captures the folder, position-type and location ids the create call needs, whether the tenant runs Basic-auth API users or OAuth client credentials, which outbound notifications exist and where they post, the throttling the tenant sees in practice, and the recruiter-UI route for the deep link.
</Note>

## Next steps

<Columns cols={3}>
  <Card title="How composerID connects" icon="plug-zap" href="/guides/connect">
    The five ways composerID reaches a destination, and the minimum a destination must offer.
  </Card>

  <Card title="Publishing" icon="send" href="/concepts/publishing">
    Plan, preflight and publish: how a decision becomes a valid record in a destination.
  </Card>

  <Card title="All destinations" icon="plug" href="/destinations">
    Every destination composerID documents, with its category and coverage status.
  </Card>
</Columns>
