Open source · Claude skill · v0.1

Dossier: a job application pipeline that shows its work

Paste a job link. Dossier reads the posting, tailors your resume and cover letter from facts you have verified, scores them against the posting's keywords, and stops. Nothing ships until you approve every change. Then you get a package per job and a tracker that keeps itself current.

ats_report.mdAdobe · 2027 MBA Intern, Product Manager
71%weighted keyword coverage · 18 of 33 posting terms present · required-section coverage 64%
Missing termWhere in postingDecision
marketing automationRequirementsadded · Marketo admin at three companies
dashboardsRequirementsadded · weekly COO pipeline readout
power biRequirementsleft out · not true (Tableau only)
salesforce marketing cloudRequirementsleft out · not true
agenticPreferredadded · agents ran on scoped API permissions
before · master resumeBuilt an AI agent suite for BDR and GTM Ops teams; projected $385K annual savings
after · tailored, awaiting approvalBuilt an agentic AI suite for BDR and GTM Ops teams with engineering and RevOps; 200+ weekly users and a projected $385K in annual savings

Justified by profile lines 41 and 44. Scope, number, and title unchanged.

01 / pipeline

Five stages, one hard rule

The rule: every claim in the output traces to a fact you stated. When a posting asks for something that is not in your file, Dossier asks you. It never infers, rounds up, or invents. That is what makes the result safe to send with your name on it.

  1. 00 · once

    Profile

    It reads your current resume, then asks the five to ten questions a resume leaves out: which tools you owned versus touched, the number behind each bullet, projects, things you never want claimed, and your format rules. The answers become the fact bank every later stage draws from.

  2. 01

    Source

    Paste links, or give a title and a city. It reads your target companies' own job feeds (Greenhouse, Lever, Ashby, SmartRecruiters, Amazon) rather than a search engine, so the list is complete and every link is the employer's own posting. Repeat runs show only what is new, ranked by how well your current resume already covers each role. You pick.

  3. 02

    Analyze

    Each posting is saved as it read that day, then broken into must-haves, nice-to-haves, keywords, and the specific signals a cover letter can use. Must-haves with no supporting fact are flagged as gaps before anything is drafted.

  4. 02b

    Warm paths

    Three to five people at the company who share one of your networks: same school and program first, then former colleagues, then communities. It points you at LinkedIn's alumni view in your own account, supplements with public bios, and drafts a note under 120 words in your voice. Public professional profiles only; you send the note.

  5. 03

    Tailor and score

    Selection and translation, not invention. Bullets are reordered and rewritten in the posting's language where the underlying fact supports it. A scorer weights the posting's terms (requirements count triple) and reports coverage; the loop stops when every remaining gap is either untrue of you or irrelevant.

  6. 04

    Approve

    You see the score, every change against your master resume with the fact that justifies it, and the full text of both documents in the chat. One question: approve, or what should change?
    Nothing final is produced before this step

  7. 05

    Package

    Final Word and PDF files, the ATS report re-run on the shipping file, a tracker row with score, file names, and a follow-up date, and one zip per job.

# one application, as delivered 2026-10-21_adobe_pm-intern.zip ├── James Holm - Adobe - PM Intern - Resume.docx ├── James Holm - Adobe - PM Intern - Resume.pdf ├── James Holm - Adobe - PM Intern - Cover Letter.docx ├── James Holm - Adobe - PM Intern - Cover Letter.pdf ├── ats_report.md coverage, gaps, formatting checks ├── changes.md every edit vs. master, with its justification ├── warm_paths.md a few alumni or ex-colleagues there, plus a draft note ├── jd.txt the posting as it read the day you applied └── README.md tracker.xlsx one row per application, status dropdown, follow-up dates
02 / why

The rewrite problem

I built this during my own search, after a layoff, while in the first year of an MBA. Over five weeks I tailored around thirty resumes by hand. The tailoring itself was never the hard part. The hard part was trust: every tool that offered to do it for me rewrote my experience into something I could not defend in an interview, and the reviews of those tools say the same thing.

So the product is the approval gate. The scorer, the Word builder, and the tracker are plumbing. What matters is that you see a before and after for every bullet, the specific fact that justifies each added keyword, and an honest list of the gaps that stayed gaps. A 71% with no padding beats a 95% you have to explain away.

Why a skill and not an app, yet

Because the workflow needed to be proven before the interface did. A skill ships in a day, runs inside a tool my classmates already use, and costs nothing to try. The prompts and the scoring logic are the product; if people come back to it, the browser extension and the app are the next step, and the pieces port straight over.

What the ATS score actually is

A weighted keyword-coverage proxy. It extracts tools, skills, certifications, acronyms, and repeated phrases from the posting, counts requirements-section terms triple, knows the common synonyms (GTM and go-to-market, SFDC and Salesforce), and checks a Word file for the things that break parsers: tables, text boxes, multi-column layouts, contact info hidden in the header. It is not a prediction of an interview. It is a list of things to fix, ranked.

03 / get it

Install in about two minutes

Dossier is a folder of instructions and five small Python scripts. Claude runs it; you do not need to.

  1. Download dossier.zip. Do not unzip it.
  2. In Claude, turn on code execution under Settings → Capabilities. (On a Team or Enterprise plan, an owner enables it under Organization settings.)
  3. Go to Customize → Skills, click +, then Create skill, then Upload a skill, and choose the zip.
  4. Toggle it on. Start a chat, attach your resume, and say: "Set up Dossier. I'm targeting product marketing roles in LA."

Using Claude Code instead? Unzip and drop the dossier folder into ~/.claude/skills/. The README inside covers everything else, including how to run the scorer on your own against any posting.

04 / limits

What it does not do

  • Read LinkedIn or Indeed. They block automated reading. Paste the text, or use the employer's own posting, which the LinkedIn page links to.
  • Submit for you. It prepares; you apply. Portals ask questions only you should answer, and that is the one click where a person belongs.
  • Predict outcomes. The score is coverage, not odds. Above 75% usually clears automated screens. Above 90% usually means padding, and it will say so.
  • Replace reading your own resume. It drafts and shows its work. You still read every line before you submit.