Christopher Page Thompson

NULL PERSONA // DISTRIBUTION INFRASTRUCTURE

1,410+ RADIO CONTACTS.
ONE RELEASE PIPELINE.

I treated an independent artist like a product ecosystem—building not only the music, identity, website, visuals, and content, but the infrastructure required to distribute it. RADIO COMMAND turns a release into a scored, segmented, personalized, and trackable radio campaign.

BUILT FROM DIRECTORY TO FUNCTIONING APPLICATION IN ROUGHLY THREE HOURS.
4,095RADIO CONTACTS
26COUNTRIES
3,641EMAILABLE CONTACTS
8OUTREACH TEMPLATES
3RELEASES LOADED
~10 MINCAMPAIGN SETUP
~3 HRSINITIAL BUILD
The objective wasn't to automate sending email. It was to build a repeatable distribution system.

01 // THE PROBLEM

MUSIC DISTRIBUTION DOESN'T END AT DISTROKID.

Getting a song onto Spotify is easy. Getting someone to actually hear it is a different problem.

For years, I approached music promotion the conventional way: find stations, locate the right contact, understand what they program, write the pitch, send it, track the response, follow up, and repeat. Multiply that by thousands of stations and the constraint becomes obvious.

The problem wasn't access to contacts. The problem was operational scale. So I stopped treating radio outreach as a collection of emails and started treating it as a data and workflow problem.

THE PROBLEM WAS OPERATIONAL SCALE.

02 // THE INPUT

4,095 CONTACTS ARE USELESS IF YOU CAN'T DECIDE WHO SHOULD RECEIVE WHAT.

RADIO COMMAND converts a public radio directory into a working targeting database. Each record can carry station, contact, genre, location, eligibility, match score, priority tier, contact status, and campaign history.

The database can be searched, filtered, scored, and segmented before a campaign ever sends.

  • Station + contact
  • Genre + location
  • Eligibility + contact status
  • Match score + priority
  • Campaign history

03 // THE SCORING ENGINE

DON'T BLAST 4,000 PEOPLE. DECIDE WHO ACTUALLY FITS.

Every station is not equally relevant to every release. RADIO COMMAND assigns contacts a 0–100 match score and organizes targets into PRIME, A, B, C, or SKIP.

The system decides who belongs in the campaign before the campaign reaches the queue.

100/ PRIMEMATCH → PRIORITIZE → SEGMENT → TRANSMIT

04 // CAMPAIGN CREATION

A RELEASE BECOMES A CAMPAIGN.

Tracks are reusable entities. Title, release, genre, mood, Spotify, Apple Music, YouTube, EPK, and description travel with the track, so the pitch infrastructure does not have to be rebuilt for every release.

  • KILL CONTRACT — TERMS OF SUFFERING
  • REWARD FUNCTION — SINGLE
  • USE THIS SOUND — SINGLE

05 // PERSONALIZATION

ONE CAMPAIGN. THOUSANDS OF INDIVIDUAL MESSAGES.

Eight templates route outreach across Industrial / Metal, Electronic, Alternative, Experimental / Freeform, College Radio, General Broadcast, Personal DJ / Host, and Generic Inbox contexts.

Structured station data, track metadata, and the right template produce outreach personalized with station, contact, location, release, and listening links.

{{station_name}} {{contact_name}} {{city}} {{genre}} {{track}} {{spotify_url}}

06 // THE TRANSMISSION LAYER

THE QUEUE HANDLES THE REPETITION.

Campaign outreach enters a controlled transmission workflow instead of firing as one mass send. Queue processing, daily limits, sender warm-up, status tracking, bounce handling, suppression, unsubscribe handling, and follow-up logic become reusable infrastructure for every future release.

06 // SYSTEM PIPELINE

FROM RELEASE TO MEASUREMENT.

  1. 01DATABASE
  2. 02SCORE
  3. 03SEGMENT
  4. 04PERSONALIZE
  5. 05QUEUE
  6. 06SEND
  7. 07CLASSIFY
  8. 08MEASURE

PRODUCT INTERFACE // FIELD VIEW

THE SOFTWARE PROVES THE SYSTEM.

RADIO COMMAND Target database interface
Target database4,095 radio contacts transformed from a directory into a searchable campaign database.

LIVE SYSTEM // INTERACTIVE DEMO

OPERATE RADIO COMMAND.

OPEN FULL PRODUCT ↗

Use the working product directly inside the studio piece. Campaign activity in this demonstration environment is separate from the production system.

