Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/AkbarDevop/ai-job-agentnpx agentmods add skills/akbardevop/ai-job-agent/job-setupWrote 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/akbardevop/ai-job-agent/job-setup)<a href="https://agentmods.dev/skills/akbardevop/ai-job-agent/job-setup"><img src="https://agentmods.dev/badge/skills/akbardevop/ai-job-agent/job-setup/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/akbardevop/ai-job-agent/job-setup"><img src="https://agentmods.dev/badge/skills/akbardevop/ai-job-agent/job-setup.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.00183 | $0.04739 |
| Opus 5 | $0.00092 | $0.02370 |
| Sonnet 5 | $0.00037 | $0.00948 |
| Haiku 4.5 | $0.00018 | $0.00474 |
Grade D, and why
job-setup scanned grade D with 2 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 10d 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.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
- Debian/Ubuntu: `sudo apt install msmtp msmtp-mta` Reaches for credential fileshighPrivilege escalation
SSH keys, cloud credentials, git-credentials, .npmrc, /etc/shadow: reading these is how a config file becomes a credential leak.
test -f "$HOME/Library/Application Support/Google/Chrome/Default/Cookies" && echo MAC_DEFAULT How it starts
The opening of the file, as written. The whole thing — 426 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Job Setup
The onboarding skill. Replaces bash wizard.sh with an in-chat conversation — same questions, same outputs, but Claude asks them and writes the files directly.
Repo location
$AI_JOB_AGENT_ROOT → ~/.claude/skills/ai-job-agent/ → REPO_PATH marker file → ~/ai-job-agent/. If none of these exists, the user hasn't cloned the repo yet — tell them to paste this into their Claude Code session:
Install ai-job-agent: run
git clone --single-branch --depth 1 https://github.com/AkbarDevop/ai-job-agent ~/.claude/skills/ai-job-agent && cd ~/.claude/skills/ai-job-agent && bash skills/install.shthen tell me it's done and run /job-setup.
and rerun /job-setup after the install finishes.
Philosophy — don't ask what you can find
Before asking the user anything, try hard to fill it in from what's already on their machine. Users hate retyping their name into the 200th form; they really hate retyping it into an onboarding wizard when Claude already knows it from memory. Always auto-discover first, then surface a pre-filled confirmation table, then only ask for what's genuinely missing.
State inspection (always first)
Before asking anything, print a checklist of what's already configured so we don't re-ask. Check:
| Item | Path | Exists? |
|---|---|---|
| LinkedIn config | config/linkedin-config.json |
✅ / ⬜ |
| Candidate profile | config/candidate-profile.md |
✅ / ⬜ |
| Answer bank | config/answer-bank.md |
✅ / ⬜ |
| Application tracker | application-tracker.csv |
✅ / ⬜ |
| Outreach log | outreach-log.csv |
✅ / ⬜ |
| Resume file | (read from linkedin-config.json → resumePath) |
✅ / ⬜ |
| msmtp installed | command -v msmtp |
✅ / ⬜ |
| msmtp config | ~/.msmtprc (check with test -f) |
✅ / ⬜ |
| Skills installed | ~/.claude/skills/job-apply is a symlink to this repo |
✅ / ⬜ |
If everything checks, say "You're already set up. Run /job-setup --reconfigure <section> to change one thing, or /job-setup --reconfigure all to redo from scratch." and stop.
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.
- 10d ago First seen · 426 lines · 183 tokens per session scan D 184576a65a0f
job-setup is a skill published in the GitHub repository AkbarDevop/ai-job-agent (54 stars, last pushed 4mo ago), licensed MIT. It adds 183 tokens to every session and 4,739 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it D with 2 findings (asks for root, reaches for credential files). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
Automation Tester Resume Optimizer
Build an SDET or automation engineer resume around framework ownership, tool-stack evidence, CI/CD integration, and GitHub proof that survives technical screening and recruiter keyword search.
pipeline-triage
Decide WHICH role to spawn / pause / kill based on backlog state, not gut feel. Open this skill EVERY TIME you observe — vel team < 50% target, OR any role queue = 0, OR Scout sources exhausted, OR [SCALA UP] from Sentinella, OR PIPELINE VUOTA + UNDERSHOOT, OR MARGINE from bridge-pacing, OR cold start, OR whenever you…
db-update
Update existing records in the JHT DB (positions / applications). Use it to promote positions to checked/excluded, write Critic score/verdict, mark applications as sent, update salary, last-checked, etc. Always after a db-query that confirms the current record state.
freehire-track-applications
Use when recording or reviewing what someone applied to on freehire — marking a job applied, bookmarking one for later, moving an application through its stages (applied through offer, or rejected/withdrawn), attaching a note, or listing what they are tracking. Also covers reporting a posting that never answered them…
jobgru
Jobgru pipeline Phase 1 — coordinate parallel job-board researchers to find and verify the user-requested count of unique jobs (LinkedIn has no per-run job cap; LeadGru is capped at 5 people + company people page), deduplicate against the Job Applications Google Sheet, append rows via scripts/sheetswrite.py, then…
leadgru
Jobgru pipeline Phase 2 — find LinkedIn hiring contacts for new Job Applications rows (job-posting hiring team first, then people search), write at most 5 profile links plus the company people page into Leads, and fill Add note Message from sheet templates. Runs automatically after Jobgru appends rows (pipeline mode)…