List a run's results
const url = 'http://127.0.0.1:8765/api/runs/example/results';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://127.0.0.1:8765/api/runs/example/resultsA run’s rows with assessments; with ?limit=N a page of them, without text. Each row carries job_state. bank_suggestions (when a question the run’s assessments left open has a near match in the user’s answers) is the same list as on assess responses. job_state may carry assessment_stale: {reason: "posting_changed"} (absent otherwise) when the assessment that gives the state was made on posting text that has since changed: the verdict still reads, and the job should be re-assessed. The same marker carries reason older_prompt, settings_changed or story_bank_changed when the state comes from a stored quick assessment made with an older assess prompt, other candidate settings (work mode, countries, location, sponsorship need) or answers and stories that have since changed, and resume_changed when a master resume is stored and a resume line the assessment quoted is gone or a new line names one of its open questions; nothing is re-assessed until you ask (POST /api/assess, or assess-all). job_state.state weak_fit is needs_answers for a job whose stored assessment has few requirements met AND whose rank score is low (the fit block of the project’s settings: below 40% and below rank 50): it is not counted with the jobs that need your answers. job_state.state thin_posting (0.1.11.2) is matched for a job whose stored assessment has no requirement row about the job (an empty matrix, a lone “No stated requirements” row, eligibility rows alone): nothing was judged, so it is never shown or counted as a match. A matched verdict whose stored gate decision is not_a_match reads not_a_match.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A run id from GET /api/runs (run_…).
Query Parameters
Section titled “Query Parameters”Page size 1..500; without it the whole run with posting text.
Page start (needs limit).
Responses
Section titled “Responses”Success.
object
Example
{ "limit": 50, "offset": 0, "payload": { "rows": [] }, "run_id": "run_20260929T100000Z", "schema_version": "scout-find-jobs-run-results-response:1", "total": 40}Forbidden / forbidden_origin: loopback peer and Host 127.0.0.1:<port> or localhost:<port> only (Origin too on writes).
object
object
Examplegenerated
{ "error": { "allowed_keys": [ "example" ], "code": "example", "message": "example" }}Not_found
object
object
Example
{ "error": { "code": "not_found", "message": "..." }}Invalid_value, unknown_key
object
object
Example
{ "error": { "code": "invalid_value", "message": "..." }}