Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.
Multi-turn agents
Hold job_id, candidate_job_id, and session_id in application state so a model never acts on an id it invented.
What to persist per conversation
An invented job_id gives a clean 404. A wrong candidate_job_id on a stage update silently writes to the wrong pipeline. Your tool layer resolves ids. The model never emits them from memory.
| Key | Set when | Used by | | --- | --- | --- | | `job_id` | A search result is shown or selected | Detail, keywords, documents, apply, tracking | | `search_filters` | A search runs | Pagination, refinement | | `next_cursor` | A search returns | The next page | | `candidate_id`, `candidate_job_id` | A candidate is listed or opened | Stage updates, notes, interviews | | `session_id` | Apply with AI starts | Polling, stop | | Document blobs or ids | A resume or cover letter is generated | Attaching to an apply |
Store them per conversation with the last result set so "the second one" resolves deterministically.
Resolve by reference, not by recall
Give the model a numbered view of state and let it refer to entries by index.
{
"results": [
{ "ref": 1, "title": "Senior Product Designer", "company": "Example Co" },
{ "ref": 2, "title": "Product Designer", "company": "Acme" }
]
}
The model calls your tool with { "ref": 2 } and your code substitutes the real job_id. If you expose raw ids, reject any id not in the conversation's stored result set.
Handling staleness
| Event | Do | | --- | --- | | A job closes mid-conversation (`closed_at` becomes non-null) | Re-read the job before apply | | A candidate's stage changed in the UI | Read the profile before a stage-dependent write | | A cursor ages | Re-run the search. Do not store cursors across sessions | | An apply session ends | Poll to a terminal status, then clear `session_id` |