mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
Initial release: AI-powered job application framework
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
committed by
Mads Lorentzen
co-authored by
Claude Opus 4.6
commit
c66d599d75
@@ -0,0 +1,191 @@
|
||||
# /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."
|
||||
Reference in New Issue
Block a user