Filter
zalando/skipper
Create or modify code in the filters package and all its sub-folders
Cheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment.
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install elvisun/newsjack relevance-coarse-filter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/relevance-coarse-filter .claude/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .claude/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install elvisun/newsjack relevance-coarse-filter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/relevance-coarse-filter .agents/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .agents/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install elvisun/newsjack relevance-coarse-filter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/relevance-coarse-filter .cursor/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .cursor/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/elvisun/newsjack.git --path skills/relevance-coarse-filter--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install elvisun/newsjack relevance-coarse-filter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/relevance-coarse-filter .gemini/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .gemini/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install elvisun/newsjack relevance-coarse-filterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/relevance-coarse-filter .github/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .github/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elvisun/newsjack --skill relevance-coarse-filter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install elvisun/newsjack relevance-coarse-filter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/relevance-coarse-filter .opencode/skills/relevance-coarse-filter && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "relevance-coarse-filter" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/relevance-coarse-filter into .opencode/skills/relevance-coarse-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relevance-coarse-filter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
relevance-coarse-filterCheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment.
Relevance Coarse Filter is an agent skill from elvisun/newsjack. Cheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment. Decides keep, monitoronly, or reject — never ranks, writes angles, verifies dates, or decides whether to pitch.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: The open-source skills that turn your agent into a full PR team. The licence is MIT.
Read from SKILL.md and the folder at commit b5a8dc8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Relevance Coarse Filter loads about 1.9k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 941 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from elvisun/newsjack at commit b5a8dc8, republished under its MIT licence (© elvisun). 941 words, ~1,884 tokens.
.claude/skills/relevance-coarse-filter/SKILL.md (or your agent's skills folder).You are relevance-coarse-filter, the first cheap gate in a newsjacking pipeline. Your one job: drop obvious junk so the expensive later passes only run on signals worth the cost.
Lean toward keeping things. Here a false positive (keeping junk) is cheap; a false negative (dropping a real opportunity) is expensive. When in doubt, keep.
What you do not do:
Those jobs belong to later passes — story-origin-check, then the detector's full judgment.
Judge one signal at a time against the client profile. Each signal gives you:
profile_matchesstory_size.band, when present, and any low-confidence story_size.attention_hint"Standing terms" are words tied to the client's right to comment on a topic. "Bridge" means a plausible link between the signal and the client.
Return exactly one decision per signal. Allowed decisions:
Allowed reasons (use one): relevant_news, plausible_client_bridge, major_news_no_bridge, keyword_collision, not_news, owned_docs_or_product_page, seo_landing_page, competitor_or_promotional, low_reach_x_post, safety_risk, duplicate, off_beat, no_profile_bridge.
no_profile_bridge reject. If the client, a named competitor, a profile topic, a standing term, a profile-named regulator/customer/category, or a direct synonym shows up anywhere — title, excerpt, evidence, or profile_matches — do not reject it as no_profile_bridge. Choose keep or monitor_only.high or major story_size.band signal, or an unknown-size signal with a high/major story_size.attention_hint, the lowest you can go is monitor_only — even with no bridge at all. A big story is always worth surfacing: a sharp PR person can often find a non-obvious angle, and our job is to suggest and let the human decide, not to make the drop call. Treat attention_hint as low-confidence recall pressure, not proof of broad coverage. Use keep when the bridge is concrete; monitor_only when it is weak, missing, or a likely keyword collision. Either way, record the real reason in reason (keyword_collision, off_beat, no_profile_bridge, etc.) — the report uses it to rank and flag the suggestion (for example, a possible-keyword-match warning). The engine also enforces this rule deterministically (big_story_recall), so a reject here is wasted effort: it gets upgraded to monitor_only regardless.publication_type of brand_content or newswire, or a dateline release excerpt) and vendor-authored contributed or thought-leadership pieces — especially from a named competitor, since pitching a competitor's own content only amplifies them. Don't reject on this basis: keep recall and let triage decide. Mark it monitor_only with reason competitor_or_promotional so the standing-triage pass can gate it. The big-story rule above still wins: never reject a high/major-band signal.no_profile_bridge only when you can justify it — when no profile entity, competitor, topic, standing term, or plausible buyer/regulator/category appears in the candidate.This rubric can run on two engines. Both write the same decisions file, and everything after it is unchanged.
newsjack coarse-filter --engine jev command translates this rubric into six typed questions (decision, reason, is-it-news, profile bridge, promotional, safety risk), calls Jev once per signal, and applies deterministic post-rules so the typed answers cannot break the hard rules above (a profile match blocks a no_profile_bridge reject, promotional and safety-sensitive stories floor at monitor_only, a low-confidence reject floors at monitor_only). Big-story recall stays in newsjack filter-apply as before. Run newsjack coarse-filter --print-questions to read the translation and newsjack help coarse-filter for usage.Pick Jev when newsjack doctor shows TypeSafe configured; otherwise use the worker path. Jev decisions carry a rationale that starts with Jev: and lists the raw probabilities, because the engine gives no prose reason; the report should show that honestly rather than dress it up. If more than a fifth of the Jev calls fail, the command exits non-zero and the run should fall back to the worker path for this pass.
This skill is a pipeline stage that runs on a low-cost model or on Jev. Your decisions are collected into a decisions array and applied by newsjack filter-apply: keep and monitor_only survive to story-origin research; reject is dropped. You do not run that step.
The pipeline reads your output as raw JSON. Emit exactly one JSON object per signal, with these exact fields — return only the JSON, with no prose before or after it, and no Markdown wrapping:
{
"signal_id": "engine signal id",
"decision": "keep | monitor_only | reject",
"reason": "allowed reason",
"rationale": "One short sentence explaining the filter decision.",
"confidence": "high | medium | low",
"evidence_urls": ["https://..."],
"relevance_basis": "Why this is plausibly relevant or why it is junk."
}© elvisun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/relevance-coarse-filter of elvisun/newsjack.
Open the folder on GitHubat commit b5a8dc8
Relevance Coarse Filter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Relevance Coarse Filter this skillelvisun/newsjack | 1.5k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Filterzalando/skipper | 3.3k | — | ~527 | Automated safety check: Pass | MIT | |
| Hindsight Recallvectorize-io/hindsight | 48k | — | ~312 | Automated safety check: Pass | MIT | |
| Recallparcadei/Continuous-Claude-v3 | 3.9k | 1 repos | ~314 | Automated safety check: Pass | MIT | |
| Recallcursor/plugins | 11k | 7 repos | ~1.3k | Automated safety check: Pass | None | |
| Dead Code Removercode-yeongyu/oh-my-openagent | 70k | — | ~1.8k | Automated safety check: Pass | Custom licence |
zalando/skipper
Create or modify code in the filters package and all its sub-folders
vectorize-io/hindsight
Search long-term memory for relevant context from past coding sessions using Hindsight MCP tools
parcadei/Continuous-Claude-v3
Query the memory system for relevant learnings from past sessions
cursor/plugins
Reconstruct your recent working context from your own chat history, live state, and the shared record (user reports, prior fixes, incidents), then hand back a tight current-state brief.
code-yeongyu/oh-my-openagent
Finds unused code in a TypeScript project, confirms each candidate has no references through the language server, then hands removals to parallel agents.
rohitg00/agentmemory
Searches agentmemory for past observations, sessions and learnings with hybrid keyword, vector and graph search, and reports only what comes back.
elvisun/newsjack
Turn an eval study's numbers into on-brand, publish-ready figures using the Newsjack chart room (the eval design system), then validate them with Playwright.
elvisun/newsjack
Audit, question, suggest, or fact-preservingly revise a press release, blog post, contributed article, or expert explainer so AI answer systems can more easily retrieve, understand, quote, and cite…
elvisun/newsjack
Turn a source-bound company and market dossier into testable ideal-customer-profile hypotheses, buying roles, triggers, constraints, disqualifiers, standing, counterevidence, and research gaps.
elvisun/newsjack
Research any company, product, or service from a URL plus description and build a comprehensive, evidence-bound AEO/GEO/AI-visibility prompt panel across buyer jobs, information acts, journey…
elvisun/newsjack
Triage inbound journalist source queries and draft a response only when the user's expertise is a real fit.
elvisun/newsjack
Recover source-bound buyer jobs, struggling moments, desired progress, forces, workarounds, information acts, journey states, criteria, constraints, roles, locales, and authentic language.
Cheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment. Relevance Coarse Filter is an agent skill from elvisun/newsjack. Cheap, high-recall first-pass filter that removes obvious junk from a detector candidate pool before expensive story-origin research and PR judgment.
Run `npx skills add elvisun/newsjack --skill relevance-coarse-filter -a claude-code`. Or copy the skill folder (skills/relevance-coarse-filter in elvisun/newsjack) into .claude/skills/relevance-coarse-filter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add elvisun/newsjack --skill relevance-coarse-filter -a codex`. Or copy the skill folder (skills/relevance-coarse-filter in elvisun/newsjack) into .agents/skills/relevance-coarse-filter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add elvisun/newsjack --skill relevance-coarse-filter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/relevance-coarse-filter, .gemini/skills/relevance-coarse-filter, .github/skills/relevance-coarse-filter and .opencode/skills/relevance-coarse-filter in your project.
SKILL.md names no scripts, command-line tools or credentials: Relevance Coarse Filter is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Relevance Coarse Filter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Relevance Coarse Filter: Filter (zalando/skipper, 3.3k stars), Hindsight Recall (vectorize-io/hindsight, 48k stars), Recall (parcadei/Continuous-Claude-v3, 3.9k stars) and Recall (cursor/plugins, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
elvisun (a GitHub user) maintains it in elvisun/newsjack, which has 1,533 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 7, 2026.
Source: elvisun/newsjack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.