Borrowing it
Nothing to install: this file belongs to galiprandi/job-seeker. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/galiprandi/job-seeker/main/.agents/skills/news/SKILL.mdgit clone --depth 1 https://github.com/galiprandi/job-seekerWrote 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/galiprandi/job-seeker/news)<a href="https://agentmods.dev/skills/galiprandi/job-seeker/news"><img src="https://agentmods.dev/badge/skills/galiprandi/job-seeker/news/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/galiprandi/job-seeker/news"><img src="https://agentmods.dev/badge/skills/galiprandi/job-seeker/news.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 136 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00032 | $0.07623 |
| Opus 5 | $0.00016 | $0.03811 |
| Sonnet 5 | $0.00006 | $0.01525 |
| Haiku 4.5 | $0.00003 | $0.00762 |
Grade A, and why
news 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 yesterday.
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 — 521 lines — stays where its author put it; the contents beside it link to each section on GitHub.
News
Trigger
Keyword: news
The user says news (or variants: "updates", "check", "any updates") and the full review routine is automatically triggered. No further instructions needed — the agent executes the entire flow from start to finish.
Also runs in parallel when the user launches an application.
Flow
0. Pre-flight
- Verify active LinkedIn and Gmail sessions. If session closed → open browser with wrapper (see AGENTS.md "Browser session"):
node scripts/browser.js open <url> --headed(Gold Rule 5) → notify user → wait for confirmation - Browser: always use
node scripts/browser.jsfor open/close/goto. See AGENTS.md "Browser session" for details. Never callplaywright-cli opendirectly, never open Chrome directly - Load active preferences (see
memoryskill):node scripts/db.js "SELECT category, key, value, confidence, source FROM preferences WHERE user_id = <user_id> AND status = 'active' ORDER BY category, key" - Load strategy (see AGENTS.md "Strategy levels"):
Respect:node scripts/db.js "SELECT data->'strategy' AS strategy FROM users WHERE id = <user_id>"follow_up_days(days before sending follow-up),cold_outreach(whether to send cold messages to recruiters). Ifnewsnot insources_active, warn the user
1. Collect updates (in parallel)
Parallelization strategy: when subagents are available, dispatch background subagents (subagent_general) per source to collect updates simultaneously. Each subagent returns a structured list of items (sender, subject, snippet, category guess, action items, scheduling links if any). The main agent then merges and classifies. If subagents are not available (e.g: single-session constraint), fall back to sequential collection.
Subagent dispatch pattern:
┌─────────────────────────────────────────────────────┐
│ Main agent (orchestrator) │
│ - Loads preferences, strategy, availability │
│ - Dispatches subagents in parallel │
│ - Merges results, classifies, presents summary │
├─────────────────────────────────────────────────────┤
│ Subagent A (Gmail) Subagent B (LinkedIn) │
│ - Inbox unread - Messages unread │
│ - Job Alerts folder - Notifications │
│ - Extract sched links - Saved Jobs │
│ - Returns JSON list - Returns JSON list │
├─────────────────────────────────────────────────────┤
│ Subagent C (DB) Subagent D (Sched links) │
│ - Pending follow-ups - Opens each Calendly/SR │
│ - Pipeline stages - Filters by availability │
│ - Returns JSON list - Returns slot table │
└─────────────────────────────────────────────────────┘
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.
- yesterday Changed 0aec54653235
- 12d ago First seen · 521 lines · 32 tokens per session scan A 05b27ae1579c
news is a skill published in the GitHub repository galiprandi/job-seeker (26 stars, last pushed 2d ago), licensed MIT. It adds 32 tokens to every session and 7,623 once invoked, about $0.0002 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-30.
Other skills, from other repositories
Application Form Filler
Fill out job application form fields with context-aware, tailored answers drawn from the candidate's CV and the job description.
ai-dev-jobs-mcp
Search 8,400+ AI and ML jobs across 489 companies, inspect listings and employers, match roles, and view salary and market stats via AI Dev Jobs MCP.
job-application-agent
Finds, evaluates, fills, submits, and tracks a candidate's own job applications using a verified resume, evidence-based targeting, secure local profile storage, and browser automation. Use for onboarding or migrating a job-search profile, searching active roles, assessing a posting, applying to an authorized URL or…
apply
Apply to a single job (URL or pasted page) with fit review, or score and apply the job links pasted into an apply campaign when no argument is given.
scan-inbox
Classify unscanned mailbox messages, fuzzy-match each to an existing application, and write the proposal back. The user approves in /inbox.
resume-campaign
Resume a paused JobPilot campaign by id. Re-flips the campaign to inprogress and replays the apply loop on any remaining approved jobs without re-asking for fit confirmation.