Jobs
Create or update a job
Upsert on external_id within the organization; a repeat returns the same job_id
with created: false, updated: true, after updating title, description_text and location_text. Runs already started keep their description. Safe to retry.
Create a job
curl --request POST \
--url https://vort-partner-api.vercel.app/sandbox/v1/jobs \
--header 'Content-Type: application/json' \
--header 'x-partner-key: <api-key>' \
--header 'x-vort-org: <api-key>' \
--data '
{
"external_id": "job-4410",
"title": "Senior Backend Engineer",
"description_text": "We are looking for a senior backend engineer to own our payments platform...",
"location_text": "Tel Aviv"
}
'const options = {
method: 'POST',
headers: {
'x-partner-key': '<api-key>',
'x-vort-org': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external_id: 'job-4410',
title: 'Senior Backend Engineer',
description_text: 'We are looking for a senior backend engineer to own our payments platform...',
location_text: 'Tel Aviv'
})
};
fetch('https://vort-partner-api.vercel.app/sandbox/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://vort-partner-api.vercel.app/sandbox/v1/jobs"
payload = {
"external_id": "job-4410",
"title": "Senior Backend Engineer",
"description_text": "We are looking for a senior backend engineer to own our payments platform...",
"location_text": "Tel Aviv"
}
headers = {
"x-partner-key": "<api-key>",
"x-vort-org": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vort-partner-api.vercel.app/sandbox/v1/jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'external_id' => 'job-4410',
'title' => 'Senior Backend Engineer',
'description_text' => 'We are looking for a senior backend engineer to own our payments platform...',
'location_text' => 'Tel Aviv'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-partner-key: <api-key>",
"x-vort-org: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"job_id": "c3d1f9e2-6a47-4b0b-8f5e-2b9e7a4d1c06",
"created": true
}{
"error": "invalid_org_token",
"message": "The organization token is not valid."
}{
"error": "organization_disabled",
"message": "This organization's Vort connection is disabled."
}{
"error": "job_rejected",
"message": "The job is missing required fields.",
"rejected": [
{
"field": "location_text",
"code": "location_missing",
"message_he": "חסר מיקום למשרה.",
"message_en": "The job has no location."
}
]
}{
"error": "rate_limited",
"message": "Too many requests."
}{
"error": "rate_limit_unavailable",
"message": "Rate limiting is temporarily unavailable. Retry shortly."
}Authorizations
Partner API key: vpk_live_ + 48 lowercase hex. Server-side only.
Customer org token: vot_ + 48 lowercase hex, from /activations/redeem. Server-side only.
Headers
Language of notices and messages. Defaults to the partner default.
Available options:
he, en Body
application/json
⌘I
Create a job
curl --request POST \
--url https://vort-partner-api.vercel.app/sandbox/v1/jobs \
--header 'Content-Type: application/json' \
--header 'x-partner-key: <api-key>' \
--header 'x-vort-org: <api-key>' \
--data '
{
"external_id": "job-4410",
"title": "Senior Backend Engineer",
"description_text": "We are looking for a senior backend engineer to own our payments platform...",
"location_text": "Tel Aviv"
}
'const options = {
method: 'POST',
headers: {
'x-partner-key': '<api-key>',
'x-vort-org': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external_id: 'job-4410',
title: 'Senior Backend Engineer',
description_text: 'We are looking for a senior backend engineer to own our payments platform...',
location_text: 'Tel Aviv'
})
};
fetch('https://vort-partner-api.vercel.app/sandbox/v1/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://vort-partner-api.vercel.app/sandbox/v1/jobs"
payload = {
"external_id": "job-4410",
"title": "Senior Backend Engineer",
"description_text": "We are looking for a senior backend engineer to own our payments platform...",
"location_text": "Tel Aviv"
}
headers = {
"x-partner-key": "<api-key>",
"x-vort-org": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vort-partner-api.vercel.app/sandbox/v1/jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'external_id' => 'job-4410',
'title' => 'Senior Backend Engineer',
'description_text' => 'We are looking for a senior backend engineer to own our payments platform...',
'location_text' => 'Tel Aviv'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-partner-key: <api-key>",
"x-vort-org: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"job_id": "c3d1f9e2-6a47-4b0b-8f5e-2b9e7a4d1c06",
"created": true
}{
"error": "invalid_org_token",
"message": "The organization token is not valid."
}{
"error": "organization_disabled",
"message": "This organization's Vort connection is disabled."
}{
"error": "job_rejected",
"message": "The job is missing required fields.",
"rejected": [
{
"field": "location_text",
"code": "location_missing",
"message_he": "חסר מיקום למשרה.",
"message_en": "The job has no location."
}
]
}{
"error": "rate_limited",
"message": "Too many requests."
}{
"error": "rate_limit_unavailable",
"message": "Rate limiting is temporarily unavailable. Retry shortly."
}