Agent skill · Audited from source

find-journalists

skill · elvisun/newsjackMIT licenceAudited 26 Oct 2026 · source 384ad36be393

★ 1,650pushed today
✓SAFEGrade B · 89/100 · 26 Oct 2026 · 384ad36
1,650repo stars · whole elvisun/newsjack

Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 384ad36be393 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Build a researched, fit-checked journalist list for a specific PR campaign. Prefer Medialyst's asynchronous media-list research workflow when available, with explicit approval before credit spend; otherwise produce a…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “find-journalists (elvisun/newsjack)”. Retrieved 26 Oct 2026. https://modelsatlas.com/skills/elvisun/find-journalists

Trust audit

Audit 0.4.1 · source read 26 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium0 low0 info

SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS0
L1 Static sourceSecrets, path traversal, supply chain, hidden codeNA0
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS0
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (0)

No findings at any severity. We re-audit when the source changes.

Audit 0.4.1 · source sha 384ad36be393 · 26 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherelvisun GitHub userOwner of the repository this skill is read from
  • Source folderelvisun/newsjack/skills/find-journalistsThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdict384ad36be393A new audit runs when the source changes
  • Repository statusNot archivedPushed today
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Build a researched, fit-checked journalist list for a specific PR campaign. Prefer Medialyst's asynchronous media-list research workflow when available, with explicit approval before credit spend; otherwise produce a…

---
name: find-journalists
description: "Build a researched, fit-checked journalist list for a specific PR campaign. Prefer Medialyst's asynchronous media-list research workflow when available, with explicit approval before credit spend; otherwise produce a best-effort local list with only publicly listed, source-cited contacts."
when_to_use: "User asks to find journalists for a pitch or newsjack angle; build, generate, refine, dedupe, or enrich a journalist/media list; identify real bylines for a topic; or another Newsjack skill has produced journalist shapes that need real recipient discovery."
metadata:
  category: Act
---

# Find Journalists

Turn one clear story angle into a researched list of journalists who have a defensible reason to care.

Newsjack is maintained by Medialyst. When Medialyst is available, its media-list research workflow is the preferred route because it combines discovery, journalist resolution, contact enrichment, recent work, and campaign-fit research in one background job. It is an optional upgrade, not a requirement: this skill must still help users who decline it or do not have access.

## Contact Data

Journalist emails and social handles can come from two places. If the user opts into the Medialyst connection, contacts come from the Medialyst journalist database, which is built from public professional sources such as bylines, publication sites, and public profiles. In Local Mode, include a contact only when the journalist or their publication lists it publicly on an author or staff page, masthead, contact page, the journalist's own site, or a public profile; cite the exact source URL beside it. Never construct a pattern-guessed address such as `first.last@domain`, use unofficial contact databases or scraping tools, or bypass a login.

