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 chrisdothtml/ai-job-finder --skill verifygit clone --depth 1 https://github.com/chrisdothtml/ai-job-finderWrote 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/chrisdothtml/ai-job-finder/verify)<a href="https://agentmods.dev/skills/chrisdothtml/ai-job-finder/verify"><img src="https://agentmods.dev/badge/skills/chrisdothtml/ai-job-finder/verify/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/chrisdothtml/ai-job-finder/verify"><img src="https://agentmods.dev/badge/skills/chrisdothtml/ai-job-finder/verify.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.00016 | $0.00361 |
| Opus 5 | $0.00008 | $0.00180 |
| Sonnet 5 | $0.00003 | $0.00072 |
| Haiku 4.5 | $0.00002 | $0.00036 |
Grade A, and why
verify 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 9d 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.
What it actually says
Verifying job-finder changes
Launch
- Dev server:
yarn app:dev(nodemon) oryarn server:start; serves athttp://localhost:8000(PORT env, default 8000). Check first — it's often already running. - In dev mode the UI is bundled from
src/uiper request via esbuild middleware, so UI edits are picked up on page reload — no rebuild step.
Drive
- The app blocks on onboarding unless localStorage has
ai-job-finder-storagewith{"isOnboarded":true,...}. To skip onboarding in a fresh Playwright profile:localStorage.setItem('ai-job-finder-storage', JSON.stringify({ isOnboarded: true, settings: {} }))then reload. Restore{"isOnboarded":false,"partialSettings":{}}when done. - Jobs data comes from
/api/jobs, companies from/api/companies— both already populated locally. - Jobs-list view prefs persist under localStorage key
ai-job-finder-ui-prefs.
Gotchas
- Playwright MCP screenshots with relative paths land in the repo root, not
.playwright-mcp/— use absolute scratchpad paths. - Job cards animate in (
cardIn, staggered by index); screenshot right after reload catches half-faded cards. Wait a beat before capturing. - The server on :8000 is usually the user's own dev server — never kill or restart it. Close the Playwright browser when done.
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.
- 9d ago First seen · 35 lines · 16 tokens per session scan A 008eb8ca469d
verify is a skill published in the GitHub repository chrisdothtml/ai-job-finder (3 stars, last pushed 1mo ago), licensed MIT. It adds 16 tokens to every session and 361 once invoked, about $0.0001 per session on Opus 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-31.
Other skills, from other repositories
browser4-cli
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
smoke-test
Run smoke tests against a deployed or local app based on your git diff. Each test uses Skyvern browser tools (navigate, act, validate, screenshot) with Chrome DevTools MCP as fallback. Posts screenshot evidence as PR comments.
webapp-testing
Browser-tests a local webapp end to end — starts the app, installs Playwright if missing, writes a spec for the critical path plus edge cases, runs headless, captures screenshots, console and network logs on failure, and reports a pass/fail table with repro steps. Degrades to curl smoke tests when no browser is…
dev-browser
Control a local or remote browser with sandboxed JavaScript scripts. Uses a QuickJS WASM sandbox (not Node.js) with a pre-connected browser global and full Playwright Page API. Backed by a persistent daemon that manages named browser instances between script runs. Use for UI testing, web scraping, and automation where…
browserbase-ui-test
Adversarial UI testing via browser automation — tries to BREAK the app, not confirm it works. Analyzes git diffs to test changed code, or explores the full app for defects. Use before merging UI changes or to audit the deployed platform.
pw-framework-tooling
Maintain framework-wide quality tooling, runtime configuration, waits, logging, reporting, and Playwright config for the playwright-agentic-automation Playwright framework. Use when tasks touch playwright.config.ts, package.json scripts, eslint/prettier/typecheck setup, waits, logger, custom reporter, or README…