agentsclimarketplace

Write cover letter

Skill jain777/jobclaw-skills/skills/write-cover-letter

Produce a job-specific, profile-grounded cover letter in markdown — ≤ 350 words, ≤ 1 page, three paragraphs (hook → two quantified proofs → fit close). Reuses keywords from a prior tailor-resume sidecar when present. Writes a JSON sidecar reserved for a future /render-resume --kind cover-letter (rendercv).From its SKILL.md

Install
npx -y skills add jain777/jobclaw-skills --skill write-cover-letter

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.9 KB, as published. Nobody here has run it

write-cover-letter

Earn the reader the next 30 seconds. Open with one concrete reason this candidate fits this role at this company. Hard rules: ../_shared/RULES.md. Use Communication / Management / Creative verbs from ../tailor-resume/reference/action-verbs.md.

Inputs

  1. Profile: profile/master-profile.md. Read context: for direction only — never quote.
  2. Job: pasted JD text, a URL (use WebFetch), or an entry from jobs/found-<date>.json. Known-info gate (RULES §6): if no job is given inline, read jobs/current.json and use its jd_text/company/role — do not re-ask for the JD when it's already captured upstream.
  3. Tone: enthusiastic | confident | concise | warm (default: confident).
  4. Optional sidecar: resumes/<slug>.tailor.json from a prior tailor-resume run — reuse its keyword list and basics_overrides.summary so the letter and the resume sing the same notes.
  5. Optional score-fit sidecar: scores/<job-id>.score.json — reuse missing_keywords to know what the resume already incorporated.

If no job is supplied and jobs/current.json is absent, ask for it; the tone has a safe default.

Method

  1. Region note. Read the target region pack:

    • US: cover letters role-dependent — stronger for senior, mission-driven, career-change roles. Surface this in the rationale so the user decides whether to send.
    • IN: cover letters less emphasized; usually a 2–3 sentence email body suffices. Offer a "short form" alternative if the user wants.
  2. Read the JD for 3–5 must-have themes, the JD's tone of voice (formal / casual / mission-led), and any explicit asks ("tell us why you want to work here").

  3. Pick two flagship achievements from the profile that map to those themes — each quantified. No invention; if the profile lacks a quantified match, pick the closest qualitative win and flag the gap rather than fabricating a number.

  4. Draft three paragraphs (≤ 350 words total):

    • Opening hook (~60 words) — concrete reason you/this role fit, anchored to a specific JD theme. Not "I am writing to apply for…". Not "I admire your mission…".
    • Two proof points (~180 words) — each a 2–3 sentence story tying one flagship achievement to one JD must-have. Verb-led, metric-led, no resume restating.
    • Fit close (~110 words) — what specifically excites you about this role (not the company in general). One CTA-style close.
  5. Apply tone modifier + region spelling (US American · IN British) + region date format (if you reference dates).

  6. No salary. No street address. No "References available on request." No context: echo.

Output

  • resumes/<company-slug>-<role-slug>.cover-letter.md — body only (signed with the candidate's name; no address blocks).
  • resumes/<company-slug>-<role-slug>.cover-letter.json — sidecar:
    {
      "company": "...", "role": "...", "tone": "confident",
      "body_md": "...",
      "themes_used": ["..."],
      "source_profile_path": "profile/master-profile.md",
      "source_sidecar_path": "resumes/<slug>.tailor.json" /* or null */
    }
    
    Reserved for /render-resume --kind cover-letter once rendercv cover-letter support lands.
  • Console: 2-line rationale (themes hit · what you cut) + region prevalence note.
  • Final line: "Future: pass to /render-resume --kind cover-letter when rendercv cover-letter support lands."

Anti-patterns

  • "I am writing to apply for the X position at Y." Cut the opener cliché.
  • First-paragraph flattery about the company.
  • Restating the resume in narrative form.
  • Salary / current-CTC / expected-CTC in the body (US: never; IN: only if the JD explicitly asks).
  • Quoting context.career_goal / context.additional_info.
  • Filler ("I believe", "I feel", "I think", "I am passionate about").
  • Emoji.

Rubric (one-page self-check)

  • ≤ 350 words; exactly 3 paragraphs.
  • ≥ 2 quantified proof points.
  • Each proof point ties to a specific JD theme.
  • 1 explicit "why this role" sentence (specific, not generic).
  • No salary, no address, no clichés.
  • Spelling matches region.
  • Verb openers vary across the 6–10 sentences that have them.

Next steps

Cover letter ready. Next: /answer-application-questions for the form, then submit.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.