Start a screening interview
curl --request POST \
--url {protocol}://{host}:{port}/screen/start \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc",
"council_id": "6151186e-3b17-4fb2-a54d-ff327bf7a71a",
"sage_name": "Sage",
"image": null
}
'import requests
url = "{protocol}://{host}:{port}/screen/start"
payload = {
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc",
"council_id": "6151186e-3b17-4fb2-a54d-ff327bf7a71a",
"sage_name": "Sage",
"image": None
}
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({
council_sage_id: 'c3d4e5f6-7890-4abc-def0-123456789abc',
council_id: '6151186e-3b17-4fb2-a54d-ff327bf7a71a',
sage_name: 'Sage',
image: null
})
};
fetch('{protocol}://{host}:{port}/screen/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "{protocol}://{host}:{port}/screen/start",
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([
'council_sage_id' => 'c3d4e5f6-7890-4abc-def0-123456789abc',
'council_id' => '6151186e-3b17-4fb2-a54d-ff327bf7a71a',
'sage_name' => 'Sage',
'image' => null
]),
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 := "{protocol}://{host}:{port}/screen/start"
payload := strings.NewReader("{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\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("{protocol}://{host}:{port}/screen/start")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("{protocol}://{host}:{port}/screen/start")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\n}"
response = http.request(request)
puts response.read_body{
"screen_id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"message": "Hello! I'm Sage, and I'll be conducting your interview today. We have about 30 minutes together...",
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc"
}Screen
Start a screening interview
Begins the screening interview. Loads the council sage configuration, fetches the opening prompt, and initializes the chat history. Returns the screen ID, opening message, and council sage ID.
Pass ?test=1 to flag this as a test screen.
POST
/
screen
/
start
Start a screening interview
curl --request POST \
--url {protocol}://{host}:{port}/screen/start \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc",
"council_id": "6151186e-3b17-4fb2-a54d-ff327bf7a71a",
"sage_name": "Sage",
"image": null
}
'import requests
url = "{protocol}://{host}:{port}/screen/start"
payload = {
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc",
"council_id": "6151186e-3b17-4fb2-a54d-ff327bf7a71a",
"sage_name": "Sage",
"image": None
}
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({
council_sage_id: 'c3d4e5f6-7890-4abc-def0-123456789abc',
council_id: '6151186e-3b17-4fb2-a54d-ff327bf7a71a',
sage_name: 'Sage',
image: null
})
};
fetch('{protocol}://{host}:{port}/screen/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "{protocol}://{host}:{port}/screen/start",
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([
'council_sage_id' => 'c3d4e5f6-7890-4abc-def0-123456789abc',
'council_id' => '6151186e-3b17-4fb2-a54d-ff327bf7a71a',
'sage_name' => 'Sage',
'image' => null
]),
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 := "{protocol}://{host}:{port}/screen/start"
payload := strings.NewReader("{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\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("{protocol}://{host}:{port}/screen/start")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("{protocol}://{host}:{port}/screen/start")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"council_sage_id\": \"c3d4e5f6-7890-4abc-def0-123456789abc\",\n \"council_id\": \"6151186e-3b17-4fb2-a54d-ff327bf7a71a\",\n \"sage_name\": \"Sage\",\n \"image\": null\n}"
response = http.request(request)
puts response.read_body{
"screen_id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"message": "Hello! I'm Sage, and I'll be conducting your interview today. We have about 30 minutes together...",
"council_sage_id": "c3d4e5f6-7890-4abc-def0-123456789abc"
}Authorizations
User JWT token passed in Authorization header
Headers
Required JWT permission: screen (informational only -- enforced server-side)
Query Parameters
Set to 1 to mark as test screen
Available options:
0, 1 Body
application/json