cover-letter
Create a compelling one-page, human-voice cover letter for a job description and generate the final DOCX. Use when the user wants a cover letter only (no…
Process multiple job descriptions from the batch_jds folder into tailored application packages, each produced by the native Resume Team, with independent candidate-fit gates and ordered DOCX and tracker writes. Use when the user has several JDs to run at once, drops files in
$ npx -y skills add jananthan30/Resume-Builder --skill batch-resume --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/batch-resumeContext preview
The summary Claude sees to decide when to auto-load this skill.
Process multiple job descriptions from the batch_jds folder into tailored application packages, each produced by the native Resume Team, with independent candidate-fit gates and ordered DOCX and tracker writes. Use when the user has several JDs to run at once, drops files in
name: batch-resume description: Process multiple job descriptions from the batch_jds folder into tailored application packages, each produced by the native Resume Team, with independent candidate-fit gates and ordered DOCX and tracker writes. Use when the user has several JDs to run at once, drops files in batch_jds, or asks for batch or bulk resume generation across many roles.
Process multiple job descriptions with concurrent read/scoring work. Each resume is produced by the native four-role team; final DOCX and tracker mutations remain ordered and coordinator-owned.
The user may pass options when invoking this skill; the job descriptions themselves are read from `.txt` files in the `batch_jds/` folder.
You are the **team lead** for a batch resume processing operation. Execute the following steps:
---
Scan the `batch_jds/` folder for `.txt` files:
Use file search (`rg --files batch_jds` or `find`) for `batch_jds/*.txt`
Each file should be named: `{Company} - {Job Title}.txt`
Parse the filename to extract:
If no files found, tell the user to add JD text files to `batch_jds/` and explain the naming format.
Display a numbered list of all JDs found and confirm with the user before proceeding.
---
Resolve and read `master_resume_path` from `config.json` once. It is the sole base and factual source for every job; never inspect, screen, or substitute an existing tailored application resume. For each exact JD, independently generate a safe `run_id`, safe `case_id`, and strict ISO `as_of_date`, then run the deterministic machine preflight before starting a scorer, role/native team, output directory, resume draft, DOCX, or tracker operation for that JD:
`python candidate_fit_preflight.py --resume <configured-master-resume> --job-description <exact-JD-file> --run-id <run_id> --case-id <case_id> --as-of-date <YYYY-MM-DD> --json`
Require exit `0` and a valid `candidate-fit-policy-v3` report bound to that JD, master, date, and IDs. Canonically hash it as `candidate_fit_report_digest`. A passing report has exact threshold `70.0`, score at least 70, trustworthy extraction, zero hard knockouts, `passed: true`, and no codes. Exit `1`, any score below 70 (including 60–69), or any hard knockout is `REJECTED:CANDIDATE_FIT`. Create nothing for that JD, record the rejection in the in-memory/private batch report, and continue screening the remaining JDs. Exit `2` or an unavailable, malformed, stale, non-canonical, or digest-mismatched report is `FAILED:CANDIDATE_FIT_PREFLIGHT`; fail that JD closed, create nothing, and continue the remaining independent JDs. There is no automatic or manual workflow bypass. ATS/HR scores are advisory and cannot override this gate.
Keep each passing report, canonical digest, IDs, and date in private coordinator state. Do not create an application directory to store preflight results.
---
If no JD passes candidate fit, skip scorer startup and finish with the rejection report. Otherwise, check whether the scorer server is running:
curl -s http://localhost:8100/health
with `python scorer_server.py --port 8100`.
publication; that advisory failure cannot bypass or reverse candidate fit.
---
Operate only on JDs with a passing candidate-fit report. Read the resume-team skill (`skills/resume-team/SKILL.md`), run the non-model host preflight once, and require macOS or Linux; Windows fails closed with `POSIX_RUNTIME_REQUIRED`. For **each JD file**, derive a prospective non-existing output path but do not create it. Invoke `native_resume_team.py` for the current host with that JD's exact `run_id`, `case_id`, and `as_of_date` instead of manually reproducing `resume-team/v2`. The runtime enforces role separation, lineage, replay protection, three deterministic votes, and receipt/readback verification. Independent read/scoring work may overlap across JDs, but draft publication and tracker writes are serialized.
The runtime recomputes candidate fit from the configured master and exact JD before constructing its output state or role adapter. Require its report and canonical digest to exactly match the independently validated preflight. Each `resume-team-result/v2` runtime `PUBLISHED` result is only an authorized, digest-verified `resume.md` draft-stage artifact. Independently verify `final_draft_digest`; do not count it as a completed package. The task must still finish its cover letter, both DOCX files, tracker update, artifact verification, cleanup, and final report.
If a runtime defense-in-depth recomputation instead returns `REJECTED:CANDIDATE_FIT` or `FAILED:CANDIDATE_FIT_PREFLIGHT`, require that JD's prospective output path to remain absent, record the closed result, and continue the remaining independently passing JDs without creating a fallback package.
For every draft, resolve `authorization_receipt_path` against its output directory when relative and require the resolved parent to equal that resolved directory. Read only regular, non-symlink JSON, recompute its canonical digest, and require it to equal `authorization_receipt_digest` and the inline `authorization_receipt`. Validate its `resume-team-final-receipt/v2` shape against `schemas/resume-team-final-receipt.schema.json` before accepting it. Require the receipt's `candidate_fit_report` and `candidate_fit_report_digest` to exactly match the runtime and independent preflight, including the fixed threshold,
Every AI resume tool promises to "beat the ATS." This one has a harder rule: it never invents experience — and when a job is a genuine mismatch, it declines to tailor at all and tells you why.
Create a compelling one-page, human-voice cover letter for a job description and generate the final DOCX. Use when the user wants a cover letter only (no…
Search live job boards for roles that match the master resume, then score and rank them by ATS and HR fit. Use when the user wants to discover or find jobs,…
Run the deterministic, digest-bound candidate-fit gate that scores the configured master resume against an exact job description before any resume tailoring.…
Run the capability-isolated native Researcher, Writer, Auditor, and Editor runtime to publish a verified Markdown resume draft. Use when Codex is asked to…
Generate a tailored resume AND cover letter for a job description via the native four-role Resume Team, score both against ATS and HR rubrics, create DOCX…
One-time setup for Resume Builder — Python dependencies, config.json, cloud or local scoring, and optional LLM features. Use once right after installing, or…