mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
192 lines
7.7 KiB
Markdown
192 lines
7.7 KiB
Markdown
# /apply - Drafter-Reviewer Job Application Workflow
|
|
|
|
You are orchestrating a two-agent job application workflow. The job posting is provided below as `$ARGUMENTS` (either a URL or pasted text).
|
|
|
|
Follow these steps **exactly in order**. Do not skip steps.
|
|
|
|
---
|
|
|
|
## Step 0: Parse Input
|
|
|
|
- If `$ARGUMENTS` looks like a URL, use `WebFetch` to retrieve the job posting content.
|
|
- If it is pasted text, use it directly.
|
|
- Extract: **company name**, **role title**, **department** (if mentioned), **location**, and **language** of the posting (Danish or English).
|
|
- Store these for use throughout the workflow.
|
|
|
|
---
|
|
|
|
## Step 1: DRAFTER - Evaluate Fit
|
|
|
|
Read the evaluation framework:
|
|
- `.claude/skills/job-application-assistant/04-job-evaluation.md`
|
|
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
|
|
|
Using the framework from `04-job-evaluation.md`, evaluate the job posting against the candidate's profile. If the salary lookup tool is configured, run:
|
|
|
|
```bash
|
|
python salary_lookup.py "<Company Name>" --json
|
|
```
|
|
|
|
If the posting specifies a city, add `--city "<City>"` to narrow results. Parse the JSON output and include the salary benchmark in the evaluation. If the tool is not configured or returns an error, skip the salary benchmark.
|
|
|
|
Present the evaluation to the user with:
|
|
|
|
1. **Skills match** - which required/preferred skills match vs. gaps
|
|
2. **Experience match** - how work history maps to the role
|
|
3. **Behavioral/culture match** - how behavioral profile fits the role/company culture
|
|
4. **Salary benchmark** - salary index for the company (if available)
|
|
5. **Overall fit score** and recommendation (strong fit / moderate fit / weak fit)
|
|
|
|
After presenting the evaluation, ask the user:
|
|
> "Should I proceed with drafting the CV and cover letter for this role?"
|
|
|
|
**If the user says no, stop here.** If yes, continue to Step 2.
|
|
|
|
---
|
|
|
|
## Step 2: DRAFTER - Draft CV + Cover Letter
|
|
|
|
Read the following reference files:
|
|
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
|
- `.claude/skills/job-application-assistant/03-writing-style.md`
|
|
- `.claude/skills/job-application-assistant/05-cv-templates.md`
|
|
- `.claude/skills/job-application-assistant/06-cover-letter-templates.md`
|
|
|
|
Also read the most recent existing CV and cover letter files for structural reference:
|
|
- Read any existing `cv/main_*.tex` file as a LaTeX template reference
|
|
- Read any existing `cover_letters/cover_*.tex` or `cover_letters/Cover_*.tex` file as a template reference
|
|
|
|
### CV (`cv/main_<company>.tex`)
|
|
- Always in **English**
|
|
- Follow the moderncv/banking format from `05-cv-templates.md`
|
|
- Tailor the profile statement and experience bullets to the specific role
|
|
- Reframe skills and achievements to match job requirements
|
|
- Keep to 2 pages
|
|
|
|
### Cover Letter (`cover_letters/cover_<company>_<role>.tex`)
|
|
- **Match the language of the job posting** (Danish posting -> Danish cover letter, English posting -> English cover letter)
|
|
- Follow the structure from `06-cover-letter-templates.md`
|
|
- Use the `cover.cls` template
|
|
- Tailor the opening paragraph to the specific role and company
|
|
- Address to a named person if available in the posting, otherwise "Dear Hiring Manager" (or equivalent in posting language)
|
|
- Keep to approximately one page
|
|
- Any mention of agentic coding or AI tooling must reference **Claude Code** by name
|
|
|
|
Write both files to disk.
|
|
|
|
---
|
|
|
|
## Step 3: REVIEWER - Research & Critique
|
|
|
|
Use the **Agent tool** to spawn a `general-purpose` reviewer agent with the following prompt:
|
|
|
|
```
|
|
You are a hiring manager proxy reviewing a job application. Your job is to make the application as targeted and compelling as possible.
|
|
|
|
## Your Tasks
|
|
|
|
### 1. Research the Company
|
|
Use WebSearch and WebFetch to research:
|
|
- The company's website, mission, and recent news
|
|
- The specific department or team (if mentioned in the posting)
|
|
- Any recent projects, press releases, or strategic initiatives relevant to the role
|
|
- Company culture and values
|
|
|
|
### 2. Read All Reference Materials
|
|
Read these files to understand the candidate and quality standards:
|
|
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
|
- `.claude/skills/job-application-assistant/02-behavioral-profile.md`
|
|
- `.claude/skills/job-application-assistant/03-writing-style.md`
|
|
- `.claude/skills/job-application-assistant/04-job-evaluation.md`
|
|
- `.claude/skills/job-application-assistant/05-cv-templates.md`
|
|
- `.claude/skills/job-application-assistant/06-cover-letter-templates.md`
|
|
|
|
### 3. Read the Drafts
|
|
Read the drafted CV and cover letter:
|
|
- `cv/main_<COMPANY>.tex`
|
|
- `cover_letters/cover_<COMPANY>_<ROLE>.tex`
|
|
|
|
### 4. Read the Job Posting
|
|
<JOB_POSTING>
|
|
<INSERT_JOB_POSTING_TEXT_HERE>
|
|
</JOB_POSTING>
|
|
|
|
### 5. Produce Feedback
|
|
Return a structured critique with **specific, actionable suggestions** in these categories:
|
|
|
|
**a) Missed keywords/requirements**
|
|
- List any requirements or keywords from the posting that are not addressed in the CV or cover letter
|
|
- For each, suggest where and how to add them (with specific text suggestions)
|
|
|
|
**b) Company/department-specific angles**
|
|
- Based on your research, suggest specific angles to add
|
|
- Suggest how to connect experience to the company's strategic priorities
|
|
|
|
**c) Action-oriented reframing**
|
|
- Identify passive or generic statements and suggest action-oriented rewrites
|
|
|
|
**d) Tone and style issues**
|
|
- Check against the writing style guide (03-writing-style.md)
|
|
- Flag any issues with tone, formality, or voice
|
|
|
|
**e) Verification checklist**
|
|
Run this checklist and report pass/fail for each:
|
|
- [ ] All claims match actual profile - no fabricated skills, experience, or achievements
|
|
- [ ] Job titles, dates, company names, and locations are correct
|
|
- [ ] Contact details are correct
|
|
- [ ] Profile statement is tailored to the specific role
|
|
- [ ] Key job requirements are addressed
|
|
- [ ] No LaTeX syntax errors (balanced braces, correct commands)
|
|
- [ ] No spelling or grammar errors
|
|
- [ ] Agentic coding / AI tooling references mention Claude Code by name
|
|
- [ ] Cover letter addressed correctly
|
|
- [ ] Cover letter fits approximately one page
|
|
- [ ] CV follows 2-page moderncv/banking format
|
|
|
|
**CRITICAL RULE:** All suggestions must be grounded in actual profile data. Do NOT suggest fabricating skills, experience, or achievements. If a requirement is a gap, say so honestly and suggest how to frame adjacent experience instead.
|
|
|
|
Return your full feedback as a single structured message.
|
|
```
|
|
|
|
**Important:** Before spawning the agent, replace `<COMPANY>`, `<ROLE>`, and `<INSERT_JOB_POSTING_TEXT_HERE>` with the actual values from Steps 0-2.
|
|
|
|
---
|
|
|
|
## Step 4: DRAFTER - Revise Based on Feedback
|
|
|
|
Once the reviewer agent returns its feedback:
|
|
|
|
1. Read the reviewer's suggestions carefully
|
|
2. Read both draft files again
|
|
3. Incorporate the suggestions that improve the application:
|
|
- Add missed keywords where they fit naturally
|
|
- Add company-specific angles from the reviewer's research
|
|
- Reframe passive statements to be more action-oriented
|
|
- Fix any tone/style issues
|
|
- Fix any verification checklist failures
|
|
4. Update both files **in place** (edit, don't recreate)
|
|
5. Do NOT incorporate suggestions that would fabricate skills or experience
|
|
|
|
---
|
|
|
|
## Step 5: Present Final Output
|
|
|
|
After revision, present to the user:
|
|
|
|
### Verification Checklist
|
|
Re-run the full verification checklist from CLAUDE.md and report pass/fail for each item.
|
|
|
|
### Key Tailoring Decisions
|
|
Summarize 3-5 key decisions made to tailor the application:
|
|
- What was emphasized and why
|
|
- What company-specific angles were incorporated
|
|
- What the reviewer suggested that was most impactful
|
|
- Any gaps that were acknowledged or reframed
|
|
|
|
### Files Created
|
|
List the files written:
|
|
- `cv/main_<company>.tex`
|
|
- `cover_letters/cover_<company>_<role>.tex`
|
|
|
|
Tell the user: "Both files are ready for your review. Open them to check the final output before compiling."
|