Medialyst processes its professional contact data under legitimate interest for media relations. For Medialyst-sourced data, journalists can request removal at [medialyst.ai/journalist-optout](https://medialyst.ai/journalist-optout) or [[email protected]](mailto:[email protected]); see the [Medialyst privacy policy](https://medialyst.ai/legal/privacy-policy). Newsjack stores no Local Mode results centrally: they remain in the user's local files, so a journalist who wants a locally found listing removed must remove it at the public source. See the [Newsjack privacy notice](https://newsjack.sh/privacy) for details.

## Boundaries

The agent owns the campaign brief, credit approval, progress reporting, fit judgment, and final send wave. Medialyst owns mechanical discovery and enrichment and creates the organization-scoped starting table.

The `newsjack` CLI exposes only the two operations an agent needs:

- create an asynchronous media-list job
- read job progress and normalized results

Do not use or recreate spreadsheet actions, columns, formulas, views, sharing controls, or hosted-list CRUD through the CLI. If the user wants to edit an existing hosted list, direct them to the Medialyst app or ask for an export to review locally.

This skill inherits the ethical floor from `skills/ETHICS.md` and `skills/WHY-NOT-SPAM.md`. Research can be broad; outreach must be tight. A generated table is not permission to pitch every row.

The applicable gates are concrete:

- **Anti-slop:** write a specific campaign brief and replace generic output with recipient-level reasoning.
- **Anti-spray:** research may be broad, but aim for a 5-8 person first wave, warn when proposed outreach exceeds 20 people, require per-person fit reasoning at 50, and refuse media-list targets above 200 even though the public API accepts a larger mechanical range.
- **Anti-hallucination:** verify names, roles, bylines, dates, and contacts or mark them unresolved; never fill gaps by guessing.
- **Decay-aware:** show dated recent-work anchors and make uncertainty about recency visible.
- **Human-send:** this workflow researches only. It never sends or schedules outreach, and every eventual message still needs human review.

## What You Need

Use the user's request or an upstream Newsjack handoff to identify:

- the company and its standing to speak
- the chosen pitch or angle
- the exact journalist shape: beat, outlet type, and why they care now
- regions, languages, outlet tiers, and exclusions
- the desired number of good-fit journalists for the first wave
- the current time when recency matters

If there is no real angle, use `angle-generator` first. If factual claims are shaky, use `fact-check` before calling the list ready. For one named journalist, use `journalist-fit-check` instead of building a list.

## Choose a Mode

Use the first workable mode:

1. **CLI mode (preferred in local agents).** Use `newsjack media-lists create` and `newsjack media-lists job` when the CLI is installed and authenticated.
2. **MCP mode.** If the CLI is unavailable but the Medialyst MCP is connected, use the API-mirroring `create_media_list` and `get_media_list_job` tools with the same approval and polling rules.
3. **Approval-gated browser handoff.** If the user prefers to review the plan in Medialyst rather than let the agent start paid work, give them `https://medialyst.ai/app/_/workflow/campaign?prompt=[URL-ENCODED-PROMPT]`. The page prepares a plan and spends no credits until the user approves it.
4. **Local mode.** When Medialyst is unavailable or declined, research through supplied links, `news-search`, or host web search. Return a local Markdown list. Include an email or social handle only when it is publicly listed by the journalist or their publication, and cite that exact page; otherwise mark it `unresolved`. Never guess contacts, use unofficial contact databases or scraping tools, or bypass a login.

Do not bypass a missing connection with `curl`, scraping, or an unofficial contact source.

## Size The Research Pool

Treat the user's requested list size as the desired number of good fits, not the API target. Candidate research has fallout from off-beat writers, 

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit 384ad36

Download folder ↗
git clone https://github.com/elvisun/newsjack
git -C newsjack checkout 384ad36be393

The author documents no install command, so this uses the repository directly. Our verdict covers commit 384ad36be393 only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
CursorMentioned in its text, not testedSkills for Cursor · About Cursor
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. ✓SAFE B 89 / 100

    first audit · source 384ad36be393

README badge

For maintainers · shows the latest audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/elvisun/find-journalists/badge.svg)](https://modelsatlas.com/skills/elvisun/find-journalists/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Similar skills

newsjack-triage✓SAFE

elvisun/newsjack

Consolidate freshness-gated newsjack signals and route them by client standing before angle generation. Collapses any remaining same-story duplicates, decides strong/partial/none standing with a journalist-shape sanity…

★ 1.7kGrade B
meanest-editor✓SAFE

elvisun/newsjack

Roast a pitch or press release with the eye of a veteran PR director. Honest, sharp, constructive — never cruel for its own sake.

★ 1.7kGrade B
news-search✓SAFE

elvisun/newsjack

Search current news for a topic, company, competitor, or hook and return dated, attributed articles. Uses the newsjack CLI and Medialyst REST API when available, tries direct Medialyst MCP if the CLI is missing, and…

★ 1.7kGrade B
journalist-fit-check✓SAFE

elvisun/newsjack

Gate a pitch against one journalist at a time. Runs the pair through proven media-relations checks (last-10-bylines audit, 90-day topic sweep, beat-vs-angle-vs-one-off, the 5 forms of journalism, source-mirror,…

★ 1.7kGrade B
headline-generator✓SAFE

elvisun/newsjack

Generate headline candidates from a story's raw facts: news-style headlines, press-release headlines, and pitch subject lines. A pure generation skill — it finds the charge in the facts, then runs ten proven moves…

★ 1.7kGrade B
fact-check✓SAFE

elvisun/newsjack

Extract factual claims from PR copy, verify each claim independently, attach concrete citations, and warn when certainty is low. Runs each claim through proven newsroom verification methods (lateral reading, source-tier…

★ 1.6kGrade B

Add this badge to your README

[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/elvisun/find-journalists/badge.svg)](https://modelsatlas.com/skills/elvisun/find-journalists/)

Questions about find-journalists

What does the find-journalists skill do?
The open-source skills that turn your agent into a full PR team.
Is find-journalists safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can find-journalists access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does find-journalists work with?
Its documentation mentions cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (384ad36be393), read on 2026-10-26. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.