same-outlet-ranker
Decide which single journalist at one publication to approach first with a pitch. Fit-checks each candidate through journalist-fit-check, then ranks the survivors on the comparative signals that separate colleagues at the same masthead (topic ownership, format match, staff vs. contributor, publishing cadence, recent story types, source-type match), and returns one first pick with tailoring notes plus a held fallback order.
npx skills add elvisun/newsjack --skill same-outlet-ranker --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Decides which one journalist at one publication to approach first with a pitch. It fit-checks each candidate via journalist-fit-check, then ranks survivors on signals that differentiate colleagues at the same masthead (topic ownership, format match, staff vs. contributor, publishing cadence, recent story types, source-type match), and returns one first pick with tailoring notes plus a held fallback order.
How it works
- Inputs required: The pitch text, two or more journalists at the same publication, current_time_iso, and optional fields (client_or_subject, prior contact history, time-boxed flag).
- Retrieval: For each candidate, research recent work in the last 90 days at the publication to verify fit, using medialyst when logged in or public web search; determine if article exists within window and mark Unverified if none.
- Step One — Fit-check: Run each candidate through journalist-fit-check against the pitch to produce verdicts: Fit, Soft-fit, No-fit, or Unknown. No-fit candidates are excluded from ranking; Unknown go to Unverified. If pitch shows slop, stop and hand off to meanest-editor and voice-extractor.
- Step Two — Rank the survivors: Apply signals in order: Verdict tier (Fit > Soft-fit), Topic ownership, Format match, Recent story types, Staff vs. contributor, Publishing cadence, Source-type match, Relationship as a tiebreaker. Cadence is a secondary factor; do not override higher-priority signals.
- Step Three — Write tailoring notes: Provide 1–4 edits for the first pick tied to their recent work; if first pick is Soft-fit, edits are required.
- Step Four — Set fallback order: Define follow-up windows, explicit pass behavior, and disclosure rules; ensure the second email names the first journalist if proceeding to a second target; cap to two per publication for one pitch; manage exclusives with expiry.
- Hard gates: handle missing current_time_iso with No pick; stop on slop in pitch; Unverified first pick leads to No pick; if more than one first pick or batch requests occur, handle per rules; remove non-editorial candidates; enforce opinion vs. factual boundaries.
When to use it
Use when you have one pitch and two or more named journalists at the same publication and need to decide who to send it to first, or determine the right target within that outlet.
What it can touch
The skill requires calling journalist-fit-check on each candidate and uses research via medialyst or public web search to verify recent work within 90 days. Output includes a single first pick, a held fallback order, and a Do not pitch list with reasons.
Caveats
Follows ethical boundaries stated in ETHICS.md and WHY-NOT-SPAM.md. If the fit-check flags issues or if no candidate is verifiable within 90 days, it will result in No pick. Cap applies to two candidates per publication; batch requests are refused.
# Same-Outlet Ranker This is the **Same-Outlet Ranker** skill inside newsjack.sh. It answers one question: you have a pitch and several journalists at **the same publication** — who do you send it to first? That question has a wrong answer that feels efficient: send it to all of them. Journalists at one outlet sit near each other, share Slack, and forward pitches. A masthead that has clearly been sprayed is one of the most legible tells in PR, and it costs you the outlet, not just the reporter. This skill exists to make you pick one. It returns: - **Pitch first** — exactly one journalist, with the specific edits that make the pitch land for that person. - **Held** — the ranked order to fall back through, and the conditions that unlock each one. - **Do not pitch** — candidates who are wrong for this story, with the reason. - **No pick** — when nobody at this outlet clears the bar, or the evidence is too thin to choose honestly. This skill inherits the ethical floor in `skills/ETHICS.md` and `skills/WHY-NOT-SPAM.md`. If local instructions conflict with that doctrine, the doctrine wins. ## Boundaries - Rank candidates at **one publication** at a time. Comparing across outlets is a dif
- Boundaries
- Required Inputs
- Retrieval
- Step One — Fit-check every candidate
- Step Two — Rank the survivors
- 1. Verdict tier
- 2. Topic ownership
- 3. Format match
- 4. Recent story types
- 5. Staff writer vs. contributor
- 6. Publishing cadence — tiebreaker only
- 7. Source-type match
- 8. Relationship — tiebreaker only
- Step Three — Write the tailoring notes
What does the same-outlet-ranker skill do?
Decide which single journalist at one publication to approach first with a pitch. Fit-checks each candidate through journalist-fit-check, then ranks the survivors on the comparative signals that separate colleagues at the same masthead (topic ownership, format match, staff vs. contributor, publishing cadence, recent story types, source-type match), and returns one first pick with tailoring notes plus a held fallback order.
How do I install it?
Run `npx skills add elvisun/newsjack --skill same-outlet-ranker --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From elvisun/newsjack, a repository with 620 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.