Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add extrasmall0/dear-hiring-manager --skill batchgit clone --depth 1 https://github.com/extrasmall0/dear-hiring-managerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/extrasmall0/dear-hiring-manager/batch)<a href="https://agentmods.dev/skills/extrasmall0/dear-hiring-manager/batch"><img src="https://agentmods.dev/badge/skills/extrasmall0/dear-hiring-manager/batch/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/extrasmall0/dear-hiring-manager/batch"><img src="https://agentmods.dev/badge/skills/extrasmall0/dear-hiring-manager/batch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.00933 |
| Opus 5.5 | $0.00035 | $0.00373 |
| Sonnet 5.5 | $0.00017 | $0.00187 |
| Haiku 4.5 | $0.00009 | $0.00093 |
Grade A, and why
batch scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Batch apply (many jobs, one review)
Fill N applications, each in its own tab, all parked before Submit. The human reviews the whole batch at
the end. This orchestrates the apply skill once per URL — identical invariants, fill-or-flag, and
fit-gate. You never Submit anything.
Unattended by design — walk away while it runs. Filling is sequential (one tab at a time; a single
agent has no true parallel — that's the Phase-3 daemon's job), but you don't watch it. The batch never
pauses for you mid-run: anything that needs a human (account/login wall, email verification, CAPTCHA) is
marked blocked and skipped, to handle together at review. Come back to the parked + blocked tabs and
review/submit in one pass. Sessions can expire, so come back within a reasonable window, not days later.
Input
- URLs passed as arguments (space- or newline-separated), OR
- if none are given, read
~/.dear-hiring-manager/urls.txt(one URL per line; skip blank lines and lines starting with#).
Preconditions
~/.dear-hiring-manager/profile.mdmust exist — else stop and tell the user to run/dear-hiring-manager:onboardfirst.
Procedure
-
Collect the URL list (args or
urls.txt), de-dupe, and report the count. If more than ~10 URLs, process the first 10 this run and tell the user the rest were deferred (avoid a runaway). -
For each URL, in its own tab:
- Open a new browser tab for it (
browser_tabsactionnew) — one application per tab, all kept open. - Run the
applyskill procedure on that tab:- Stale/closed posting (redirect to board root /
?error=true, no form) → markskipped, move on. - Extract JD + company; score fit; fit-gate: below the profile's
Minimum fit score to applyor a hard-eligibility blocker → markskipped, do not fill, move on. - Otherwise fill-or-flag every field; generate a cover letter if the portal has one; stop before Submit.
- Stale/closed posting (redirect to board root /
- Update the row in
applications.md(status: skipped | filled | blocked; record fit + flag count). - Anything that needs a human — account/login wall, email verification, CAPTCHA, unreadable form
→ set
status=blockedwith the reason, leave the tab open, and move on. Never pause the batch, and never create an account unattended. Never let one URL abort the batch or sitin-progress.
- Open a new browser tab for it (
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 57 lines · 87 tokens per session scan A 5902036bb0e8
batch is a skill published in the GitHub repository extrasmall0/dear-hiring-manager (111 stars, last pushed 3mo ago), licensed MIT. It adds 87 tokens to every session and 933 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
meeting-board
A one-machine live meeting board. A small browser extension reads Google Meet's own live captions together with the speaker names, hands them to a tiny helper that listens on 127.0.0.1 only, and the helper periodically asks the local Claude Code (claude -p) to keep a structured, speaker-attributed "story so far".…
job-apply
Apply to a job by URL — auto-routes to the right ATS filler (LinkedIn Easy Apply / Greenhouse / Lever / Jobvite / Ashby), dry-run by default, renders an emoji-tagged result table. Proactively invoke this skill (do NOT answer conversationally) when the user pastes a LinkedIn/Greenhouse/Lever/Jobvite/Ashby job URL (with…
website-change-monitor
Watch important pages and notify when content changes.
slack
Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include "check my Slack", "what channels have unreads", "send a message to", "search Slack…
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers hosted cloud browsers for AI agents: the browser-use Python library (Browser(usecloud=True)), Playwright, Puppeteer or any CDP client.
cli-anything-macrocli
Use when the agent wants to define, list, inspect, or execute GUI macros via the MacroCLI CLI. Macros are parameterized, CLI-callable workflows — the agent invokes macro run and the system handles backend routing (plugin, file transform, accessibility, compiled GUI replay).