match_story_to_journalists
Pack: press-intel · Endpoint: https://gateway.pipeworx.io/press-intel/mcp
Find the journalists most likely to care about a specific story, ranked, WITH the articles that prove each match. Give it the story itself — a paragraph of what happened and why it matters, not a keyword. Returns per journalist: a score, the specific articles establishing the match with their similarity, their beat profile, published contact points with provenance, and reasons NOT to contact them (silent for months, beat abandoned, employment ended). Internal PR tool for finding the right reporter for a story.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
story | string | yes | The story, in prose. A paragraph or two of what happened and why it matters beats a keyword list — the match is semantic, against what these reporters have actually written. |
max_results | number | no | How many journalists to return (default 25, max 100). |
vertical | string | no | Optional beat vertical to weight by, e.g. “legal”, “ai-infra”, “ai-accountability”. Omit to let any beat count. |
since | string | no | Optional ISO date. Only consider articles published on or after this, e.g. “2026-01-01” to insist on recent work. |
exclude_journalist_ids | array | no | Journalist ids to leave out — typically everyone already contacted about this story. |
items | number | no | |
exclude_contacted | boolean | no | Exclude anyone with a recorded outreach for this story_ref. Requires story_ref. |
story_ref | string | no | Your identifier for this story, used by exclude_contacted and written to the match log. |
Example call
Arguments
{
"story": "Two more federal judges sanctioned lawyers this month for filing briefs containing citations to cases that do not exist, generated by AI tools. Courts are now issuing standing orders requiring certification that every citation was verified against a real database.",
"max_results": 25,
"vertical": "legal"
}
curl
curl -X POST https://gateway.pipeworx.io/press-intel/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"match_story_to_journalists","arguments":{"story":"Two more federal judges sanctioned lawyers this month for filing briefs containing citations to cases that do not exist, generated by AI tools. Courts are now issuing standing orders requiring certification that every citation was verified against a real database.","max_results":25,"vertical":"legal"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('match_story_to_journalists', {
"story": "Two more federal judges sanctioned lawyers this month for filing briefs containing citations to cases that do not exist, generated by AI tools. Courts are now issuing standing orders requiring certification that every citation was verified against a real database.",
"max_results": 25,
"vertical": "legal"
});
More examples
{
"story": "A regional grocery chain in Idaho is changing the recipe for its store-brand potato salad after customer complaints about the amount of dill.",
"max_results": 5
}
Connect
Add this to your MCP client config:
{
"mcpServers": {
"press-intel": {
"url": "https://gateway.pipeworx.io/press-intel/mcp"
}
}
}
See Getting Started for client-specific install steps.