Active is not automatically published. Both publication channels default to off on creation. You can explicitly request career-page or eligible free-job-board publication for an active, approved job.
| Task | Permission |
|---|---|
| Read lookup data | organization.read |
| Create a job | jobs.write |
| Change an existing job's lifecycle status | jobs.status.write |
| Read the job back | jobs.read |
| Value you need | Endpoint |
|---|---|
| Job types, education levels, salary intervals, lifecycle states | GET /job-options |
| Industry | GET /industries |
| Job function for an industry | GET /job-functions?industry_id=12 |
| Employer type for an industry | GET /employer-types?industry_id=12 |
| Client company (required for staffing accounts) | GET /customers |
| Optional department and hiring manager | GET /departments, GET /hiring-managers |
jobs.write to your credential. For supporting lookups, also grantorganization.read. There is no separate jobs.create permission.customerId from /customers. Job code is generated whenskills means Required; optionalSkills means Good to have.201 with the job ID and the result of the account workflow:status: 5.status: 3,approvalStatus: 0./job-options, /industries, /job-functions?industry_id=â¦,/employer-types?industry_id=â¦, /customers, /departments, /hiring-managers/users for valid values and account-owned IDs. All collection endpointsH, D, W, M, or Y.PATCH /jobs/{jobId}/status with jobs.status.write only for a409 and creates no job. Pending-approval jobs do notPOST /jobs or PATCH /jobs/{jobId}:| Field | Creation when omitted | Update when omitted |
|---|---|---|
publishToCareerPage | Off | Existing career-page setting is preserved |
publishToFreeJobBoards | Off | Free-job-board publication is turned off |
409; create the job{
"publishToCareerPage": true,
"publishToFreeJobBoards": true
}PATCH /jobs/{jobId} with jobs.write and a newIdempotency-Key. Enabling either channel on an inactive or unapproved job returns409; publication never bypasses approval or active-job capacity checks.publishToFreeJobBoards: true on each job update that should keep freefalse disables the corresponding channel. Status-only requests/jobs/{jobId}/status do not change publication settings.GET /jobs/{jobId} and job lists include status, statusLabel,approvalStatus and approvalStatusLabel. These are separate states:0 means pending, 1 approved and -1 rejected; unavailable valuesnull / Unknown. Lifecycle status 5 is labelledIn Progress and means active, not publicly advertised.GET /job-options returns initialStatus: "account_workflow" and a statusescode, label, and canSet. canSet describes status-endpoint1, 2, 4, and 5; 2 means New and 4