| name | identify-optimization-targets |
| description | Identify which resume blocks need optimization for a given job description. Analyzes LaTeX source against JD requirements and match analysis to produce a prioritized optimization queue. Only targets experience blocks (\resumeSubheading + \resumeItem), education blocks, project blocks, and skills blocks. Non-experience sections (publications, awards, certifications, volunteer work, etc.) are NEVER optimized.
|
Identify Optimization Targets
You are tasked with analyzing a LaTeX resume source alongside job requirements
and match analysis to identify which specific blocks need optimization and in
what order.
Input
You receive three inputs:
- currentTex: The complete .tex source of the resume
- jobRequirements: Structured JobRequirements JSON
- matchAnalysis: Match score analysis JSON with gaps and keyword coverage
Output
Return a JSON array (OptimizationQueue):
[
{
"section": "experience",
"blockIndex": 0,
"reason": "Missing 'distributed systems' keyword from req_2; this role's description is closest to the requirement",
"priority": 1,
"strategy": "keyword_alignment"
},
{
"section": "skills",
"blockIndex": 0,
"reason": "Skills section doesn't list Kubernetes (req_5, must_have)",
"priority": 2,
"strategy": "gap_bridging"
}
]
Optimizable Sections (WHITELIST)
Only the following section types may appear in the optimization queue:
| Section | Block definition | Optimizable? |
|---|
| Experience | \resumeSubheading{…}{…}{…}{…} + child \resumeItem{…} list | YES |
| Education | \resumeSubheading{…}{…}{…}{…} + child items | YES |
| Projects | \resumeProjectHeading{…}{…} or \resumeSubheading + child \resumeItem list | YES |
| Skills | \textbf{Category}{: skill list} lines | YES |
| Publications | \resumeNonExperience{…} entries | NO — NEVER optimize |
| Awards / Honors | \resumeNonExperience{…} or \awardEntry{…}{…} | NO — NEVER optimize |
| Certifications | \resumeNonExperience{…} entries | NO — NEVER optimize |
| Volunteer / Leadership | \resumeNonExperience{…} entries | NO — NEVER optimize |
| Teaching | \resumeNonExperience{…} entries | NO — NEVER optimize |
| Affiliations | \resumeNonExperience{…} entries | NO — NEVER optimize |
| Header | Personal info (name, email, links) | NO — NEVER optimize |
Rule: If a section uses \resumeNonExperience{…} as its primary entry
command, it is a non-experience section and MUST NOT be included in the
optimization queue. These sections contain factual records (publications,
certifications, awards) that cannot be ethically reworded for JD alignment.
Block Boundary Identification
Locate blocks using these LaTeX patterns:
- Section boundaries:
%----SECTION---- comment delimiters or \section{…}
- Subheading start:
\resumeSubheading{ or \resumeProjectHeading{
- Item grouping:
\resumeItemListStart … \resumeItemListEnd
- Skills lines:
\textbf{…}{: …} within the Skills section
Count blockIndex sequentially within each section, starting at 0.
Strategy Types
Each target must specify exactly one strategy:
- keyword_alignment: Naturally incorporate JD keywords into existing
bullet points without changing meaning.
- gap_bridging: Honestly reframe existing experience to address a
gap identified in the match analysis. No fabrication.
- quantification: Add inferrable metrics to vague statements.
E.g., "Led team" → "Led cross-functional team of 8"
- reordering: Move higher-relevance bullets to the top of a block.
- pruning: Shorten or simplify content that is irrelevant to the target
JD, reclaiming space for more relevant content.
Priority Rules
Assign priority numbers (1 = highest) using this ordering:
- gap_bridging for high-severity must_have gaps (priority 1–2)
- keyword_alignment for missing must_have keywords (priority 2–3)
- quantification for vague must_have bullets (priority 3–4)
- gap_bridging for nice_to_have gaps (priority 4–5)
- keyword_alignment for nice_to_have keywords (priority 5–6)
- reordering for relevance improvements (priority 6–7)
- pruning for irrelevant content (priority 7–8)
Constraints
- NEVER include Header block in the queue
- NEVER include non-experience sections (publications, awards,
certifications, volunteer work, teaching, affiliations, or any section
whose entries use
\resumeNonExperience{…})
- Maximum 8 targets in the queue
- Each target's
reason MUST reference a specific JD requirement (by req_id
or quoted text)
- Do not create targets for blocks that are already well-optimized
- If a section has only 1 block and it's already good, skip it
- Prefer optimizing experience and skills sections over education
- NEVER suggest fabricating skills, experience, or achievements that
the candidate does not have — every proposed change must be defensible
in an interview
For detailed strategy definitions and trigger conditions, consult
references/STRATEGIES.md.