curl --request POST \
--url https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"jobPostingId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist"
payload = { "jobPostingId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({jobPostingId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist', 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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist",
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([
'jobPostingId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Connect-Protocol-Version: <connect-protocol-version>",
"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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist"
payload := strings.NewReader("{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"jobPostingId": "<string>",
"extractionState": "<string>",
"requiredRank": "<string>",
"vesselType": "<string>",
"requiredCertificates": [
"<string>"
],
"requiredExperienceMonths": 123,
"extractedAt": "2023-01-15T01:30:15.01Z",
"maritimeMatchEligible": true,
"mainRanks": [
"<string>"
],
"similarRanks": [
"<string>"
],
"mainVesselTypes": [
"<string>"
],
"similarVesselTypes": [
"<string>"
],
"requiresValidCertificates": true,
"requiresValidStcwCertificates": true
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}GetJobPostingChecklist
Get the LLM-extracted checklist for a job posting (rank, vessel type, required certificates, etc.).
curl --request POST \
--url https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist \
--header 'Authorization: Bearer <token>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/json' \
--data '
{
"jobPostingId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist"
payload = { "jobPostingId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({jobPostingId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist', 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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist",
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([
'jobPostingId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Connect-Protocol-Version: <connect-protocol-version>",
"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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist"
payload := strings.NewReader("{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
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://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://edge.sterndesk.com/rpc/rpc.v1.OrganizationService/GetJobPostingChecklist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"jobPostingId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"jobPostingId": "<string>",
"extractionState": "<string>",
"requiredRank": "<string>",
"vesselType": "<string>",
"requiredCertificates": [
"<string>"
],
"requiredExperienceMonths": 123,
"extractedAt": "2023-01-15T01:30:15.01Z",
"maritimeMatchEligible": true,
"mainRanks": [
"<string>"
],
"similarRanks": [
"<string>"
],
"mainVesselTypes": [
"<string>"
],
"similarVesselTypes": [
"<string>"
],
"requiresValidCertificates": true,
"requiresValidStcwCertificates": true
}{
"code": "not_found",
"message": "<string>",
"details": [
{
"type": "<string>",
"value": "<string>",
"debug": {}
}
]
}Authorizations
Personal API key, sent as Authorization: Bearer <key>.
Headers
Define the version of the Connect protocol
1
Define the timeout, in ms
1000
Body
request to fetch the checklist for a job posting
id of the job posting
Response
Success
response with the checklist for a job posting
job posting id this checklist belongs to
current extraction state (pending, extracted, failed)
most prominent required seagoing rank, if extracted; first entry of main_ranks
most prominent vessel type the posting is for, if extracted; first entry of main_vessel_types
STCW certificate codes required
required at-sea experience in months
A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (Z); input may use an offset from UTC.
"2023-01-15T01:30:15.01Z"
whether the job can be evaluated using the maritime match criteria
every seagoing rank the posting hires for, most prominent first
additional seagoing ranks the posting states it accepts instead of a main rank
every vessel type the posting is for, most prominent first
additional vessel types the posting states it accepts instead of a main vessel type
whether the posting requires valid certificates without naming which ones
whether the posting requires valid STCW certificates without naming which ones