BareGit
---
name: job-cover-letter
description: Draft a tailored, job-specific cover letter from a resume, a job posting, and research about the target company. Use when the user wants to write, draft, generate, or improve a cover letter for a specific job.
---

# Cover Letter

Draft a one-page, tailored cover letter for a specific job. Strong
cover letters are built from three inputs — the candidate's resume,
the job posting, and concrete details about the company — and follow a
small set of writing principles. Skip any of those inputs and the
letter will read generic.

## Workflow

Follow these steps in order. Do not skip ahead — drafting without
inputs or research is the single most common failure mode.

### Step 1: Gather inputs

Before drafting anything, you need both of these. If either is
missing, ask the user for it.

1. **Resume** — file path, pasted text, or a link. Read it fully
   before writing.
2. **Job posting** — file path, pasted text, or URL. If it's a URL,
   fetch it with WebFetch. Read the full posting; do not skim.

Also helpful, ask if not provided:
- **Hiring manager's name** (if known) — beats "Dear Hiring Manager"
- **Tone preference** — formal, conversational, or match-the-company
  (default)
- **Anything to emphasize or avoid** — e.g., explaining a career
  change, downplaying a gap

Do not proceed to Step 2 until you have at least the resume and job
posting.

### Step 2: Research the company

Use WebSearch and WebFetch to find:

1. **What the company does** — read their About page, recent product
   launches, and mission statement.
2. **One or two specific, recent things** — a product launch, news
   item, public initiative, or value statement that the candidate can
   plausibly connect to. Generic admiration ("I admire your work") is
   worthless; one specific reference beats three vague compliments.
3. **Tone and voice** — skim their website copy and any public-facing
   communications. A fintech firm wants polished; a startup wants
   energy. The letter's voice should mirror this.

Search queries that work well:
- `<company name> about` / `<company name> mission`
- `<company name> news <current year>`
- `<company name> blog`
- `<company name> <relevant product or team>`

If the company is obscure and search turns up little, tell the user
and ask if they have any inside knowledge to share.

### Step 3: Plan before drafting

Do not start writing prose yet. First, do this analysis (briefly, in
your head or as notes):

1. **Extract the job's must-haves.** Pull 4-6 specific
   skills/responsibilities from the posting. Mirror their exact
   phrasing later — if they say "distributed systems," don't write
   "large-scale infrastructure."
2. **Find the overlap.** For each must-have, identify one specific
   item from the resume that demonstrates it. Prefer items with
   metrics (% improvement, $ saved, users affected, time reduced).
3. **Pick the company hook.** Choose ONE specific thing from your
   research that ties to the candidate's experience or motivations.
   This goes in the opener.
4. **Pick 2-3 stories.** Each story = situation + action +
   result-with-a-number. These fill the body.

If you can't find at least one quantified achievement in the resume
that maps to the job's requirements, surface this to the user before
drafting — the letter will be weak without concrete results.

### Step 4: Draft

Write 4-5 short paragraphs, one page total. Structure:

| Section | Contents | Length |
|---|---|---|
| Header | Candidate name, contact info, date, addressee | 4-6 lines |
| Intro | Who they are, what role, ONE specific company hook | 2-4 sentences |
| Body (1-2 paragraphs) | 2-3 stories with metrics, mirroring the job's language | ~60% of the letter |
| Conclusion | Polite, open call-to-action — never "I'll call you" | 2-3 sentences |
| Signature | "Sincerely," + name | 2 lines |

Detailed structural guidance, story formula, tone matching, banned
phrases, and worked example comparisons are in
[references/best-practices.md](references/best-practices.md). **Read
it before drafting the first time** — it contains the rules that make
the difference between a forgettable letter and a strong one.

### Step 5: Self-review against the checklist

Before showing the letter to the user, run through the checklist at
the end of
[references/best-practices.md](references/best-practices.md). Common
things to catch:

- Generic adjectives instead of evidence ("detail-oriented,"
  "self-starter")
- Opening with "I am writing to apply for…"
- Body claims without numbers
- Banned phrases ("To Whom It May Concern," "think outside the box,"
  "game-changer")
- A closing that oversteps ("I will call you next week")
- Restating the resume instead of expanding on it

Fix anything that fails the check, then present the draft.

### Step 6: Offer to iterate

After presenting the draft, briefly ask whether the user wants to:
- Adjust the tone (more formal / more casual)
- Swap in different stories or emphasize different skills
- Shorten / lengthen specific paragraphs
- Try a different opening

Keep iterations focused — change one dimension at a time.

## Important rules

- **One page.** If the draft is running long, cut — don't shrink the
  font.
- **Never invent achievements, metrics, employers, or skills.** If the
  resume doesn't support a claim, do not write it. Ask the user
  instead.
- **Mirror the posting's language.** This helps with both human
  readers and ATS keyword scans.
- **Specific > generic, every time.** A named product, a number, a
  real story always beats an adjective.
- **No templates, no boilerplate.** Each cover letter is written for
  one specific job.
- If the cover letter is to be written in LaTeX, use the “charter”
  font.