---
title: "Create a job and replace its Company Attributes with the payload"
method: POST
path: "/api/serviceworkforce/processes/jobs/custom_attributes"
tags: ["jobs"]
---

# Create a job and replace its Company Attributes with the payload

`POST /api/serviceworkforce/processes/jobs/custom_attributes`

Creates a Job and upserts its Company Attributes in one request. The provided customAttributesPayload replaces the entire set of attributes attached to the job: attributes omitted from the payload will be removed, attributes present will be created/updated. Values must match the attribute data type configured for the company attribute.

## Request body

- object
  - `jobPayload` Job, required
    - `uuid` string, uuid
    - `createdAt` string, date-time — Creation timestamp
    - `createdBy` string, uuid — Creator UUID
    - `lastUpdatedAt` string, date-time — Last update timestamp
    - `lastUpdatedBy` string, uuid — Last updater UUID
    - `lastUpdatedByAudience` string — Audience of last updater
    - `lastUpdatedByAudienceUuid` string, uuid — Audience UUID of last updater
    - `lastUpdatedByImpersonatedBy` string, uuid — Impersonator UUID
    - `lastUpdatedByCompanyUuid` string, uuid — Company UUID of last updater
    - `lastUpdatedByEnterpriseUuid` string, uuid — Enterprise UUID of last updater
    - `name` string, required — Job name
    - `description` string
    - `externalDescription` string — Applicant-facing job description; supports HTML.
    - `companyUuid` string, uuid — Company UUID
    - `allowUnscheduledShift` boolean
    - `externalPosition` object
      - `source` 'hire' | 'hire-go' | 'workday', required — External source system
      - `externalIdentifier` string
      - `externalCreatedAt` string, date-time
  - `customAttributesPayload` object[], required — List of Company Attributes to attach to the job. Provide the attributes you want created along with the job. If the field is omitted, the job will be created without company attributes. If you provide an empty array ([]) the job will be created with no attributes.
    - `attribute` string, required — Attribute UUID or key
    - `value` unknown, required

## Response `201`

Created successfully. Wrapped in a JsonAPI root response.

- object
  - `data` Job
    - `uuid` string, uuid
    - `createdAt` string, date-time — Creation timestamp
    - `createdBy` string, uuid — Creator UUID
    - `lastUpdatedAt` string, date-time — Last update timestamp
    - `lastUpdatedBy` string, uuid — Last updater UUID
    - `lastUpdatedByAudience` string — Audience of last updater
    - `lastUpdatedByAudienceUuid` string, uuid — Audience UUID of last updater
    - `lastUpdatedByImpersonatedBy` string, uuid — Impersonator UUID
    - `lastUpdatedByCompanyUuid` string, uuid — Company UUID of last updater
    - `lastUpdatedByEnterpriseUuid` string, uuid — Enterprise UUID of last updater
    - `name` string, required — Job name
    - `description` string
    - `externalDescription` string — Applicant-facing job description; supports HTML.
    - `companyUuid` string, uuid — Company UUID
    - `allowUnscheduledShift` boolean
    - `externalPosition` object
      - `source` 'hire' | 'hire-go' | 'workday', required — External source system
      - `externalIdentifier` string
      - `externalCreatedAt` string, date-time
  - `meta` ResponsesPartMeta
    - `timestamp` string, date-time, required
    - `verb` 'OPTION' | 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
    - `path` string
    - `jti` string
    - `rid` string
    - `count` number
    - `status` string
    - `duration` number
    - `size` number

## Other responses

- `400` — default error response
- `404` — default error response
- `409` — default error response

---

[API](https://skmtc.dev/fountain/apis/hire-public-api.md) · [All operations](https://skmtc.dev/fountain/apis/hire-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fountain/hire-public-api/revisions/5f406c0e9462/schema)
