← All craftbooks

Tailored Cover Letter

Content and writingevalv1.0.0released 2026-06-05workflow: build-loop

Write a tailored, one-page cover letter that maps a candidate's real background to a specific job's requirements: it first scopes the role's key requirements, the company hook, and the 3-4 strongest matching proof points from the applicant's experience, then drafts a focused letter with a specific opening, evidence-backed body paragraphs, and a confident close. Covers cover letter, job application letter, motivation letter, application writing, and personalized cover letter. Scoping the role-to-experience mapping before writing is the point: a small model that picks the strongest evidence for THIS job avoids the generic, one-size-fits-all letter that could be sent anywhere and lists duties instead of proving fit.

Steps

Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.

  1. Fit scopeplannerentry

    map role requirements to the strongest proof points

    Show working prompt
    1) Extract the role's 3-5 KEY requirements from the job description (skills, experience, traits the employer most wants). 2) Identify a genuine hook about the company (mission, product, recent news) for the opening — generic flattery is out of scope. 3) From the candidate's background, pick the 3-4 STRONGEST matching achievements, each with a concrete, quantified result (not a duty). 4) Note the hiring manager name if known, and the target role title. 5) Decide tone (formal vs warm) to match the company. Write an acceptance-criteria checklist (e.g. 'opening names the specific role/company hook'; 'each body point proves a requirement with a concrete result'; 'no generic filler that could apply to any job'; 'one page / 250-350 words'; 'confident close with a call to interview'). Use write_task_note for the fit map + checklist, and write the same to the produces path. No letter prose yet.
  2. Draft the lettercopywriter

    write the tailored one-page letter to the fit map

    Show working prompt
    Write the cover letter from the fit map. 1) Salutation (named manager if known). 2) Opening paragraph: state the role and lead with the specific company hook and why the candidate is excited — concrete, not generic. 3) Body (1-2 paragraphs): for each key requirement, show the matching achievement with its quantified result, mapping experience directly to what the job needs. 4) Brief paragraph on fit/culture if relevant. 5) Confident close: reiterate value and request an interview. Keep it to one page (250-350 words), first person, active voice, no clichés ('hard worker', 'team player' without proof). Output as markdown. Save to the produces path and note the word count.
  3. Evaluatereviewer

    Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.

    Show working prompt
    Read cover-letter.md against the fit map and job description. Check EACH criterion and write PASS/FAIL: (a) the opening names the specific role and a genuine company hook; (b) each body point proves a job requirement with a concrete, quantified result; (c) no generic filler that could apply to any job; (d) length is one page (250-350 words); (e) confident close with an interview ask; (f) active voice, no unproven clichés. A letter that could be mailed to any employer or just lists duties FAILS — loop back to draft.
    
    Then route — this is the whole point of the loop:
    
    - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`.
    - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "draft" })` to loop back. The builder fixes exactly those gaps.
    
    Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.
  4. Finishdeveloper

    All acceptance criteria met. Stamp a short summary and report DONE.

    Show working prompt
    Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.

Triggers

Phrases that suggest this craftbook to a crew.

Source

View this craftbook on GitHub · MIT license