What this does
It takes one artist's catalogue to the people who can do something with it — radio programmers, playlist curators, writers, creators, sync supervisors — and keeps every conversation in one place.
The idea behind it is simple. A track is listened to once, and what that listening establishes — its tempo, its character, its genre — is then reused by every outreach effort you ever run on it. You never re-do the work, and the second release is cheaper to push than the first because everything the label learned on the first one is still there: who replied, who said yes, who asked for a shorter edit, who would work with this artist again.
Everything you see on screen comes from that shared record. Nothing is invented to fill a page: if a screen is empty, it is because nothing has happened yet, and the screen will tell you which.
Nothing leaves the building without a person pressing a button. Drafts are written, shortlists are ranked, contacts are found — but the message itself waits for you on Approvals. That gate is deliberate and it cannot be switched off from inside the console.
Before you start
Four things, and you will have been given the first two.
- A web address for the console. It opens in any browser; there is nothing to install.
- An access token. This is your key. Treat it like a password — anyone holding it sees your roster, your contacts and your campaigns.
- Audio files for the tracks you want to work — the finished masters, in the quality you would send to a distributor.
- A rough idea of the goal. "Specialist radio for the new single" is enough. You will type it into the campaign in your own words, and a person reads it, not a machine.
Signing in
Open the address. You will see a public page describing the system — that is what anyone without a token sees. Choose Sign in, paste your token, and the same address now shows your work instead. Bookmark it once; the bookmark keeps working before and after you have a token.
Everything except the front page is private. If you are signed out mid-task you will land back on that public page rather than an error.
The screens
The menu on the left has four groups, and they are ordered by why you opened the console: something needs me, what do we know, what are we running, is it healthy.
| Group | Screen | What it is for |
|---|---|---|
| Work | Today | The only list that is asking something of you. Start here. |
| Approvals | Drafted messages waiting for your yes or no. | |
| Inbox | Replies that have come back. | |
| Knowledge | Artists | Your roster. One entry per act. |
| Tracks | The recordings, their masters, and what listening to them established. | |
| Statements | Distributor exports, for real stream counts. | |
| Facts | Everything the system holds, and where each item came from. | |
| Counterparties | Everyone you could take a record to. | |
| Ask | A plain-English question about your own catalogue. | |
| Campaigns | Campaigns | One artist, one channel, one goal — and how it is going. |
| Threads | Every individual conversation and where it stands. | |
| System | Fleet | The background workers and whether each is switched on. |
| Queue | Work waiting to be done, and anything parked for you. | |
| Runs & errors | What has run recently, and what failed. | |
| Budgets | Spending caps, per artist. |
Every screen has the same shape: a list in the middle, and a panel on the right that stays put. That right-hand panel is where you read the detail of whatever you have selected — and it is also where you act. Buttons live there, not scattered through the list.
Setting up your catalogue
Do this once per artist and once per track. It is the foundation everything else queries, so it is worth twenty careful minutes.
-
1
Add the artist
Artists → New artist. A name and a type. There are fourteen kinds in two groups — groups (band, duo, trio, collective, orchestra, ensemble, choir) and individuals (solo artist, singer, singer-songwriter, rapper, DJ, producer, composer). Pick the closest; it is a label, not a contract, and you can change it later without anything being reclassified behind your back.
You do not need to create your label first. Saving your first artist creates it for you.
-
2
Point at where they already exist
In the artist's panel, add their public pages — Spotify, Apple Music, Deezer, YouTube, Instagram, TikTok, SoundCloud, Bandcamp, or a press page. Each one you add gives the system something real to read about the act.
It will sometimes come back with pages it believes belong to your artist but is not certain about. Those arrive on Today as a single decision per artist — accept or reject the lot, in one go. Reject generously: a wrong page quietly bends everything downstream.
-
3
Add the track
Tracks → New recording. A title is enough to start. Add the ISRC if you have one; an empty ISRC just means nobody has registered it yet, and it is not treated as an error.
Then credit at least one person or act on the recording. This matters more than it looks: the system will not analyse a recording nobody is credited on, because it would have no idea whose catalogue the result belongs to.
-
4
Upload the master
In the track's panel, choose the audio file. It uploads straight to storage rather than through the page, so large files are fine. Once it lands, the system checks that the file it received is exactly the file you sent before accepting it.
Uploading a master starts the analysis on its own. You do not have to ask for it. Upload the same file twice and it will not analyse twice.
-
5
Read what came back
Within a few minutes the track's panel fills in. You get its tempo in BPM and a confidence figure for that tempo, a measure of how bright the recording is, and a genre and style read off the audio itself — not off a tag somebody typed.
Underneath, the panel says what it listened to: which file, how long it was, and which version of the analysis produced the numbers. If you later replace the master with a remaster and analyse again, the old figures are not erased — they are kept, superseded, so "why did we think it was 84 BPM in March" is always a question with an answer.
Open Queue. Work waiting its turn shows as pending, which is normal. If it says failed, the reason is written next to it in plain words — most often no master stored, or nobody credited on the recording. Fix the cause and press Analyse in the track's panel to try again.
Who you can reach
Counterparties is the address book, and it is already substantial: 43,191 counterparties, 29,667 of them carrying a genre, built from the public licence register, an open station directory, and encyclopaedia entries. Radio is the channel that is fully stocked today; the same list holds curators, writers, creators and sync contacts as those are added.
Two columns on that screen are worth understanding, because they decide who you can actually work.
| Column | Reads | Means |
|---|---|---|
| Contact state | contactable | Free to approach. Nobody in the label has an open conversation with them. |
| in thread | Someone is already talking to them. Off limits until that closes. | |
| declined | They said no. Left visible on purpose. | |
| Searchable | yes / no | Whether they can be matched to a track by character. A contact marked no is still there and still reachable by hand — it just will not surface in a ranked shortlist. |
One open conversation per contact, across the whole label — not per campaign, not per artist. If a station is being worked for one release, a second campaign simply cannot open a second conversation with them. That is enforced by the system, not by anyone remembering. Closing the first conversation releases them immediately.
Running a campaign
A campaign is one artist, one channel, one goal. Two campaigns on different channels run at the same time without interfering with each other.
-
1
Create it
Campaigns → New campaign. Give it a name you will recognise in a list of thirty. Choose the artist and, if there is one, the recording — a profile feature or a residency announcement is a real campaign with no single track behind it, so this is optional.
Choose the channel: curator, UGC, press, radio or sync. Then write the goal in your own words — "playlist adds on editorial-adjacent lists" is a good goal. Nothing parses it; the next person to open the campaign reads it.
It is created as a draft and opens nothing. Running it is a second, deliberate press.
-
2
Look at the shortlist
The campaign's panel ranks contacts by how well they suit this artist, and shows why each one is on the list. Anyone already in conversation with another campaign is absent — not greyed out, absent — so what you are reading is a list of people you can genuinely approach right now.
You can also see the ranking as it stood at an earlier moment, which is how you answer "why did we write to them in the first place" weeks later.
-
3
Open conversations, one at a time
There is one button per contact and no button for the batch. That is on purpose: opening a conversation takes that contact off the market for every other campaign in the label, and a bulk control would hide that cost at exactly the moment you incur it.
Each one you open appears on Threads.
-
4
Write the pitch
Open the conversation on Threads and write the subject and the message in its panel. What the artist is, what the track is, what you are asking for.
The panel also shows what the system knows that is relevant here — the track's measured character, and lessons carried over from previous campaigns for this artist. That is the compounding: campaign five starts with what campaigns one to four found out.
-
5
Approve it
The draft moves to Approvals. This screen shows the message in full, not as a row in a table — you cannot judge a pitch from a row.
Approve & queue prepares the send and records it as prepared. Reject sends it back; the rejected version is kept, and a rewrite is a new draft alongside it rather than an overwrite.
The button says queue rather than send because that is precisely what it does. See Limits and switches for what has to be switched on before a queued message physically leaves.
-
6
Handle the reply, then close
Replies land on Inbox and move the conversation along. When it is finished, close it from the conversation's panel with Close won, Close lost or No reply.
Closing matters for more than tidiness: it releases that contact so another campaign can approach them, and it is the moment the outcome becomes a lesson the next campaign inherits. A conversation left open forever is a contact quietly withheld from the rest of the label.
How to read the marks
Every piece of information in the system carries a mark saying how it was obtained. This is the single most useful habit to pick up, because facts of different kinds age at wildly different speeds and look identical without it.
An estimate never overwrites a measurement. Where something has been revised, the earlier version is kept underneath rather than deleted, so you can always walk back to what was true when a decision was made.
Facts is the whole of it in one list, newest first, filterable by mark. Items marked stale or retracted are shown rather than hidden — knowing something has gone off is more useful than not seeing it.
These glyphs and these colours are what the console draws in its own tables. They are pinned beside this text for the whole document, and they are the same three you will meet on Facts, Tracks and Counterparties. Learn them once here and the instrument is readable everywhere.
Asking a question
Ask answers questions about your own catalogue in plain English. It offers a set list of questions rather than a free-text box, and each answer comes with a note explaining exactly what it counted.
- How many contacts do we know, and what kind are they?
- What genres do the stations we know actually play?
- Which stations play a particular genre, such as jazz or hip-hop?
- What is the discovery queue doing — how much is pending or failed?
- What recordings are in our catalogue, and do they have an ISRC?
- Which contacts did we learn about most recently?
Read the note under each answer. It is where the honest qualification lives — that a search for "jazz" also matches "smooth jazz" and "jazz fusion", for instance, or that a contact can hold more than one role so the categories do not sum to the total.
A question that could be phrased any way at all can be answered wrongly in ways nobody notices. These questions have known, checked answers. If you need one that is not here, it can be added — ask.
Keeping an eye on it
Four screens under System. You do not need them daily, and each answers one question.
| Screen | Answers | What to look for |
|---|---|---|
| Queue | What is waiting? | Pending is work not reached yet, not work that is stuck. Failed is the parked pile a person is meant to look at, and each entry carries its reason. |
| Runs & errors | What has happened? | Every piece of work that ran, what it cost, and any error in full. This is where you go when something did not turn out as expected. |
| Fleet | What is switched on? | Each worker reads as working (busy now), idle (on, nothing to do), off (switched off), or declared — planned and not yet built, which is not a switch you can flip. |
| Budgets | What can it spend? | A cap per artist, what has been used in the last hour and day, and a pause. Nothing exceeds a cap; a request that would is refused before it costs anything. |
Today exists so you do not need to check the other three. Two kinds of thing land there: a match that needs confirming, and work that has been parked for a reason a person has to clear. An empty Today is the normal, correct state — it means everything that could be decided without you already was.
What to expect
Realistic outcomes, in the order you will meet them.
| You do this | You get | How long |
|---|---|---|
| Add an artist and their pages | A roster entry, plus candidate pages to confirm or reject | immediate |
| Upload a master | Tempo, tempo confidence, brightness, genre and style — with the file they came from named | a few minutes |
| Open Counterparties | 43,191 contacts, with genre tags and contact state | already there |
| Create a campaign | A ranked shortlist of contacts suited to this artist, excluding anyone already in conversation | immediate |
| Open a conversation | That contact reserved label-wide; a place to write and track the pitch | immediate |
| Approve a draft | The message recorded and queued to send, once and only once | immediate |
| Close a conversation | The contact released, and the outcome carried into the next campaign for that artist | immediate |
What it will not do
These are deliberate. Each one is a claim the evidence does not support, and the system refuses to make it rather than showing you a number that flatters.
- It will not make anything go viral. Breakout is a lottery. What this improves is the number of good attempts you can make and the cost of each one.
- It will not tell you which outreach caused which streams. That link cannot be established honestly with the data anyone has, so no screen claims it.
- It will not tell you which pitch style wins. Where the evidence is thin, you get the raw counts and the sample size, not a recommendation dressed as one.
- It will not buy engagement or seed anything artificially. Out of scope, and known to lose money.
- It will not contact anyone twice. The single-conversation rule and the send record between them make a duplicate approach structurally impossible, not merely unlikely.
Where the real numbers come from
Stream counts come from Statements — the export files your distributor produces. Upload one and the system reads it, but it will refuse to import until you have confirmed once that its columns mean what it thinks they mean. That confirmation is recorded with the import. It is one minute of work per distributor format, and it is the difference between a number you can act on and a number that is quietly wrong.
Limits and switches
Three things are built and deliberately switched off. None of them is broken; each is a decision with a cost attached, and each is yours to make.
Sending
Approving a draft prepares the send completely and records it. The message physically leaves once a mail provider is connected. Until then a campaign can be running, with drafts approved and queued, and still read zero sent — that gap is the gate doing its job, and the campaign screen says so where it appears.
Incoming replies
Inbox is connected to the real record of messages, and it is empty because no mail is being received into it yet. It says exactly that, rather than showing you invented replies. It fills the moment sending and receiving are connected — the two are the same piece of work.
Paid analysis
Features that call a paid AI service are off by default. Turning them on is a deliberate step with a daily ceiling and a per-request ceiling attached, and the ceilings are set outside the console so raising one is visible. Anything that would exceed a ceiling is refused before it is charged, and every refusal is recorded with what it would have cost — so a quiet screen never means "there was nothing to do" when it actually means "we chose not to spend".
The public front page carries a "request a demo" form, and it is the one place a stranger can write to. It has no rate limiting today. That is fine while the address is shared privately; it needs a limit in front of it before the address is published anywhere public.
If something looks wrong
The console explains refusals in plain words rather than error codes. Here are the ones you are most likely to meet.
| You see | It means | Do this |
|---|---|---|
| "Already queued" | You clicked approve twice. The first click prepared the send and the second was refused. | Nothing. This is the duplicate protection working. |
| "Nothing was queued" | Either this master is already waiting to be analysed, or nobody is credited on the recording. | Add a credit on the track, then press Analyse. |
| "There is no stored master to analyse" | The track has no audio file yet. | Upload the master. Analysis starts from the upload itself. |
| A contact you want is missing from a shortlist | They are in conversation with another campaign, or they have no character profile yet so cannot be ranked. | Check Counterparties. Close the other conversation, or approach them by hand. |
| An empty screen | Genuinely nothing there yet — and the screen names what is missing. | Read the sentence on it. It is the most useful text on the page. |
| A worker reading declared | Planned, not yet built. Its job is being done by a person through the console meanwhile. | Nothing to switch. Carry on by hand. |
If none of these fits, Runs & errors has the full text of what failed, and that text is what to quote when you ask for help.
Glossary
- Artist
- An act on your roster. Everything hangs off it — tracks, contacts, campaigns and everything the label has learned.
- Recording
- One track. It holds the master, what listening to it established, and who is credited.
- Master
- The finished audio file. Analysis reads this and nothing else.
- Counterparty
- Anyone you might take a record to: a station, a programmer, a curator, a writer, a creator, a supervisor. One word for all of them, because they behave the same way — a taste, an audience, a way to be contacted, and a history with you.
- Campaign
- One artist, one channel, one goal. It opens conversations; it does not send anything by itself.
- Channel
- The kind of outreach: curator, UGC, press, radio, sync. Channels run side by side without colliding.
- Thread
- One conversation with one contact, from first approach to closed. One open thread per contact across the whole label.
- Contact state
- Whether a contact is free to approach, already in conversation, stale, or has declined.
- Lesson
- Something a campaign found out that the next one should know. Attached to the artist and inherited by every later release.
- Queue
- Work the background workers have to do. Pending is waiting; failed is parked for a person.
- Supersede
- What happens when a value is revised. The new one becomes current, the old one stays readable underneath. Nothing is overwritten.