Skip to content

Scout's page only: read the header file for the Generate PDF form

POST
/api/pdf-header
curl --request POST \
--url http://127.0.0.1:8765/api/pdf-header \
--header 'Content-Type: application/json' \
--data '{}'

Scout’s own page only: the Generate PDF form’s values from the person’s header file. NOT for agents: it answers only Scout’s own browser page (a request carrying this server’s own Origin); any other caller gets 403 forbidden_origin and the file is not opened. An agent never needs it: it renders the PDF without a header and the person finishes it. The person may keep their name and contact details in a JSON file they own, ~/Documents/GigAI/header.json (a GigAI home other than ~/.gigai: <home>/header.json): {name, email, phone, location, github, linkedin, website, links: [{label, url}], work_authorization}, every field optional. github and linkedin take just the id (a full address is read as the id) and website a site address; values holds them the same way (the id alone, the site address), a links entry that is a GitHub or LinkedIn profile address fills that field when it is empty, values.links holds the other links, and a link named twice is there once. GigAI reads it here (to fill the Generate PDF form, where the person edits the values before generating) and in gigai scout resume pdf --out FILE, and writes it only when the person presses the form’s Save button (POST /api/pdf-header/save); it is never copied into the store, the journal, a log, a record, a suggestion, a brief, the resumes folder or a model prompt, and no other route returns it. state is filled, missing, invalid or placeholder; message is one plain sentence (what is wrong and where the file goes; never a value); warning says so when other users of the computer can read the file; values is the form’s values when filled, else null. A value that is empty or starts with REPLACE (a template placeholder) is skipped: placeholders names the skipped fields, notice is the one sentence about them, and name_note says so when the file has no name yet; state placeholder means nothing in the file is filled in. Not cached (Cache-Control: no-store).

Media typeapplication/json
object
Example
{}

Success.

Media typeapplication/json
object
schema_version
required
Allowed value: scout-pdf-header-prefill:1
key
additional properties
any
Example
{
"has_work_authorization": false,
"message": "There is no header file at ~/Documents/GigAI/header.json.",
"name_note": null,
"notice": null,
"placeholders": [],
"schema_version": "scout-pdf-header-prefill:1",
"shown": "~/Documents/GigAI/header.json",
"state": "missing",
"values": null,
"warning": null
}

Forbidden_origin

Media typeapplication/json
object
error
required
object
allowed_keys
Array<string>
code
required
string
message
required
string
key
additional properties
any
Example
{
"error": {
"code": "forbidden_origin",
"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

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": "..."
}
}