Create a job
Creates an open job. Missing company, team, location and level are filled in from the description in the background; the job then changes once more, which you hear as job.updated from the system.
Required scope: jobs:write.
Errors
- 400:
invalid_content_type,invalid_idempotency_key,invalid_json,request_body_too_large,unknown_field - 401:
authentication_required,invalid_api_key - 403:
api_access_disabled,insufficient_scope - 409:
idempotency_key_reused,idempotency_request_in_progress,job_exists - 422:
invalid_parameter - 429:
rate_limit_exceeded - 500:
api_error - 503:
maintenance_mode,service_unavailable
ApiKeyAuthorizationBearer <probb_live_<id>_<secret>>Idempotency-Key?stringMakes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.
1 <= length <= 255application/json- body
title*stringThe job title.
1 <= length <= 160description*stringThe full job description, 10 to 20,000 characters.
10 <= length <= 20000company?stringThe hiring company.
1 <= length <= 160team?stringThe hiring team or department.
1 <= length <= 160location?stringWhere the job is based.
1 <= length <= 160level?stringThe seniority level, for example Senior.
1 <= length <= 160employmentType?stringHow the person is employed.
"full_time""part_time""contract""temporary""internship"externalId?stringYour own ID for the job. Unique within the organization.
1 <= length <= 128Success.
application/json- response
object*stringid*stringThe job's ID. The same ID the app uses.
externalId*|Your own ID for the job, unique within the organization.
title*|The job title.
description*stringThe full job description text.
company*|The hiring company.
team*|The hiring team or department.
location*|Where the job is based.
level*|The seniority level, for example Senior.
employmentType*|How the person is employed.
status*stringclosed jobs accept no new reports or interviews.
"open""closed"closedAt*|When the job was closed.
closeReason*|Why the job was closed, when it was closed with a reason.
revision*stringChanges on every update. Send it as If-Match to avoid overwriting newer changes.
createdAt*stringWhen the job was created.
date-timeupdatedAt*stringWhen the job last changed.
date-time# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/jobs" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H "Idempotency-Key: $REQUEST_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "title": "Backend Engineer", "description": "Build and run the payments platform. You will own services end to end, work with product on what to build, and keep the systems reliable. We use TypeScript and PostgreSQL.", "company": "Acme", "team": "Payments", "location": "Remote", "level": "Senior", "employmentType": "full_time", "externalId": "req-1042"}'{ "object": "job", "id": "string", "externalId": "string", "title": "string", "description": "string", "company": "string", "team": "string", "location": "string", "level": "string", "employmentType": "full_time", "status": "open", "closedAt": "2019-08-24T14:15:22Z", "closeReason": "filled", "revision": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}