Skip to content

Tailor the resume to one posting

POST
/api/tailored-resumes
curl --request POST \
--url http://127.0.0.1:8765/api/tailored-resumes \
--header 'Content-Type: application/json' \
--data '{ "job": { "job_url": "https://boards.greenhouse.io/acme/jobs/101" } }'

Tailor the resume to one posting (markdown + structure, each line cited). Synchronous: blocks for the model call (one retry on a rejected answer). With a master resume stored, a profile’s tailoring reads that job’s candidate lines of the whole master instead of the profile’s own resume (a profile with no selection too; not one whose resume was replaced by hand after its selection: GET /api/master/selection, tailoring_basis): each resume ref then carries item_id (the master line it is), sources.master names the master revision, and selection lists what was picked and what was left out, each line with its reason. The result is cut to 2 pages, the oldest roles first (result.length; PUT /api/tailored-resumes/length puts it back). When the model call then fails or no model is available, the response is the code’s own selection (selection.picked_by is code, selection.fallback the error code) instead of an error.

Media typeapplication/json
object
job
required

The posting: {"job_url": "<https url>"} or {"text": "<pasted posting>"}.

object
model_target

Which model target answers (claude or codex); omitted = the configured one.

string
resume

Which resume: omitted = the selected profile; else {“profile_id”: “…”} or pasted resume text.

object
schema_version

Optional; must equal the request schema version when present.

string
Example
{
"job": {
"job_url": "https://boards.greenhouse.io/acme/jobs/101"
}
}

Success.

Media typeapplication/json
object
schema_version
required
Allowed value: scout-tailor-response:1
key
additional properties
any
Example
{
"job": {
"job_identity": "https://boards.greenhouse.io/acme/jobs/101"
},
"markdown": "# ...",
"schema_version": "scout-tailor-response:1"
}

Model_denied

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "model_denied",
"message": "..."
}
}

Target_unavailable

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "target_unavailable",
"message": "..."
}
}

Unsupported_media_type: writes need Content-Type: application/json.

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Examplegenerated
{
"error": {
"allowed_keys": [
"example"
],
"code": "example",
"message": "example"
}
}

Invalid_value, wrong_type, unknown_key

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "invalid_value",
"message": "..."
}
}

Job_fetch_failed, model_output_invalid

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "job_fetch_failed",
"message": "..."
}
}

Model_unavailable

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "model_unavailable",
"message": "..."
}
}

Tailor_timeout

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "tailor_timeout",
"message": "..."
}
}