Edit Tailored Resume
edit_applicationApply typed edits to an application's current tailored resume, preserving prior changes and avoiding duplicate applications; falls back to base resume only when none exists.
Instructions
INCREMENTAL FIX: apply typed edit ops on top of an existing application's CURRENT tailored resume (customized_json), preserving every prior edit.
Falls back to the base resume only when the application has no customized_json
yet (nothing to preserve). Suited to refining or retrying a tailored resume
after inspecting PDF previews — swap a bullet, tweak wording, fix one thing —
without losing the rest of what's already been tailored and without creating
duplicate applications. tailor_application is the from-scratch alternative:
it recomputes customized_json off the BASE resume and discards any tailored
edits already on the application.
Accepts the FULL op vocabulary documented on edit_base_resume — every
kind. replace_entry changes an entry's dates, title, company, project name
or tech list; add/replace/remove/move_extra_section handle the custom
Publications/Awards/Volunteer sections.
Op field names (these exact keys, no synonyms):
{"kind": "replace_bullet", "section": "experience", "index": 0,
"bullet_index": 2, "value": "New bullet text"} — `kind` (not op/type),
`index` (not entry_index; 0-based into the FULL array incl. disabled rows),
`value` (not text).
Index is 0-based into the full customized_json array (including enabled:false),
as shown by get_application, not PDF ordinals. Response `applied[].name`
echoes the entry each op touched.
Clears pdf_path/tex_path (the old PDF is stale); render_pdf produces a new one.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | Typed edit ops. Each is an object with a `kind`, one of: replace_summary | toggle_entry | replace_bullet | replace_skills_group | add_skill_item | add_bullet | add_entry | replace_entry | remove_entry | remove_bullet | replace_contact | replace_certifications | add_extra_section | replace_extra_section | remove_extra_section | move_extra_section. To change a field ON an entry — dates, title, company, project name, link, tech — use replace_entry with that entry's index and the full edited entry object; it is scoped to that one entry (a whole-resume replace is the separate update_base_resume tool). See the tool description for each op's shape. add_extra_section/replace_extra_section `value` is {key,title,enabled,type:"entries"|"bullets"} plus EITHER entries:[{heading,subheading?,location?,date?,link?,enabled,bullets:[str]}] OR bullets:[str] — never both; unknown keys are rejected (400, extra="forbid"). | |
| application_id | Yes |