---
name: "cover_letter_writing"
description: "Write, rewrite, or review a cover letter that earns the interview: match the letter to the posting line by line, open with evidence instead of flattery, prove fit with one concrete story, and trim to one page. Use when someone asks for a cover letter, a letter for a specific job posting, a career-change letter, or feedback on a draft letter."
---

# Purpose

Turn a job posting and a candidate record into a one page letter that answers one question: why this person, for this job, at this employer. The resume lists the record. The letter makes the case, in the order the employer cares about. Every claim in the letter comes from the candidate record or the posting. Nothing gets invented to make the case sound stronger.

# Workflow

## 1. Collect the inputs before drafting

Gather all of these first. Drafting without them produces a generic letter.

- The full posting text, saved word for word, including the job title, any reference number or code, and the closing date if one is listed.
- The candidate resume or work record, with dates, titles, and results as the candidate reported them.
- The hiring manager name if it can be found from the posting or the employer site. If no name can be verified, plan to use Dear Hiring Manager.
- One specific fact about the employer that connects to the candidate, taken from the employer site, the posting, or a named project or product. A vague compliment does not count as a fact.
- Any honest complication the letter may need to handle: a career change, a gap, a missing required skill, or a move to a new location. Get the candidate version of it, in their words.

Ask for missing numbers directly: how many, how much, how long, how often. If the candidate cannot supply a number, mark that spot `[to confirm]` in your working notes and write the sentence without a number.

## 2. Build the posting match map

Read the posting and pull it apart before writing a single sentence. Full worksheet in `references/posting-match-worksheet.md`.

- Sort every requirement into required and preferred. Treat items under requirements, must have, or repeated several times as required. Treat nice to have and mentioned once as preferred.
- For each requirement, write the candidate evidence that answers it: a role, a project, a result, a credential. One line per requirement, in the candidate words where you can.
- Copy the exact phrases the posting uses for its top skills. If the posting says stakeholder management, the letter says stakeholder management, not stakeholder relations. Applicant tracking systems scan cover letters for keywords from the posting, and hiring readers use the same words.
- Mark gaps plainly. A required item with no honest evidence is a gap. Do not paper over it. Plan either to answer it with transferable evidence or to name the adjacent experience and the plan to close the gap.
- Rank the evidence. The strongest match to a required item becomes the lead proof in the letter. The second strongest becomes the supporting proof. The rest stays on the resume.

Stop here and show the user the match map if any required item is a gap. The letter strategy changes when the case is transfer, not direct experience.

## 3. Open with evidence, not flattery

Write the opening paragraph last in your head but first on the page. Keep it to one to three sentences.

- Sentence one names the job, exactly as the posting titles it, plus any reference code, and gives the single strongest proof point from the match map.
- Sentence two gives the specific reason for this employer, built on the one verified employer fact from step 1, and ties it to something the candidate has actually done.
- End the opening with a short preview of the two or three skills the body will prove.

Cut these openers on sight: thrilled to apply, long time admirer, your esteemed company, I believe I would be a perfect fit. Praise without a fact attached is flattery, and readers skip it. If a compliment stays, it must carry a fact and a link back to the candidate record in the same sentence.

Weak: "I was excited to see your posting because I have always admired your commitment to quality."
Strong: "I am applying for the Quality Analyst role (ref. QA-214). In my current role I cut repeat defects by a third by rebuilding the inspection checklist, the same kind of work your posting lists first under responsibilities."

## 4. Prove fit with one story

Build the body around one story, told well, plus one shorter proof. Do not try to cover the whole resume.

- Tell the main story in three beats: the situation the candidate faced, the action they personally took, and the result, with a number if the record has one.
- Keep the candidate as the actor. We did hides the candidate. Name what they did themselves, even inside a team result.
- Close the story with one sentence that hands the result to this employer: what that experience lets them do in this job, using the posting words for it.
- Use the second body paragraph, if you need one, for the second proof from the match map, told shorter: claim, example, result, in three to five sentences.
- Start each body paragraph with a topic sentence that names the skill it proves. A reader skimming only first sentences should still get the whole case.

For a career changer or an early career candidate with no direct match, the story comes from the closest setting: school projects, volunteering, a prior trade, freelance work. Say plainly why the move makes sense, name the transferable skill, and prove it with that story. Do not apologise for the change and do not hide it.

## 5. Close short and direct

Keep the closing to one to three sentences.

- Restate fit in one line, tied to the employer need, not to the candidate hopes.
- Ask for the conversation directly: I would welcome the chance to discuss, or I am available for an interview at your convenience.
- Thank the reader once, give the best contact route, and sign off with Sincerely or Best regards, followed by the candidate name.

## 6. Trim to one page

Run the trim pass before showing anyone the letter. The checker in `scripts/check_letter.py` automates the mechanical parts.

- Hard cap: one page. In practice that means about 250 to 350 words of body text, three to four paragraphs, single spaced with a blank line between paragraphs, one inch margins, and a plain font at 10 to 12 points.
- Cut in this order: sentences that repeat a resume bullet word for word, adjectives with no proof behind them (hardworking, passionate, detail oriented on their own), the second mention of any fact, and any sentence about what the job will do for the candidate.
- Check the letter against the resume side by side. The letter may expand a bullet with context and a story. It may not restate the bullet list as prose.
- Verify every name: employer name, job title, hiring manager name and spelling, candidate phone and email. One wrong name costs more than any weak sentence.
- Read it aloud once. Sentences you stumble on get split or cut.

Run the checker: `python3 scripts/check_letter.py letter.txt --posting posting.txt`. Fix every flag it raises or write down why the flag does not apply.

# Output Contract

Deliver, in this order:

1. The letter itself, ready to paste or attach, with heading, salutation, three to four paragraphs, closing, and contact line. One page. No placeholders left in it.
2. The posting match map: one line per required and preferred item, the evidence used, and any gap the letter handled or left open.
3. A short flag list: every `[to confirm]` item, every number that needs the candidate to verify it, and any employer fact that needs a source check before sending.

When asked only to review a draft, return: the rewritten letter, then a cut list naming what you removed and why (resume repeat, flattery, unproven claim, length), then the same flag list. Do not return comments only when a rewrite was asked for.

Two full worked letters, one direct match and one career change, live in `references/worked-letters.md`. Match their structure and level of proof, not their wording.

# Operating Rules

1. Never invent a metric, a date, a credential, a referral, a connection, or an employer fact. If it is not in the candidate record, the posting, or a source you checked this run, it does not go in the letter.
2. Never claim a keyword skill the candidate does not have. Leaving a required keyword out and flagging the gap beats stuffing it in. Never use hidden text, repeated keyword blocks, or any trick aimed at the tracking system instead of the reader.
3. One letter per posting. Reusing a letter with only the employer name swapped is the failure this skill exists to prevent. If the user wants one letter for many jobs, build one strong base letter and then run steps 2 to 6 again for each posting.
4. Address a named person when the name is verified. Use the full name when a title or gender is uncertain. Fall back to Dear Hiring Manager, never To Whom It May Concern.
5. Keep the focus on what the candidate will do for the employer. One sentence on why the candidate wants the job is enough. The rest is evidence.
6. This skill writes cover letters. Resumes, interview prep, and thank you notes after an interview are different jobs. Say so and hand off instead of stretching the letter to cover them.
