Rebuild Tailored Resume
tailor_applicationApply typed edits to your base resume to create a job-specific application draft, replacing any prior tailored version.
Instructions
REBUILD FROM SCRATCH: apply typed edit ops to the BASE resume and store the result as customized_json, REPLACING whatever was there before wholesale.
`ops` carry only the changed fields (same op shapes as edit_base_resume; the
base is in get_base_resume) — the server starts from the stored base and
inherits every untouched field from IT, not from any prior tailored draft.
If an application already has tailored edits (from a previous tailor_application
or edit_application call), calling this again DESTROYS them — the new result is
computed fresh from the base, not layered on top. edit_application is the
in-place alternative that preserves the current tailored draft (refining
wording, swapping a bullet, retrying after a PDF preview).
Does NOT trigger AI suggestions. A job has one application: with no application_id,
the job's newest is updated in place and takes this base (still replaced wholesale);
pass application_id to target a specific application explicitly. `ops` accepts
the FULL vocabulary documented on edit_base_resume — every kind, not just
the bullet/summary ones: replace_entry is how you change an entry's dates, title,
company or tech list, and add/replace/remove/move_extra_section handle custom
sections, which are ATS-neutral.
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"). | |
| job_id | Yes | ||
| base_resume | Yes | ||
| application_id | No |