Parse a job posting
curl --request POST \
--url https://api.kombo.dev/v1/ai-apply/postings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"location": {
"country": "US",
"postal_code": "94115"
},
"career_site_id": "Chc4dua5asAQ48KUERDVF1bs"
}
'import requests
url = "https://api.kombo.dev/v1/ai-apply/postings"
payload = {
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"location": {
"country": "US",
"postal_code": "94115"
},
"career_site_id": "Chc4dua5asAQ48KUERDVF1bs"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102',
job_code: 'ACME_13',
location: {country: 'US', postal_code: '94115'},
career_site_id: 'Chc4dua5asAQ48KUERDVF1bs'
})
};
fetch('https://api.kombo.dev/v1/ai-apply/postings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/ai-apply/postings",
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([
'url' => 'https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102',
'job_code' => 'ACME_13',
'location' => [
'country' => 'US',
'postal_code' => '94115'
],
'career_site_id' => 'Chc4dua5asAQ48KUERDVF1bs'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/ai-apply/postings"
payload := strings.NewReader("{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/ai-apply/postings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/ai-apply/postings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "9QGNv3B98kL3hyELE1qsZ86s",
"career_site": {
"id": "Chc4dua5asAQ48KUERDVF1bs",
"label": "Acme"
},
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-03-02T23:12:32.000Z",
"archived_at": null,
"archived_reason": null,
"availability": "PENDING"
}
}Job postings
Parse a job posting
Submit a job posting URL to be parsed asynchronously. Returns ID to track progress.
POST
/
ai-apply
/
postings
Parse a job posting
curl --request POST \
--url https://api.kombo.dev/v1/ai-apply/postings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"location": {
"country": "US",
"postal_code": "94115"
},
"career_site_id": "Chc4dua5asAQ48KUERDVF1bs"
}
'import requests
url = "https://api.kombo.dev/v1/ai-apply/postings"
payload = {
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"location": {
"country": "US",
"postal_code": "94115"
},
"career_site_id": "Chc4dua5asAQ48KUERDVF1bs"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102',
job_code: 'ACME_13',
location: {country: 'US', postal_code: '94115'},
career_site_id: 'Chc4dua5asAQ48KUERDVF1bs'
})
};
fetch('https://api.kombo.dev/v1/ai-apply/postings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/ai-apply/postings",
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([
'url' => 'https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102',
'job_code' => 'ACME_13',
'location' => [
'country' => 'US',
'postal_code' => '94115'
],
'career_site_id' => 'Chc4dua5asAQ48KUERDVF1bs'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/ai-apply/postings"
payload := strings.NewReader("{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/ai-apply/postings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/ai-apply/postings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102\",\n \"job_code\": \"ACME_13\",\n \"location\": {\n \"country\": \"US\",\n \"postal_code\": \"94115\"\n },\n \"career_site_id\": \"Chc4dua5asAQ48KUERDVF1bs\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "9QGNv3B98kL3hyELE1qsZ86s",
"career_site": {
"id": "Chc4dua5asAQ48KUERDVF1bs",
"label": "Acme"
},
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-03-02T23:12:32.000Z",
"archived_at": null,
"archived_reason": null,
"availability": "PENDING"
}
}Authorizations
Body
application/json
POST /ai-apply/postings Request body
The URL of the job posting to parse
Pattern:
^https?:\/\/The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
Job code to associate with the job posting
The location in which the job is located. When omitted, the existing location is preserved. Pass null to explicitly clear an existing location.
Show child attributes
Show child attributes
Response
POST /ai-apply/postings Positive response
Allowed value:
"success"Show child attributes
Show child attributes
Example:
{
"id": "9QGNv3B98kL3hyELE1qsZ86s",
"career_site": {
"id": "Chc4dua5asAQ48KUERDVF1bs",
"label": "Acme"
},
"url": "https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102",
"job_code": "ACME_13",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-03-02T23:12:32.000Z",
"archived_at": null,
"archived_reason": null,
"availability": "PENDING"
}
Was this page helpful?