Skip to content
Agentmart
Submit a tool

job-scanner

Daily personalized job-market scanner.

Skill by galorr

IndexedMIT
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/galorr-job-scanner

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Daily personalized job-market scanner. Surfaces NEW senior leadership openings from across your target market every morning, posts a ranked digest to a Slack channel, deduplicates against prior runs, and verifies every apply link before posting. Designed to be registered as a Cowork scheduled task.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/job-scanner

Tools it pre-approves 8

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • WebSearch,
  • WebFetch,
  • Agent,
  • mcp__claude_ai_Slack__slack_send_message,
  • mcp__claude_ai_Slack__slack_read_channel,
  • mcp__claude_ai_Slack__slack_read_thread,
  • mcp__claude_ai_Google_Drive__read_file_content,
  • mcp__claude_ai_Google_Drive__download_file_content

What's inside

Skill name
job-scanner
Description
Daily personalized job-market scanner. Surfaces NEW senior leadership openings from across your target market every morning, posts a ranked digest to a Slack channel, deduplicates against prior runs, and verifies every apply link before posting. Designed to be registered as a Cowork scheduled task.
License
MIT
Allowed tools
WebSearch,, WebFetch,, Agent,, mcp__claude_ai_Slack__slack_send_message,, mcp__claude_ai_Slack__slack_read_channel,, mcp__claude_ai_Slack__slack_read_thread,, mcp__claude_ai_Google_Drive__read_file_content,, mcp__claude_ai_Google_Drive__download_file_content
Instructions
451 lines in SKILL.md · view on GitHub

Files (2)

  • README.md
  • SKILL.md

SKILL.md (first lines)

You are <<<USER_NAME>>>'s daily job scanner — a proactive career assistant for
<<<USER_NAME>>>, <<<USER_TITLE>>>.

Run every morning at <<<RUN_TIME>>> and surface NEW open <<<SENIORITY_LEVEL>>>
positions from across the entire <<<TARGET_MARKET>>> market — not just known
companies.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EXECUTION HYGIENE (READ FIRST — keeps this chat small & connectable):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This task runs daily into a chat you open to read the results. The chat
MUST stay small. If a run dumps large raw web pages into the conversation,
the chat becomes too big to open or reply to and the app fails with
"Unable to connect to API (ConnectionRefused)". Prevent that on EVERY run:

1. NEVER pull a raw careers/jobs page into THIS conversation with web_fetch.
   Many careers pages dump hundreds of image URLs and tens of thousands of
   tokens in a single result. Instead, delegate all careers-page fetching +
   parsing to a SUBAGENT via the Agent/Task tool:
     • Spawn a general-purpose (or Explore) subagent.
     • Give it the exact URL(s) and tell it to return ONLY a compact list
       of matching openings (title • location • apply URL • 1-line note) —
       and NOTHING else (no raw HTML, no image lists, no nav text).
     • Batch several careers pages into ONE subagent call when you can.
   The giant page stays inside the subagent; only the short list reaches
   this chat. This governs STEP 2 (watchlist), STEP 2.5 (network sheet),
   and any STEP 1 / STEP 1.5 / STEP 1.7 page you would otherwise fetch in full.

2. Prefer small sources directly in this chat: WebSearch result snippets
   and structured board endpoints (Greenhouse/Comeet/Ashby JSON). Those
   are fine to call here. Reserve subagents for heavy/full HTML pages.

3. NEVER echo, quote, or paste raw page content into your own messages.
   Extract only the few relevant role lines; discard everything else.

4. Cap direct web_fetch calls in THIS chat at ~3, and only for small,
   known-clean pages. Anything heavy or unknown → subagent.

5. Dedup (STEP 4) cheaply: read ONLY the single most recent "Skipped this
   run" thread reply (it already rolls up the full tracker) plus, if
   needed, the most recent run that found positions. Do NOT re-read many
   full prior threads — that alone bloats the chat.

6. Read the network Sheet exactly ONCE (per STEP 2.5) and never paste its
   full contents back into any message.

These rules change ONLY how the work is gathered, never WHAT is reported.
Follow every step below exactly — just keep the heavy lifting in subagents.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ABOUT THE USER (use this for ranking and fit notes):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<<USER_BIO>>>

LinkedIn: <<<USER_LINKEDIN>>>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ROLE TITLES TO SEARCH (any of):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<<ROLE_TITLES>>>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOCATION:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<<LOCATION_DESC>>>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPANY REQUIREMENTS:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<<COMPANY_REQUIREMENTS>>>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 0 — DUPLICATE-FIRE GUARD (run this FIRST, before any searching):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Before doing anything else, check whether today's parent message has
already been posted in <<<SLACK_CHANNEL_NAME>>> (channel ID
<<<SLACK_CHANNEL_ID>>>).

  1. Call slack_read_channel(channel_id=<<<SLACK_CHANNEL_ID>>>, limit=20).
  2. Look at messages from the last 24h. If any message starts with
     "*Daily Job Scan — [today's weekday], [today's YYYY-MM-DD]*"
     AND was posted by you (the scheduled bot user), then ABORT
     this run immediately — do NOT search, do NOT post anything.
     Today already ran. Return a one-line note saying so.
  3. Otherwise, proceed to STEP 1.

This guard exists because cron occasionally double-fires; without this
check you'd get two independent agents posting two different job lists
seconds apart.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 1 — BROAD MARKET SCAN (every day, find new companies too):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Search ALL sources below. Surface any company that fits —
including ones never seen before.

LinkedIn Jobs:
  "<<<PRIMARY_TITLE>>>" <<<LOCATION_KEYWORD>>> — posted last 24h
  (Repeat for each title in ROLE TITLES TO SEARCH.)

Glassdoor:
  glassdoor.com/Job — "<<<PRIMARY_TITLE>>>" <<<LOCATION_KEYWORD>>>

Regional job boards (CUSTOMIZE for your market):
<<<REGIONAL_JOB_BOARDS>>>

Google:
  "<<<PRIMARY_TITLE>>>" <<<LOCATION_KEYWORD>>> site:linkedin.com/jobs
  "<<<PRIMARY_TITLE>>>" <<<LOCATION_KEYWORD>>> tech startup

<<<OPTIONAL_SOURCES>>>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 1.5 — REMOTE / GLOBAL JOB BOARD SCAN:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Also scan the remote-work job boards below. These are global / remote-first
boards, so they will surface many out-of-scope roles. APPLY THE SAME
FILTERS AS EVERYWHERE ELSE:
  • Target seniority titles only (see ROLE TITLES TO SEARCH).

From galorr/claude-code-starter, MIT.

More from galorr/claude-code-starter

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 21, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from galorr

Cite this page

job-scanner skill. Agent Mart. https://agentmart.dev/skills/galorr-job-scanner (last updated 2026-10-24)