jobsearch-apply-mcp: Command for Claude Code

.claude/commands/notion-sync.md

notion-sync is a command for Claude Code from treymorgan/jobsearch-apply-mcp. It costs 0 tokens per session (3,283 once invoked), scanned A, a copy of notion-sync, MIT.

A read-only exporter that shows tracked jobs and applications in a Notion database. Notion is a workspace for organizing notes and tables; the repository files remain the source of truth.

In plain words
What is it for?
Use it to publish one database row per job and detailed pages for shortlisted matches.
Why use it?
It gives you a portable, easy-to-scan view without changing the underlying job-search files.

Command for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: reads .claude/ paths.

This is treymorgan/jobsearch-apply-mcp's own configuration. It tells Claude Code how to work on jobsearch-apply-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything jobsearch-apply-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to treymorgan/jobsearch-apply-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/treymorgan/jobsearch-apply-mcp/main/.claude/commands/notion-sync.md
Clone the repo
git clone --depth 1 https://github.com/treymorgan/jobsearch-apply-mcp

Made for: Claude Code.

Wrote 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.

agentmods badge for notion-sync

README.md
[![agentmods](https://agentmods.dev/badge/commands/treymorgan/jobsearch-apply-mcp/notion-sync/github.svg)](https://agentmods.dev/commands/treymorgan/jobsearch-apply-mcp/notion-sync)
Your own site
<a href="https://agentmods.dev/commands/treymorgan/jobsearch-apply-mcp/notion-sync"><img src="https://agentmods.dev/badge/commands/treymorgan/jobsearch-apply-mcp/notion-sync/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.

agentmods 80×15 button for notion-sync

Your own site · 80×15
<a href="https://agentmods.dev/commands/treymorgan/jobsearch-apply-mcp/notion-sync"><img src="https://agentmods.dev/badge/commands/treymorgan/jobsearch-apply-mcp/notion-sync.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,283 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.03283
Opus 5 $0.00000 $0.01641
Sonnet 5 $0.00000 $0.00657
Haiku 4.5 $0.00000 $0.00328

Measured 10d ago against content hash 3663306f765a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

notion-sync 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 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.

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.

Origin

This is a copy

100% identical to notion-sync — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.claude/commands/notion-sync.md · 150 lines

How it starts

The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/notion-sync - Push Ranked Jobs and Applications to a Notion Database

You are publishing a read-only view of the job search into the user's Notion workspace: one database row per job, with a detailed page per shortlisted match. The repo files stay the system of record - job_scraper/seen_jobs.json owns scraped/ranked jobs and job_search_tracker.csv owns applications. Notion is a disposable presentation layer on top of them; nothing ever syncs back.

This command requires the Notion MCP server (OAuth). It reads state, upserts pages, and stops - it never ranks, applies, or edits repo files. Notion is the in-tree reference binding; the sync contract itself is tool-agnostic (see "Adapting to Another Tool" at the end - only the two sections marked (Notion binding) are tool-specific).

Lane: /html-report vs /notion-sync

Both present the same tracker data; they own different moments. /html-report is the deep-review lane: a self-contained offline dashboard with charts and a filterable table, regenerated at your desk. /notion-sync is the glanceable lane: the current state of the pipeline, reachable anywhere Notion runs (desktop, web, phone). They compose rather than compete - after /outcome records a result, re-run either or both to refresh the views.

Follow these steps in order.


Step 0: Parse Input

$ARGUMENTS may contain:

  • Nothing → sync ranked jobs with score ≥ 60 (Good Fit and above) plus every tracked application
  • --min-score <N> → override the score threshold
  • --all → sync every ranked job regardless of score
  • --rebuild → re-fetch and rewrite page bodies too (see Step 5 - normally bodies are write-once)

Step 1: Preflight the Connection (Notion binding)

The command is silently optional: when the destination is not reachable, the outcome is one clear message and a clean exit - nothing else in the framework notices this command exists.

  1. Check that Notion MCP tools are available in this session (tool names starting with mcp__notion__ or similar). Determine this from the session's own tool list only - never by running shell commands like claude mcp list, which would interrupt the user with a permission prompt before the graceful exit. If the tools are not available, stop and tell the user how to connect:

    Notion MCP isn't connected. Run claude mcp add --transport http notion https://mcp.notion.com/mcp, then start a new session (servers added mid-session are only picked up on restart), run /mcp there to complete the OAuth login, and re-run /notion-sync.

  2. Verify the connection with one cheap call (e.g. a workspace search). An auth error → tell the user to re-authenticate via /mcp and stop. Never retry in a loop.
  3. The Notion MCP server is interactively authenticated, so "connected but not authenticable right now" (expired OAuth, headless/CI context where the login flow cannot run) gets the same graceful exit as "not configured": state the reason in one line and stop. This includes the configured-but-unauthenticated state where the server exposes only its auth handshake and no data tools - never initiate the OAuth flow from this command and never ask whether to authenticate now; the one line points at /mcp and the command ends there. Authenticating is the user's move, made outside this command.

Read the full file on GitHub · 150 lines

Changes

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.

  1. 10d ago First seen · 150 lines · 0 tokens per session scan A 3663306f765a

Subscribe to this mod's changes

notion-sync is a command published in the GitHub repository treymorgan/jobsearch-apply-mcp (0 stars, last pushed 13d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 3,283 tokens. A static security scan graded it A with 0 findings. It is 100% identical to notion-sync, differing in 0 lines, and is treated as a copy.