Public Relations
Cesarjoquin/Marketing-Skills
When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).
When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).
$ npx skills add coreyhaines31/marketingskills --skill public-relations -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install coreyhaines31/marketingskills public-relations --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/coreyhaines31/marketingskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/public-relations .claude/skills/public-relations && 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 "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .claude/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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/coreyhaines31/marketingskills/tree/main/skills/public-relationsType 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 coreyhaines31/marketingskills --skill public-relations -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install coreyhaines31/marketingskills public-relations --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/marketingskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/public-relations .agents/skills/public-relations && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .agents/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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 coreyhaines31/marketingskills --skill public-relations -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install coreyhaines31/marketingskills public-relations --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/marketingskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/public-relations .cursor/skills/public-relations && 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 "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .cursor/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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/coreyhaines31/marketingskills.git --path skills/public-relations--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 coreyhaines31/marketingskills --skill public-relations -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install coreyhaines31/marketingskills public-relations --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/marketingskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/public-relations .gemini/skills/public-relations && 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 "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .gemini/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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 coreyhaines31/marketingskills public-relationsInstalls 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 coreyhaines31/marketingskills --skill public-relations -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/coreyhaines31/marketingskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/public-relations .github/skills/public-relations && 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 "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .github/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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 coreyhaines31/marketingskills --skill public-relations -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install coreyhaines31/marketingskills public-relations --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coreyhaines31/marketingskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/public-relations .opencode/skills/public-relations && 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 "public-relations" agent skill from https://github.com/coreyhaines31/marketingskills/tree/main/skills/public-relations into .opencode/skills/public-relations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "public-relations", 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.
public-relationsWhen the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).
Public Relations is an agent skill from coreyhaines31/marketingskills. When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests). Also use when the user mentions 'PR,' 'press,' 'press release,' 'media outreach,' 'pitch a journalist,' 'get featured,' 'media list,' 'media kit,' 'press kit,' 'newsjacking,' 'news hijack,' 'HARO,' 'Qwoted,' 'Featured,' 'reporter request,' 'tech press,' 'TechCrunch,' 'thought leadership placement,' 'op-ed,' 'guest article,' 'press contacts,' 'podcast prep,' 'podcast guest,'…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including reference files (for example `evals/evals.json`, `references/crisis-communications.md` and `references/journalist-pitching.md`).
It sits in Writing & Content, covering Podcasting, Cold outreach and Copywriting. The repository describes itself as: Marketing skills for Claude Code and AI agents. CRO, copywriting, SEO, analytics, and growth engineering. The licence is MIT.
Read from SKILL.md and the folder at commit 1efedbc. 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.
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.
Public Relations loads about 2.4k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 241 tokens; SKILL.md has 1,130 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 coreyhaines31/marketingskills at commit 1efedbc, republished under its MIT licence (© coreyhaines31). 1,130 words, ~2,385 tokens.
.claude/skills/public-relations/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.You are an expert in earned media for software products. Your goal is to help the user get covered by journalists, podcasts, and newsletters — efficiently, with respect for the people on the other end of the pitch.
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
PR is not a substitute for distribution. It's a multiplier for it.
Four modes. Most teams over-index on one. Run at least three.
| Mode | What it is | Effort | Speed to coverage |
|---|---|---|---|
| Reactive (newsjacking) | Inject your POV into trending news | Low–medium | Hours to days |
| Proactive (pitching) | Build a media list, pitch original stories | High | 2–8 weeks |
| Inbound (press requests) | Respond to journalist queries on HARO/Qwoted/Featured | Low | Days to weeks |
| Owned (press page + media kit) | Make it easy for journalists to find you | One-time setup | N/A |
For the story angle taxonomy (Founding Story / David vs Goliath / Have an Enemy), data stories, media relationship-building, and the PR repurposing flywheel — see references/story-angles.md
For the reactive newsjacking workflow — see references/newsjacking.md
For proactive journalist pitching — see references/journalist-pitching.md
For inbound press-request platforms (HARO, Qwoted, etc.) — see references/press-platforms.md
For where to pitch (media outlets, podcasts, newsletters) — see references/media-outlets.md. For startup/SaaS/AI directories, use the separate directory-submissions skill — different intent, different list.
For prepping a podcast appearance you've landed — see references/podcast-guest-prep.md. Episodes get transcribed and cited by AI assistants, so a good appearance compounds in AI answers for years — prep is an AI-visibility play, not just interview polish.
PR also has a reactive side: breaches, outages, viral complaints, executive controversies. The story is already running, so the goal shifts from earning coverage to responding fast and accurately.
Start by assigning a severity tier, then run the first-60-minutes checklist: confirm facts, designate one spokesperson, publish a holding statement, set the next update time. For a data breach, injury, lawsuit, or regulator, loop in legal counsel before admitting fault or publishing.
For severity tiers, channel order, and playbooks by crisis type — see references/crisis-communications.md
For holding, breach, outage, apology, billing-error, and postmortem templates — see references/statement-templates.md
Set this up once. It's the cheapest PR investment with the highest ROI on every future story.
Press page (/press or /newsroom) should include:
One sentence at the top: "For interview requests or assets, email press@yourcompany.com — we respond within 24 hours."
Then actually respond within 24 hours.
Before sending any pitch, the answer to all of these should be yes:
If any answer is no, don't send.
What to track:
| Metric | Why |
|---|---|
| Coverage count (placements / month) | Activity baseline |
| Domain rating of placements | Backlink value |
| Referral traffic from coverage | Did anyone actually click? |
| Brand search lift | Did people search you after reading? |
| AI citation rate (ChatGPT, Perplexity quote your brand?) | The new measurement that matters |
| Sales conversations citing the article | The only one that matters for revenue |
What not to obsess over: AVE (advertising value equivalency) — it's a vanity metric PR firms invented.
Go to newsjacking.md, run the scoring rubric, draft 2–3 angles, pick the best, draft the pitch.
Go to journalist-pitching.md, use the discovery checklist + dev-browser to research recent articles, build a scored list.
Combine: recent product milestones + active news cycles + any data you've collected. Score each potential story by the quality bar above.
Go to story-angles.md. Fit the situation to one of the three angles (Founding Story / David vs Goliath / Have an Enemy), or turn proprietary data into a data story. Remember: a milestone alone isn't a story — milestone with narrative is.
Go to press-platforms.md, use the response template, keep it under 200 words.
Go to podcast-guest-prep.md: research the show (RSS feed → site → Apple Podcasts → web), extract the recurring threads and host profiles, map the guest's stories onto them, deliver the brief.
Use the checklist above. Most companies do this in an afternoon and forget about it for a year — that's fine.
© coreyhaines31, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (references) in skills/public-relations of coreyhaines31/marketingskills.
Open the folder on GitHubat commit 1efedbc
Public Relations 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 |
|---|---|---|---|---|---|---|
| Public Relations this skillcoreyhaines31/marketingskills | 54k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Public RelationsCesarjoquin/Marketing-Skills | 202 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Launchmenkesu/awesome-pm-skills | 434 | — | ~4.9k | Automated safety check: Pass | Custom licence | |
| Email WriteAgriciDaniel/claude-email | 130 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Press And PRappeeky/aso-skills | 2.2k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Campaign Copywritinggrowthenginenowoslawski/coldoutboundskills | 753 | — | ~7.5k | Automated safety check: Pass | MIT |
Cesarjoquin/Marketing-Skills
When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).
menkesu/awesome-pm-skills
Builds a launch plan, launch story and press/distribution plan, then drafts the pitch emails and announcement copy.
AgriciDaniel/claude-email
Compose high-converting emails using proven copy frameworks (PAS, AIDA, BAB, FAB, 4Ps).
appeeky/aso-skills
When the user wants to get press coverage, media mentions, or editorial features for their app — including writing press releases, pitching journalists, getting on "best apps" lists, or building an…
growthenginenowoslawski/coldoutboundskills
Creates cold email copy through a stepwise confirmation process.
Othmane-Khadri/YALC-the-GTM-operating-system
Writes follow-up cold emails after no reply from a prospect.
coreyhaines31/marketingskills
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
coreyhaines31/marketingskills
When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.
coreyhaines31/marketingskills
When the user wants to audit or optimize an App Store or Google Play listing.
coreyhaines31/marketingskills
When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program.
coreyhaines31/marketingskills
When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates.
When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests). Public Relations is an agent skill from coreyhaines31/marketingskills. When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests).
Public Relations fits situations like: wants help with public relations; journalist outreach; media strategy (not pull requests); the user mentions PR.
Run `npx skills add coreyhaines31/marketingskills --skill public-relations -a claude-code`. Or copy the skill folder (skills/public-relations in coreyhaines31/marketingskills) into .claude/skills/public-relations in your project. Claude Code loads it when a task matches its description.
Run `npx skills add coreyhaines31/marketingskills --skill public-relations -a codex`. Or copy the skill folder (skills/public-relations in coreyhaines31/marketingskills) into .agents/skills/public-relations 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 coreyhaines31/marketingskills --skill public-relations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/public-relations, .gemini/skills/public-relations, .github/skills/public-relations and .opencode/skills/public-relations in your project.
SKILL.md names no scripts, command-line tools or credentials: Public Relations 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.
Public Relations is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 16k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Public Relations: Public Relations (Cesarjoquin/Marketing-Skills, 202 stars), Launch (menkesu/awesome-pm-skills, 434 stars), Email Write (AgriciDaniel/claude-email, 130 stars) and Press And PR (appeeky/aso-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
coreyhaines31 (a GitHub user) maintains it in coreyhaines31/marketingskills, which has 53,967 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 2026.
Source: coreyhaines31/marketingskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.