Brain in a Vat
Selected work

Music promotion

The operating system inside a working agency.

Brain in a Vat Music Promotions became the first client of the consulting practice. Kickoff, targeting, asset handling, reporting, and agent procedures now run as one connected operation.

30 minutes to twoCampaign kickoff
12 hours to twoPitching per campaign
16 hours to 80 minutesReporting per four-week campaign

Campaign kickoff

Start while the client is still excited.

A signed confirmation means the client is ready to pay. It is also the worst moment to disappear into administrative work, because the excitement fades while the invoice is being built, and the campaign starts late.

Kickoff turns that half hour into one keyboard shortcut. It creates the client and deal records, the invoice, and the campaign folder, then drafts a kickoff email that carries a payment link and one asset-request form per campaign. Roughly thirty minutes across four apps became about two.

Every step is a prefilled dialog I can cancel, and the email stays a draft until I send it. Assets already in the agency’s records are attached on the way out, so a returning client never re-enters information I already have.

The asset workflow replaced email threads where files got lost and re-versioned across a dozen messages. I keep a copy of every asset in the agency’s storage rather than relying on a link into the client’s storage, because client-hosted files change and permissions vanish mid-campaign. Nothing gets lost, nothing goes stale, and the campaign starts while the client is still excited.

See the kickoff workflow step by step

Campaign kickoff workflow running across the agency’s working tools
One shortcut creates the records, invoice, folders, intake form, and reviewable email draft.

Campaign pitching

Recorded taste drives targeting.

The system is built on one idea: taste can be recorded, and recorded taste can drive targeting.

It started as a spreadsheet. Every curator’s adds, passes, and feedback was entered by hand, and hundreds of pitch emails were personalized one at a time until mail merge made real segments possible. That spreadsheet is now two databases. Each curator has one record, with their playlists rolling up underneath it. Campaigns and playlists share one genre ontology. Every week the system matches live campaigns to curators, dedupes against every prior pitch and existing placement, holds each curator to at most one pitch a week no matter how many campaigns are live, and compiles a draft target list with its reasoning attached.

I still review that list, and the ontology is limited on purpose. The one read it leaves out is whether a track reads commercial or underground, the call that sends two same-genre tracks to different playlists. I could keep adding qualitative tags forever, and a trained ear is cheaper than that data architecture will ever be. The human step sits where the judgment lives, and I can override any match.

Two backstops recover what the restraint gives up. Reporting feeds missing genre tags back into the database whenever a playlist turns out to play something it was not mapped for. Every pitch also links a playlist of all current campaigns, so a curator can always find the track I did not send.

Pitching people music they do not want is how they stop opening your emails. Staying valuable to curators is the whole business, and this system is how that restraint scales. What once took twelve hours per campaign now takes two.

Pitch pipeline launched from the agency campaign database
The system prepares a reasoned target list; the final judgment stays human.

Campaign reporting

Collect the evidence before making the claim.

Tracking and recording what happened across campaigns once consumed close to three days of every week. Curator replies, analytics activity, and submission results lived in different places. Every client update meant collecting them again and deciding which results I could honestly claim.

The breakthrough was teaching the process to an assistant with no music-industry background. Every judgment I made instinctively had to become a rule someone else could follow. No reply does not mean a rejection. Saying a song will be added is not proof that it has been. Once a result is confirmed, weaker evidence cannot erase it.

Every afternoon, the system gathers playlist activity from Songstats, email replies from Gmail, and responses from SubmitHub. It matches the evidence to the right campaign and placement. If an email and a platform both report the same playlist add, they become two sources supporting one result, counted once.

A model reads replies and identifies the music, outcome, and exact words supporting that interpretation. Code checks those interpretations against campaign and playlist records. Unclear matches or outcomes come to me for review before they become client claims. The results also update each curator’s history, informing who I pitch next.

Those records feed each campaign dashboard and, twice a week, a drafted client email with running totals and the report link. I review the results, adjust the framing for the relationship, and send. The system does the collecting and reconciliation; I remain responsible for what the client hears. For a four-week campaign, what once took roughly sixteen hours now takes about eighty minutes of my attention, or twenty minutes per week.

View a live campaign report

Music promotion campaign dashboard with placement and audience metrics
One live campaign dashboard, fed by the same reconciled results used for client updates.
Three campaign report email drafts ready for review
Client updates remain drafts until they are reviewed and sent.

Grounded agents need something dependable to read.

The agency’s knowledge base captures business logic, conventions, and procedures as structured pages. Agents read the relevant playbook before working, and review gates keep consequential judgment with a person.

Go inside the agency knowledge base

Have an operation worth untangling?
[email protected]