Skip to content
Crossfeed

Rank by who listens

An agent that ranks your network’s shows by listener overlap in Qloo, asks you at each fork, and ends in an insertion order you approve.

Signs you in as a guest, for a day. Every guest shares the network, which opens on 19 public show names from The Ringer, with sample figures. Crossfeed isn’t affiliated with The Ringer.

What a topic plan misses

A plan by topic puts Low Tide, a true-crime launch, on the network’s crime and courtroom shows. Ranked by who listens, three of its five finalists come from outside that top five.

Launch: Low Tide

A true-crime show set in a fishing town, from Kiln Street Audio, a network of 8 shows.

Rank the roster

Ranked by listener overlap with Low Tide, as Qloo scores it.Ranked by topic alone, as Claude ranks it from show names and descriptions.

RankMoveShowFit
1st by who listens, 1st by topicSame as topic rank

Case Notes

FinalistCold case · Small-town

Strong
2nd by who listens, 6th by topicUp 4 places

The Harbour

FinalistCoastal · Oral history

Strong
3rd by who listens, 2nd by topicDown 1 place

Plain Sight

FinalistInvestigative · Courtroom

Strong
4th by who listens, 8th by topicUp 4 places

Tide Tables

FinalistCoastal · Working life

Good
5th by who listens, 7th by topicUp 2 places

Static

FinalistSlow-burn · Late night

Good
6th by who listens, 3rd by topicDown 3 places

Small Claims

Courtroom

Good
7th by who listens, 4th by topicDown 3 places

Night Desk

Local news

Fair
8th by who listens, 5th by topicDown 3 places

Dry Ink

Mystery

Fair

5 finalists. The Harbour climbs 4 places over a topic-only plan, and 1 more show climbs 3 or more.

Illustration: a made-up network, launch, shows, ranks, and tags. Not Qloo data.

How a run works

  1. Seconds

    You

    First, you name the launch, or up to three comps for one that isn’t out yet.

  2. About ten seconds

    The agent

    Then the agent ranks the roster by listener overlap with the launch, in Qloo.

  3. Up to you

    You

    Then it stops to ask for the slot budget and the shows to leave out, and waits for your answers.

  4. Under a minute

    The agent

    Then it checks the finalists’ listeners, finds the tags each shares with the launch, and drafts the plan.

  5. Up to you

    You

    Last, you edit the insertion order, approve it, and export it as CSV. Nothing is final until you do.

Ranks the roster

It looks every show up in Qloo and scores the whole roster against the launch in one call. The on-air readout and the run log say what it’s doing while it works.

RunningFinding the tags 5 finalists share with Low Tide · step 6
1:48

Run log Running

Each step the run took, and how it ended.

  1. Resolving Low TideDone
  2. Scoring 8 shows against Low TideDone
  3. Asking for the slot budgetDone
  4. Asking for exclusionsDone
  5. Checking demographics of 5 finalists against Low TideDone
  6. Finding the tags 5 finalists share with Low TideRunning
Slot budget
20 promo slots
Left out
None
A run’s readout and log while it finds the tags the finalists share with Low Tide.

Asks at each fork

Where a plan needs a person, it stops and asks rather than guess: the slot budget, the shows to leave out, which match is right when a name is ambiguous. The run waits for the answer.

AgentWaiting on you

What’s the slot budget for Low Tide, in promo slots or dollars?

The insertion order is checked against it.

Promo slotsA dollar budget20

Answer

The agent waiting on the slot budget for Low Tide.

Drafts the plan

It drafts an insertion order across the finalists, with a host-read angle for each from the tags it shares with the launch. Code prices every slot from your own downloads and CPM, and nothing is final until you approve it.

The plan

Insertion order IO-0001

Draft

Agent drafted the slots and angles. Code prices each slot at downloads per episode × CPM ÷ 1,000.

Show · angleSlotsValue
Case Notes6$2,160
Low Tide reopens a small-town cold case. $360 a slot
The Harbour5$900
The town tells its own story, as your guests do. $180 a slot
Plain Sight4$960
An investigation that ends in court. $240 a slot
Tide Tables3$270
Set among the boats and tides you follow. $90 a slot
Static2$240
A slow-burn case, best heard late. $120 a slot
Total20$4,530

Budget: 0 of 20 slots left.

ApproveEdit lines

Nothing is final until you approve it. Editing returns it to draft.

Insertion order IO-0001: 20 slots across the 5 finalists at a $20 CPM.

Cites every figure

Every match, rank, and tag carries the number of the Qloo call behind it. Open one for the request, its parameters, and what Qloo returned. Claude explains and drafts from those records, and never makes up a score.

RunEvidence

Evidence · C-14 Qloo data

Qloo scored 8 of 8 candidates.

Request
POST /v2/insights
Status
200
Called
Oct 28, 14:01:58 · 1,240 ms
Run
Run 1

What was sent

