Prowrit / prompt engineering studio
pipeline · 2 steps

The Honest Tailor — the workflow, engineered

You want: an application tailored to the posting — without a word you can't back up.

why this shape the writing and the honesty-check must be separate: a fresh-context checker catches invented experience the writer can't see itself adding

✓ Reviewed before you saw it passed all 5 checks — an automated, fresh-context review

how this was engineeredanalyzed 2 assumptions surfaceddesigned 2 steps · 1 gatereviewed 5/5 checks ✓

2 chat runs · 2 things you paste in · quality-checked (retries ≤2×)

you start withyour cv · the job posting↓ tailored summary + cover letter draft + an…↓ ✓ pass — continuesyou geta posting-matched summary and cover letter you can defendline by line in the interview1agentTailorrewrite the CV summary and draft the cover letter inthe posting's language2quality checkFact Checkverify every claim against the real CV; bounceanything invented↩ fix-list — back to 1. Tailor · ≤2×

The Honest Tailor — the workflow in words

Shape: pipeline. 2 steps, in this order.

  1. Step 1 of 2: Tailor — Agent. rewrite the CV summary and draft the cover letter in the posting's language. Takes the material you supply. Produces tailored summary + cover letter draft + an honest gaps list.
  2. Step 2 of 2: Fact Check — Quality check. verify every claim against the real CV; bounce anything invented. Takes Tailor. Produces PASS, or a numbered fix-list of unsupported claims. On failure, sends its fix-list back to Tailor, up to 2 times.

Final output: a posting-matched summary and cover letter you can defend line by line in the interview

in plain words The Tailor rewrites your CV summary and drafts the letter in the posting's own language; the Fact Check then compares every claim against your real CV and sends anything invented straight back for repair.

What I assumed — if a guess is wrong, fix the brief and rerun

  • assumed one posting at a time — tailoring is the whole point
  • assumed a professional but human tone — matched to the posting's register

Would sharpen the result

  • one story or achievement you're proud of that the CV undersells — gold for the letter

Run it — 2 steps, in this order

Run the Tailor, then paste its output plus your CV into the Fact Check; if it returns a fix-list, give that list back to the Tailor and re-check — at most twice.

  1. 1

    Tailor

    Agent◆ your strongest model

    rewrite the CV summary and draft the cover letter in the posting's language

    give it your material — whatever this step's {{PLACEHOLDER}} asks for it returns tailored summary + cover letter draft + an honest gaps list
    Show the prompt for this step
    ## Role
    You are a careers writer tailoring one application to one posting. You work only with the candidate's real experience.
    
    ## The candidate's CV
    ```
    {{PASTE_YOUR_CV_HERE}}
    ```
    
    ## The job posting
    ```
    {{PASTE_THE_JOB_POSTING_HERE}}
    ```
    
    ## Instructions
    1. Extract the posting's top 5 requirements in its own vocabulary — mirror their words, because screeners (human and software) match on them.
    2. Rewrite the CV's professional summary (3-4 lines) so the strongest genuine matches lead.
    3. Draft a cover letter (≤300 words): one concrete story from the CV per key requirement, no adjectives doing the work evidence should do.
    4. Where the CV genuinely lacks a requirement, do not fake it — note it under GAPS with the closest real adjacent experience.
    
    ## Output contract
    THE 5 REQUIREMENTS (their words) → NEW SUMMARY → COVER LETTER → GAPS. Every claim must trace to something in the CV.
    copy & open in: ·
  2. 2

    Fact Check

    Quality check◆ your strongest model↩ on fail, back to Tailor (≤2×)

    verify every claim against the real CV; bounce anything invented

    give it the output of Tailor it returns PASS, or a numbered fix-list of unsupported claims
    Show the prompt for this step
    ## Role
    You are a skeptical recruiter fact-checking an application against the candidate's actual CV. You did not write the draft; judge only what's on the page.
    
    ## The real CV
    ```
    {{PASTE_YOUR_CV_AGAIN_HERE}}
    ```
    
    ## The draft to check
    ```
    {{PASTE_TAILOR_OUTPUT_HERE}}
    ```
    
    ## Rubric — fail the draft if ANY of these holds
    1. A skill, title, employer, or timeframe appears in the draft but not in the CV.
    2. A number (team size, revenue, percentage) is stated more precisely or more favorably than the CV states it.
    3. Experience adjacent to a requirement is phrased as direct experience.
    
    ## Output contract
    Either exactly `PASS` on the first line, followed by one sentence on the draft's strongest claim —
    or `FAIL` followed by a numbered fix-list: each item quotes the draft's claim, quotes what the CV actually supports, and says how to rephrase honestly.
    copy & open in: ·
Worth keeping: The GAPS section is interview prep, not weakness — you'll be asked about exactly those.
copy & open in: ·
take it with you — 6 files — the workflow, AGENTS.md, the eval suite, and a README saying where each one goes
install in your tool —
test it yourself — 2 promptfoo configs, one per step + a README · built from this workflow's own output contracts