curl --request POST \
--url 'https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data action=sagescreen_save_culture \
--data nonce=abc123def456 \
--data sage_id=1234 \
--data 'role_title=Senior Software Engineer' \
--data 'instructions=Focus on system design and architecture.' \
--data 'intro_question=Tell me about your experience with distributed systems.' \
--data 'intro_reasoning=Assesses distributed systems knowledge.' \
--data hire_threshold=75 \
--data-urlencode exclude%5B%5D=2 \
--data-urlencode include%5B%5D=1 \
--data-urlencode include%5B%5D=3 \
--data-urlencode tone%5B%5D=professional \
--data-urlencode tone%5B%5D=friendly \
--data evaluation_guideline=relaxed \
--data elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL \
--data sage_language=enimport requests
url = "https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture"
payload = {
"action": "sagescreen_save_culture",
"nonce": "abc123def456",
"sage_id": "1234",
"role_title": "Senior Software Engineer",
"instructions": "Focus on system design and architecture.",
"intro_question": "Tell me about your experience with distributed systems.",
"intro_reasoning": "Assesses distributed systems knowledge.",
"hire_threshold": "75",
"exclude[]": "2",
"include[]": ["1", "3"],
"tone[]": ["professional", "friendly"],
"evaluation_guideline": "relaxed",
"elevenlabs_voice_id": "EXAVITQu4vr4xnSDxMaL",
"sage_language": "en"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams([
['action', 'sagescreen_save_culture'],
['nonce', 'abc123def456'],
['sage_id', '1234'],
['role_title', 'Senior Software Engineer'],
['instructions', 'Focus on system design and architecture.'],
['intro_question', 'Tell me about your experience with distributed systems.'],
['intro_reasoning', 'Assesses distributed systems knowledge.'],
['hire_threshold', '75'],
['exclude[]', '2'],
['include[]', '1'],
['include[]', '3'],
['tone[]', 'professional'],
['tone[]', 'friendly'],
['evaluation_guideline', 'relaxed'],
['elevenlabs_voice_id', 'EXAVITQu4vr4xnSDxMaL'],
['sage_language', 'en']
])
};
fetch('https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture', 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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture"
payload := strings.NewReader("action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "Culture settings saved"
}
}Save culture configuration (step 2 → 3)
Updates the council sage post with culture/evaluation settings. Duration is NOT updatable here — it comes from the base sage.
Permission: user must have ss_council_sage capability (or
ss_admin_all) and belong to the same council as the sage.
Non-customizable (system) sages cannot be edited and will return an error.
Registered as wp_ajax_sagescreen_save_culture — login required.
curl --request POST \
--url 'https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data action=sagescreen_save_culture \
--data nonce=abc123def456 \
--data sage_id=1234 \
--data 'role_title=Senior Software Engineer' \
--data 'instructions=Focus on system design and architecture.' \
--data 'intro_question=Tell me about your experience with distributed systems.' \
--data 'intro_reasoning=Assesses distributed systems knowledge.' \
--data hire_threshold=75 \
--data-urlencode exclude%5B%5D=2 \
--data-urlencode include%5B%5D=1 \
--data-urlencode include%5B%5D=3 \
--data-urlencode tone%5B%5D=professional \
--data-urlencode tone%5B%5D=friendly \
--data evaluation_guideline=relaxed \
--data elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL \
--data sage_language=enimport requests
url = "https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture"
payload = {
"action": "sagescreen_save_culture",
"nonce": "abc123def456",
"sage_id": "1234",
"role_title": "Senior Software Engineer",
"instructions": "Focus on system design and architecture.",
"intro_question": "Tell me about your experience with distributed systems.",
"intro_reasoning": "Assesses distributed systems knowledge.",
"hire_threshold": "75",
"exclude[]": "2",
"include[]": ["1", "3"],
"tone[]": ["professional", "friendly"],
"evaluation_guideline": "relaxed",
"elevenlabs_voice_id": "EXAVITQu4vr4xnSDxMaL",
"sage_language": "en"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams([
['action', 'sagescreen_save_culture'],
['nonce', 'abc123def456'],
['sage_id', '1234'],
['role_title', 'Senior Software Engineer'],
['instructions', 'Focus on system design and architecture.'],
['intro_question', 'Tell me about your experience with distributed systems.'],
['intro_reasoning', 'Assesses distributed systems knowledge.'],
['hire_threshold', '75'],
['exclude[]', '2'],
['include[]', '1'],
['include[]', '3'],
['tone[]', 'professional'],
['tone[]', 'friendly'],
['evaluation_guideline', 'relaxed'],
['elevenlabs_voice_id', 'EXAVITQu4vr4xnSDxMaL'],
['sage_language', 'en']
])
};
fetch('https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture', 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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture"
payload := strings.NewReader("action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_save_culture")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "action=sagescreen_save_culture&nonce=abc123def456&sage_id=1234&role_title=Senior%20Software%20Engineer&instructions=Focus%20on%20system%20design%20and%20architecture.&intro_question=Tell%20me%20about%20your%20experience%20with%20distributed%20systems.&intro_reasoning=Assesses%20distributed%20systems%20knowledge.&hire_threshold=75&exclude%5B%5D=2&include%5B%5D=1&include%5B%5D=3&tone%5B%5D=professional&tone%5B%5D=friendly&evaluation_guideline=relaxed&elevenlabs_voice_id=EXAVITQu4vr4xnSDxMaL&sage_language=en"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "Culture settings saved"
}
}Authorizations
WordPress AJAX nonce (passed as form field, verified per-action)
Body
"sagescreen_save_culture"WP nonce for sagescreen_frontend_nonce
"abc123def456"
WordPress post ID of the council sage
1234
Role title (required)
"Senior Software Engineer"
Custom instructions for the sage
"Focus on system design and architecture."
Opening question
"Tell me about your experience with distributed systems."
Reasoning behind the intro question
"Assesses distributed systems knowledge."
Minimum hire score (0-100)
75
Category IDs to exclude
["2"]
Category IDs to include
["1", "3"]
Tone attributes
["professional", "friendly"]
Evaluation strictness
"relaxed"
ElevenLabs voice ID
"EXAVITQu4vr4xnSDxMaL"
ISO language code
"en"