# dotresume > dotresume (https://www.dotresu.me) is a free resume editor with live PDF preview, PDF import, and shareable links. ## Agent API A resume owner can let an AI agent read and edit their resume. In the editor they click "AI agent", create a key, and paste the generated message into their agent. Keys look like `drk_...` and belong to one resume. - `GET /api/agent/resume` with `Authorization: Bearer ` returns `{ resume, version, updated_at, share_url, layout, instructions, schema }`. `schema` is a JSON Schema for `resume`; `instructions` explains the formatting rules. - `PUT /api/agent/resume` with the same header and body `{ "resume": , "version": }` saves it and returns `{ ok, version, updated_at, layout }`. Send the whole resume, not a diff. An invalid resume is rejected with `422` and nothing is saved. - `GET /api/agent/resume?format=pdf` with the same header returns the rendered PDF (`application/pdf`). Responses: - `200` saved (returns the new `version`). - `401` missing, wrong, reset, or turned-off key. - `409` the resume changed since your GET. GET again and reapply your edits. - `422` validation failed; `issues` lists `path: message` entries to fix. Layout: `layout` is measured from the rendered PDF. - `pages`: page count. `last_page_fill`: share (0-1) of the last page's usable height in use. - `wrapped`: every item line or paragraph line that wraps onto more than one rendered line, as `{ path, content_line?, rendered_lines, last_line, last_line_fill, dangling }`. `path` points into `resume` (e.g. `resumeSections[0].items[1].lines[2]`); `content_line` is the 1-based line within a paragraph section's `content`. `dangling: true` means the last rendered line uses under 30% of the width: shorten or lengthen that text. - `summary`: the same in one sentence or two. ## Examples and guides - Resume examples for 20 roles, each a complete one-page resume in the same structure the API uses: https://www.dotresu.me/examples - Resume writing guides, including how to edit a resume with an AI agent: https://www.dotresu.me/blogs Formatting: `resumeSections` render in order. "work" sections have `items` (`title`, `subtitle`, `rightText`, `lines`); "paragraph" sections have `content`. Lines starting with `- ` render as bullets and `*single asterisks*` mark bold text.