/find-journalists
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 without guessed contacts.
$ npx -y skills add elvisun/newsjack --skill find-journalists --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/find-journalists
Context preview
The summary Claude sees to decide when to auto-load this skill.
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 without guessed contacts.
SKILL.md
find-journalists.SKILL.mdname: 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 without guessed 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.
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 without guessed emails or handles.
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, brand content, unresolved bylines, duplicates, stale work, and bad contact matches.
- Default `target_list_size` to **5x the requested good-fit count**.
- Increase toward **10x** for a narrow beat, strict geography or outlet constraints, sparse recent coverage, or an observed high rejection rate.
- Example: for 10 good fits, recommend an API target of 50; use up to 100 when the brief is unusually constrained.
- Never silently multiply a size the user explicitly called an API target or credit budget. The CLI sends the exact value it receives.
- Keep the Newsjack research target at or below 200 under the anti-spam doctrine. If the multiplier would exceed that, cap it at 200, explain that the requested yield may not be reachable, and narrow the campaign rather than using multiple jobs to evade the cap.
The multiplier is a research aperture, not a quota. Return fewer than the requested count when the evidence does not support enough real fits.
The Credit Approval Gate
Creating through the API starts work immediately, uses normal Medialyst credits, creates a list visible to the authenticated organization, and counts against its active-list allowance. Therefore:
1. Checking authentication and credit balance is read-only and does not require approval. 2. Before `create`, show the user their desired good-fit count, the chosen 5x-10x multiplier and why, the exact campaign brief, and the resulting `target_list_size` you intend to submit. 3. Explain that `target_list_size` sets the requested research size and credit
Read more
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 without guessed 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.
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 without guessed emails or handles.
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, brand content, unresolved bylines, duplicates, stale work, and bad contact matches.
- Default `target_list_size` to **5x the requested good-fit count**.
- Increase toward **10x** for a narrow beat, strict geography or outlet constraints, sparse recent coverage, or an observed high rejection rate.
- Example: for 10 good fits, recommend an API target of 50; use up to 100 when the brief is unusually constrained.
- Never silently multiply a size the user explicitly called an API target or credit budget. The CLI sends the exact value it receives.
- Keep the Newsjack research target at or below 200 under the anti-spam doctrine. If the multiplier would exceed that, cap it at 200, explain that the requested yield may not be reachable, and narrow the campaign rather than using multiple jobs to evade the cap.
The multiplier is a research aperture, not a quota. Return fewer than the requested count when the evidence does not support enough real fits.
The Credit Approval Gate
Creating through the API starts work immediately, uses normal Medialyst credits, creates a list visible to the authenticated organization, and counts against its active-list allowance. Therefore:
1. Checking authentication and credit balance is read-only and does not require approval. 2. Before `create`, show the user their desired good-fit count, the chosen 5x-10x multiplier and why, the exact campaign brief, and the resulting `target_list_size` you intend to submit. 3. Explain that `target_list_size` sets the requested research size and credit
The open-source skills that turn your agent into a full PR team. Install once. Your agent — Claude Code, Codex, Hermes, OpenClaw — becomes a PR team. Are you an agent? Check out Getting started Are you a human?

