Tailor the resume to one posting
const url = 'http://127.0.0.1:8765/api/tailored-resumes';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"job":{"job_url":"https://boards.greenhouse.io/acme/jobs/101"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The posting: {"job_url": "<https url>"} or {"text": "<pasted posting>"}.
object
Which model target answers (claude or codex); omitted = the configured one.
Which resume: omitted = the selected profile; else {“profile_id”: “…”} or pasted resume text.
object
Optional; must equal the request schema version when present.
Example
{ "job": { "job_url": "https://boards.greenhouse.io/acme/jobs/101" }}Responses
Section titled “Responses”Success.
object
Example
{ "job": { "job_identity": "https://boards.greenhouse.io/acme/jobs/101" }, "markdown": "# ...", "schema_version": "scout-tailor-response:1"}Model_denied
object
object
Example
{ "error": { "code": "model_denied", "message": "..." }}Target_unavailable
object
object
Example
{ "error": { "code": "target_unavailable", "message": "..." }}Unsupported_media_type: writes need Content-Type: application/json.
object
object
Examplegenerated
{ "error": { "allowed_keys": [ "example" ], "code": "example", "message": "example" }}Invalid_value, wrong_type, unknown_key
object
object
Example
{ "error": { "code": "invalid_value", "message": "..." }}Job_fetch_failed, model_output_invalid
object
object
Example
{ "error": { "code": "job_fetch_failed", "message": "..." }}Model_unavailable
object
object
Example
{ "error": { "code": "model_unavailable", "message": "..." }}Tailor_timeout
object
object
Example
{ "error": { "code": "tailor_timeout", "message": "..." }}