Type
Podcast
Ranked against
Low Tide
Candidates
8 podcasts
Explainability
On
Results
Up to 50
Affinities · 8
NameAffinity
Case Notes0.912
The Harbour0.887
Plain Sight0.871
Tide Tables0.846
Static0.828
Small Claims0.803
Night Desk0.779
Dry Ink0.754
Stored record
Call C-14, the ranking of Kiln Street Audio’s roster against Low Tide.

Triages pitches

Paste a day’s pitches. Claude reads each one for the guest’s public work, Qloo ranks those works against your show by who listens, and the agent drafts a Book, Later, or Decline reply. A reply can be copied only once you approve it.

Replies · 1 of 2 approved

Agent

Book · 2

  • Salt Ledger · Mara Quist

    Approved

    To Ines Tolland at Brightwater Books

    Episode angle The cannery strike of 1931, told from the harbourmaster’s ledgers.

    Shares with The Harbour: Qloo data Coastal · Oral history · Working life

    Hi Ines, thanks for sending Salt Ledger. Mara’s book is a close fit for The Harbour’s listeners, and we’d like her on for an episode about the cannery strike. Could she record in the first week of March?

    CopyEditDiscardCopy it into your own email to send.
  • The Breakwater · Tom Ruel

    Draft

    To Sam Odum at Northlight Films

    Episode angle Filming the storm of 1953 with the town’s own boats.

    Shares with The Harbour: Qloo data Coastal · Weather · Documentary

    Hi Sam, The Breakwater looks like one for The Harbour: its audience is close to ours. We’d like Tom on to talk about filming the 1953 storm with the town’s boats. Is he free to record this spring?

    ApproveCopyEditDiscardCopy unlocks once you approve.
Replies drafted to guests pitched to The Harbour.

Works from code

Programs and assistants start runs, relay the agent’s questions, and edit drafts through the REST API, the TypeScript SDK, the MCP server, and Agent Skills. None of them can approve. For developers

What Crossfeed never does

Crossfeed neverInstead
Sends a guest’s name or a pitch to Qloo.Only public shows and works are looked up. A guest with no public work is set aside, and a title holding an email address or the guest’s own name isn’t sent.
Reads a result as a fact about a person.Fit describes overlapping audiences, never a probability about an individual, and nothing infers anyone’s politics, health, or eligibility for anything.
Makes up a score.Every fit ranking is a Qloo call you can open. The model narrates the evidence and drafts from it.
Prices a plan with numbers you didn’t give it.Slot value comes from the downloads and CPM your network enters. There’s no default CPM; the sample network’s is labelled sample.
Approves anything for you.The agent proposes and you decide. An insertion order exports, and a reply can be copied, only after you approve it. Crossfeed sends no email.
Publishes Qloo’s data.Qloo’s responses are cached on Crossfeed’s server and shown only in the app.

For developers

Crossfeed is one Cloudflare Worker. The page is server-rendered, and the workspace talks to its agent over a WebSocket: it reads the agent’s synced state and calls its actions, and never writes state itself.

Programs and assistants can plan a network’s launches and triage its pitches too, with one of its API keys. None of them can approve: that stays with the network’s members, in the app.

  • REST API

    Every resource of a network under /api/v1, described by an OpenAPI document.

  • TypeScript SDK

    Typed methods for every route, for Node, Bun, Deno, and Workers.

  • MCP server

    The same operations as tools, for assistants such as Claude Code.

  • Skills and plugin

    Agent Skills that plan launch promos and triage pitches, in a Claude Code plugin.

Read the developer docs

Reading a run with a key from the network’s settings answers 200, here with the run waiting on its question (trimmed):

Shell
curl -H "Authorization: Bearer $CROSSFEED_API_KEY" \
  "$CROSSFEED/api/v1/networks/$NETWORK_ID/launches/$LAUNCH_ID/runs/$RUN_ID"
JSON
{
  "id": "6f0d9c4e-2b7a-4c1e-9f53-8a1d2e7b4c90",
  "status": "waiting",
  "startedBy": "API key “Planner”",
  "question": {
    "id": "toolu_01Kx3dV8mJ2pQ7wRb5nTfY9c",
    "kind": "budget",
    "question": "What’s the slot budget for Low Tide, in promo slots or dollars?",
    "options": []
  }
}
Runtime
Cloudflare Workers, with a Hono app
Agent
A Durable Object per session, on the Cloudflare Agents SDK
Model
Claude Haiku 5.5, through the Anthropic API
Scores
Qloo’s REST API, behind one gateway that caches, paces, retries, and caps every call
Evidence
A record of every Qloo call: its parameters and the names, tags, and scores it returned, numbered per session
Export
An approved insertion order as CSV, headed Show,Slots,Angle,Slot value (USD),Line value (USD)

Try the sample, or your roster?

orCreate your network

The sample signs you in as a guest, in the network every guest shares, which is cleared every day. A network of your own keeps its roster, launches, and members, and its members sign in with passkeys.