Initial release: AI-powered job application framework

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
AI Job Search
2026-03-23 08:34:06 +01:00
committed by Mads Lorentzen
co-authored by Claude Opus 4.6
commit c66d599d75
73 changed files with 6539 additions and 0 deletions
+191
View File
@@ -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."