Docs
API reference

Close a job

POST
/api/v1/jobs/{id}/close

Closed jobs accept no new reports or interviews; work already started is unaffected. Closing a closed job changes nothing.

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
  • 404: job_not_found
  • 409: idempotency_key_reused, idempotency_request_in_progress
  • 422: invalid_parameter
  • 429: rate_limit_exceeded
  • 500: api_error
  • 503: maintenance_mode, service_unavailable

Authorization

ApiKey
headerAuthorizationBearer <probb_live_<id>_<secret>>

Path Parameters

id*string

The job's ID.

Length1 <= length <= 200

Header Parameters

Idempotency-Key?string

Makes 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.

Length1 <= length <= 255

Request Body

application/json
  1. body
reason?string

Why the job is closing.

Value in"filled""cancelled""other"
hiredOutside?boolean

The role was filled by someone who never went through Probb. Only with reason filled.

Response Body

Success.

application/json
  1. response
object*string
id*string

The 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*string

The 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*string

closed jobs accept no new reports or interviews.

Value in"open""closed"
closedAt*|

When the job was closed.

closeReason*|

Why the job was closed, when it was closed with a reason.

revision*string

Changes on every update. Send it as If-Match to avoid overwriting newer changes.

createdAt*string

When the job was created.

Formatdate-time
updatedAt*string

When the job last changed.

Formatdate-time
Example Request
# 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/ID_VALUE/close" \  -H "Authorization: Bearer $PROBB_API_KEY" \  -H "Idempotency-Key: $REQUEST_KEY" \  -H 'Content-Type: application/json' \  --data-binary '{  "reason": "filled"}'
Example Response
{  "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"}