Skip to main content
Skip to content
TAPTry TAP free
§ Case Studies6 min read

How a One-Person PR Agency Runs Five Concurrent Campaigns Inside TAP

Five artists, five campaign timelines, one operator. A Liberty Music PR case study covering Wave 1 sends, follow-up cadences, the agent surface, and the moves the workspace makes routine.

Liberty Music PR is one operator. Five active artists on the roster as of this week. UK radio is the home ground: BBC, community stations, and the specialist commercial circuit. The campaigns overlap. Wave 1 of one release lands the same day as the wrap-up of another. There's no team to absorb the overlap, so the workspace has to.

This is a snapshot of what that looks like inside TAP.

What was happening before

Before TAP, the same five concurrent campaigns lived across seven tools:

  • A spreadsheet of contacts per artist
  • Gmail for sends, with labels per campaign
  • WARM for radio play data
  • CoverageBook for the end-of-run PDF
  • Drive folders for press releases, WAV files, photos
  • A separate document for follow-up scheduling
  • Notes in a Markdown file for what worked, what didn't

The cost was memory. Spreadsheets don't remember who ghosted you on the last single. WARM doesn't know which station went on rotation without ever replying. Drive doesn't tell you the SoundCloud preview link broke an hour before send. A campaign that finishes is a campaign whose lessons stay in the head of the operator, not the system.

That was the brief I built TAP against.

What this week looked like

This is the live state of the Liberty roster, taken from Gmail Sent and the campaign tables today:

| Artist | Track | Status | Notes from the workspace | |--------|-------------|---------------------|-------------------------------------------------------------------------| | SG | Lonely World | Wave 1 fired today | 262 sends. Release 29 May. Follow-up Friday scheduled 22 May. | | LV | Obvious | Released today | Wave 1 a week ago, plus 149 release-day extras + client report email. | | BE | Brand New | Wrapping | 88 plays across 14 stations in 6 countries. | | EG | Because of You | Complete | WARM ping watching residual rotation. | | RB | Don't Make It Hard | Complete | WARM ping watching residual rotation. |

Five campaigns. Three operating modes (in-flight, fresh release, wrap). One workspace.

The moves the workspace makes routine

A few of these are V2.1 specific. Most are V2.0 capability that compounds when the volume gets to five concurrent.

Approve-to-send queue. Every pitch the workspace drafts waits for me to read it before it goes. The agent can suggest, the workspace can prefill, the operator presses send. SG's Wave 1 was 262 contacts; I read every one before approving the batch.

Coverage portal. When BE wrapped, the artist got a /share/[token] link instead of a PDF attachment. Plays, replies, and coverage stay fresh on every load. The artist opens it in the run-up to their next single and the numbers haven't gone stale. CoverageBook doesn't do that.

Skills. The Liberty house rules live in the workspace as editable Skills. The "don't pitch generic inboxes when a named producer exists" rule, the "follow up at T+7, not T+5" cadence, the "BBC contacts need a more formal tone" line. The agent reads the Skills before it drafts. When I learn something new on a campaign (most weeks, something new), I edit the Skill and the next draft picks it up.

MCP server. When I want to pull a count of BE's plays per station for a wrap report, I ask Claude. Claude calls tap_query_plays via the MCP server. The data is in front of me in seconds. I don't open the workspace UI for that read.

What the agent surface actually changes

Before V2.1, the workspace held the campaign state and I read it through the UI. After V2.1, the workspace exposes the same surface to whatever agent I want to drive it from: Claude Desktop, Cursor, a Hermes background worker. Same data, same per-message approval law, three doors in.

For Liberty, that meant the SG Wave 1 prep ran half in the workspace and half in a Claude session that pulled the latest WARM play counts for the Friday Feedback email. Before V2.1, I'd have had to copy them across by hand.

What's still hard

Five concurrent campaigns is the ceiling for one operator and a workspace, not the floor. The constraint that bites first is attention on each pitch, not capacity. TAP can hold the state for ten campaigns. The operator can't pitch with care across ten. Volume isn't the win. Quality on every named-producer relationship is.

The campaigns that close well are the ones where the operator read every pitch, sent every follow-up at T+7, and remembered which producer ghosted on the last single. The workspace removes everything except that.

Which is the whole point.

Share
Chris Schofield

Chris Schofield

Radio Promoter & Founder

5+ years in UK radio promotion. Built TAP to replace the 7-tool workflow most agencies still use.

§ Frequently asked

Straight answers.

How many campaigns can one operator realistically run at once?

With the right workspace, five is workable. The constraint is attention on each pitch, not capacity in the tooling. TAP holds the campaign state across artists so the operator doesn't have to keep five separate spreadsheet stacks in their head.

Does TAP send pitches on the operator's behalf?

No. Every outbound waits in the approve-to-send queue. The drafts can be agent-written, but the send is a human action every time. That rule does not bend on any plan.

What numbers do you publish, and which do you hold back?

Real WARM play counts, station counts, and reply counts where they're attributable to a single campaign. Anything that can't be verified against Gmail Sent, WARM exports, or campaign_contacts queries doesn't appear in the case study at all.