journalist-fit-check

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, stated-preferences, database triangulation) and returns fit, soft-fit, no-fit, or unknown

By elvisun · 749 installs

npx skills add elvisun/newsjack --skill journalist-fit-check

Source repository · Upstream listing

Journalist Fit Check This is the Journalist Fit Check skill inside newsjack.sh. It is the gatekeeper. It exists because too many pitches go to the wrong people: irrelevant stories, stale contacts, and mail merge "personalization" sent to journalists who never asked for it. It checks one journalist and one pitch at a time , and gives you one of four answers: Fit — pitch this person, the match is real. Soft fit — close, but the pitch needs a few specific edits first. No fit — wrong person, do not pitch. Unknown — not enough solid evidence to say yes or no. Every Fit, Soft fit, or No fit answer must point to a real, dated, recent article (a "byline" — a piece with this journalist's name on it) published in the last 90 days. No real recent piece, no confident answer. This skill is blunt on purpose. It will not soften a no or pad a maybe. A clear, specific answer beats a polite one. Boundaries Do not build media lists. Do not rank journalists against each other. Do not send anything. Do not keep or trust a contact database. Do not call something a fit based on an outlet's category, a database tag, a bio, or a vibe. Do not make up articles, dates, titles, links, outlets, or social posts. Do not say Soft fit when the honest answer is Unknown . If you ask about 20 or 50 journalists, this skill checks them one at a time. Stopping the mass blast is someone else's job; this skill will never be the thing that greases a batch send. Required Inputs Accept one journalist identifier: name + outlet profile URL recent byline URL a beat description (the topic area they cover) is useful context only; a beat on its own cannot identify a specific journalist and cannot produce an answer Accept one pitch: full pitch text subject line if present body text as written Accept context: current time iso (today's date and time) is required. Never guess what "now" is from memory. client or subject (who or what the pitch is about) is optional. decay stage is optional; it carries over from breaking news workflows to flag how fast a story is moving. If today's date and time is missing, the answer is Unknown (reason: missing current time). Retrieval Find the journalist's recent work using the best source available: medialyst (the built in media database) when you are logged in host agent search (public web search) otherwise cache only when you explicitly hand over saved article evidence Look in places that are likely to hold their current work: the outlet's author page, Google News or similar web results, the journalist's personal site, their Substack or newsletter archive, LinkedIn snippets, and their Twitter/X profile or specific posts when those can be opened. The answer must say which source it used. If no source turns up a named article with a date and a link, the answer is Unknown . The Checks — how to judge fit These are the actual methods media relations practitioners use to test one journalist against one pitch. They replace "do your research" with specific moves. Run the pitch through them, gather the evidence, and let it drive the verdict. A real Fit needs all three of the triangulation axes (relevance, timing, format) to hold; two of three is a Soft fit ; a missing relevance axis is a No fit . A single journalist will light up several checks at once. That convergence is the verdict — not any one check alone. 1. The Last 10 Bylines Audit — beat verification Mechanic: Don't trust the outlet section or the database beat label. Pull this journalist's last ~10 bylines and ask what percentage actually covers your topic. Below roughly 80% topic hit across the recent window means the targeting is wrong, not the pitch wording. Worked example: Pitch = a new enterprise password manager. Journalist is tagged "Technology" at a national outlet, but their last 10 bylines are 7 on AI regulation, 2 on chip supply chains, 1 on a Big Tech earnings call. Cybersecurity product = 0/10 in the recent window. → No fit — right vertical label, wrong actual coverage. 2. The 90 Day Topic Sweep — recency / decay gate Mechanic: Start from the byline, not the outlet. Pull the last 90 days of this journalist's coverage on your specific topic. Coverage older than ~3 months is a red flag they've moved on; reporters change beats every 12–18 months. One old hit does not establish a current beat. Worked example: Pitch = a fintech fraud detection launch. The journalist wrote a strong fraud feature — but 5 months ago, and nothing on fraud or fintech since (recent work is all crypto regulation). The fraud piece is now outside the freshness window and the beat has drifted. → Soft fit at best — pitch only with a tight, current peg, or find a fresher fraud byline. 3. Beat vs. Angle Preference vs. One Off — the three way read Mechanic: Read across 6–12 months of bylines and separate three things. Standing beat = the topic recurs repeatedly → safe to pitch. Angle preference = within that beat, the slice they keep choosing (covers "AI" but always the labor angle, never infrastructure). One off = the topic appears once with no follow up → coincidence, not a beat. Repetition is a beat; a consistent lens is an angle preference; a single appearance is a one off. Worked example: A year of AI coverage is consistently the worker displacement/labor angle (10+ pieces), with exactly one piece on AI chip exports. Your pitch is an AI data center cooling product. Beat (AI) matches, but their angle preference is labor, and the chip piece is a one off — not a hardware beat. → No fit on the product angle; Soft fit only if you reframe to "what AI infrastructure means for jobs." 4. Format Match — the 5 forms of journalism Mechanic: Match your pitch shape to the form the writer actually produces. Identify the form from their bylines, then check whether the pitch supplies what that form needs: Form Identify it by What the pitch must supply Investigative Data heavy, multi source, evidence trails A data set, expert source, factual narrative — never a product promo News reporting Straight, timely, who/what/when A genuine time peg plus facts, fast Feature Narrative, human centric, longer A person/story (Who/What/When/How), not a spec sheet Opinion First person ("I believe"), narrow theme A first person POV angle — never a product Column Commentary + reporting, recurring themes A perspective hook tied to current events — not a launch Review/roundup "Top 20…" comparisons or single item tests Honest product access, comparison framing, audience value Worked example: Pitch = "Our new project management app launched today," sent to an opinion columnist who writes first person takes on workplace culture. Product launches are exactly what their non promotional mandate rejects. → No fit (wrong form). The same app pitched to a review/roundup writer who does "best productivity tools" comparisons = Fit . 5. Source Mirror Check — who they trust Mechanic: Read 2–3 recent pieces and catalog who they quote and what sources they lean on — academics vs. practitioners, named executives vs. independent analysts, primary data/interviews vs. vendor reports. Then ask whether the source you're offering matches the type they actually use. Tech reporters especially favor credible/independent voices over marketing ones. Worked example: Pitch offers your VP of Marketing as the expert; the journalist's last three pieces quote only independent academics and named end users, never vendor marketers. The source type mismatches. → Soft fit — swap the offered source to a data scientist or a customer and it becomes a Fit . 6. Stated Preferences Read — the journalist's own words Mechanic: Before judging anything inferred from bylines, check the journalist's declared rules: Muck Rack "pitching preferences," bio, X/social bio, a "how to pitch me" page. A stated "I don't cover X" overrides any byline inference. If they say no attachments, exclusives only, or no funding rounds, those are hard constraints. Worked example: Beat and recency look good, but the Muck Rack profile says "exclusives only, no embargoes, and I don't cover funding rounds." Your pitch is a Series B announcement going to five outlets. Two stated rules broken. → No fit by self declaration , regardless of beat match. 7. Database Triangulation — three axes before a yes Mechanic: Use database signals (Muck Rack and similar) as evidence inputs , not the verdict. They surface recent articles, self declared preferences, geographic focus, and 12 month topic coverage. Triangulate three axes before any Fit : 1. Relevance — beat + angle match, from bylines. 2. Timing — within the 90 day freshness window plus a live peg. 3. Format — the form they write matches your pitch shape. All three = Fit . Two of three = Soft fit . Missing relevance = No fit . Worked example: Pitch = a SaaS security data report. Relevance ✓ (5 cybersecurity pieces in 90 days), format ✓ (writes data driven news), timing ⚠️ (no current peg; last breach cycle was weeks ago). → Soft fit — hold until a news peg, or lead with the data's own novelty as the peg. Anti patterns these checks catch Right outlet, wrong section (news pitch to the opinion desk). A stale or one off byline treated as a current beat. A "today only" peg sent to a feature writer who works on weeks long lead times. A commercial promo sent to a non promotional columnist. A marketer offered to a reporter who only quotes independent experts. Irrelevance is the single biggest reason journalists block a contact — these checks exist to catch it before the send. Step By Step Flow Step 1 — Identify the journalist Confirm this is a real person you can actually check (author page, recent article, profile, newsletter, or any public trace). If you can't, stop and return Unknown (reason: unresolved). If all you were given is a beat (a topic, not a person), return Unknown (reason: unresolved) and ask for a named journalist, an outlet, a profile link, or a recent article link. Finding journalists in the first place is a job for find journalists or newsjack detector . Do not guess from the name alone — a confident "yes" about the wrong person is worse than an honest "I'm not sure." Step 2 — Scan the pitch for slop tells Run the pitch through the Anti Slop principle below. If a clear slop tell shows up, return Unknown (reason: slop tells in pitch) and point the user to meanest editor and voice extractor . A pitch that still reads like a template never gets a Fit. Step 3 — Find the anchor article An "anchor" is one specific recent article by this journalist that proves the match is real. For Fit or Soft fit you must name at least one, with all of: the exact title word for word, a working link (article or real social post), the real publication date, published within the last 90 days, and one sentence connecting it to the pitch. If your reasoning leans on "their recent work," "the outlet covers," "given their beat," or "broadly relevant," you do not have an anchor — find a real article or return Unknown . For Substack writers and independents, anchor to their current newsletter, personal site, or recent posts; don't judge them by an old staff job their newsletter has replaced. Step 4 — Check how fresh their work is (decay) "Decay" is how stale their most recent work is. Every answer reports it: More than 90 days since their last article: stop and return Unknown (reason: stale data). 61–90 days: you can answer, but flag a freshness warning. 60 days or fewer: no warning needed. For independents, a newsletter post or an openable thread counts as a recent piece. The 90 day cutoff still applies either way. Step 5 — Decide the verdict Run the checks above and place the result on this ladder. Th