07 // CAMPAIGN CONTROL

EVERY RELEASE GETS ITS OWN DISTRIBUTION OBJECT.

Campaigns maintain their own target population, progress, transmission controls, and performance state: targets, sent, replied, interested, bounced, and unsubscribed.

The first production campaign promotes KILL CONTRACT from TERMS OF SUFFERING.

08 // THE RESPONSE LOOP

SENDING THE EMAIL ISN'T THE END OF THE WORKFLOW.

Inbound responses return to a unified inbox and become structured outcomes instead of disappearing inside email. Positive opportunities move into a submissions workflow.

  • INTERESTED
  • SEND EPK
  • SUBMISSION PORTAL
  • ADDED TO ROTATION
  • PASS
  • WRONG CONTACT
  • UNSUBSCRIBE
  • SAVE SUBMISSION

09 // INTELLIGENCE

EVERY CAMPAIGN MAKES THE NEXT CAMPAIGN SMARTER.

The analytics layer asks which genres respond, which score buckets perform, which markets engage, which campaigns create responses, and which assumptions were wrong.

  • Conversion funnel
  • Replies over time
  • Performance by genre
  • Performance by score bucket
  • Performance by region
  • Campaign performance

10 // LIVE EXPERIMENT

RADIO COMMAND // LIVE

LAST KNOWN DATA
4,095DATABASE
0TRANSMISSIONS
0REPLIES
0POSITIVE
0SUBMISSIONS
0ROTATION ADDS
LIVE CONNECTION UNAVAILABLE // LAST KNOWN DATA // LAST UPDATED 8/25/2026, 10:00:00 PM

This isn't a mockup. These are aggregate operational values from the distribution infrastructure behind NULL PERSONA. Performance remains an active experiment, not a fixed success claim.

11 // ARCHITECTURE

UNDER THE INTERFACE.

React and Tailwind power the mission-control interface. Base44 provides application infrastructure. TypeScript serverless functions handle scoring, campaign generation, queue processing, and workflow logic. Gmail OAuth supports controlled sending, Gemini assists response classification, and scheduled workers operate the queue.

  • React + Tailwind
  • Base44
  • TypeScript serverless functions
  • Entity-based application store
  • Google Gmail API / OAuth
  • Gemini
  • Scheduled workers + queue processing

12 // SYSTEM MAP

ONE OPERATING LOOP.

NEW RELEASE
TRACK LIBRARY
TARGET DATABASE · 4,095
MATCH SCORING · 0–100
CAMPAIGN BUILDER
PERSONALIZATION
SEND QUEUE
GMAIL API
RESPONSE INBOX
AI CLASSIFIER
SUBMISSIONS
ANALYTICS

13 // MY ROLE

DESIGNED AND BUILT END TO END.

I architected and built RADIO COMMAND as part of the larger NULL PERSONA experiment: product architecture, data structure, contact ingestion, scoring, segmentation, tracks, campaigns, templates, personalization, queues, Gmail integration, replies, AI classification, submissions, suppression, analytics, and interface design.

THE SOURCE DIRECTORY WASN'T THE PRODUCT. THE SYSTEM THAT MAKES IT OPERATIONAL IS THE PRODUCT.

14 // WHY I BUILT IT

I DIDN'T WANT TO BUILD AN AI SONG.

I wanted to see how far one person could take an idea when the creative work, software, automation, data, and distribution infrastructure were treated as parts of the same system.

NULL PERSONA became the identity, music, visual system, website, content engine, release infrastructure, radio database, outreach platform, and measurement layer. Music is one output. The larger project is the machine around it.

15 // THE BUSINESS LESSON

AUTOMATION ISN'T THE INTERESTING PART.

Sending thousands of emails automatically is not difficult. Building a system that decides who should receive something, what they should receive, when they should receive it, what happened afterward, and what the system should learn is a much more interesting problem.

DON'T AUTOMATE THE TASK. DESIGN THE SYSTEM AROUND THE OUTCOME.

NULL PERSONA // EXPERIMENT 04

BUILD THE DISTRIBUTION
BEFORE YOU NEED THE AUDIENCE.

4,095 contacts. 26 countries. One reusable system.The experiment is running now.
QUESTIONS / ANSWERS

Frequently asked questions

What is “Null Persona”?

This is an entry in the Work section of Christopher Page Thompson’s workspace.

Where can I find related work?

Return to the Work section to explore related entries and context.