[ PROFILE // VOL. 01 ]

Chris Schofield

Systems Architect & Second Brain Engineer

I build high-throughput pipeline architectures, custom API integrations, and **Obsidian-grounded Second Brain databases**. I engineer agentic workflows that automate operations and accelerate delivery across any industry.

Chris Schofield - Founder Photograph
FOUNDER // BUILDER
syslog://session-init
[Datasink CLI]:v1.2.0 (Stable)
[SpotCheck API]:200 OK
[TAP Engine]:Active (Liberty V2)
[Finisher Chain]:Float64 Pure
Available for Select Work
[ RUNNING SYSTEMS // VOL. 01 ]

Production Software & Tooling

Curated SaaS products, list engines, and developer-labs repositories. Toggle the **"Real Visuals"** tab on any card to view actual workspace screenshots and layouts.

totalaudiopromo.com
Total Audio Promo dashboard screenshot

Total Audio Promo (TAP)

Active Campaign Work
flagship saas

Where Music PR Actually Happens.

Most music PR agencies run their business across seven disconnected tabs: spreadsheets, email clients, trackers, and document folders. TAP replaces this chaos with a clean workspace built around relationships. It tracks pitches, attributes radio plays automatically, and generates client-facing web portals with a single click.

Next.jsReactTypeScriptTailwind CSSSupabaseStripeResend
totalaud.io
totalaud.io waitlist onboarding screenshot

totalaud.io

Soft-Live Waitlist
flagship saas

The label workspace pluggers want to receive briefs from (Waiting-list landing page).

totalaud.io provides independent record labels with a dedicated handoff surface. Before your campaign goes live, compile a clean, structured brief that validates formats, bundles metadata, and drafts promotional angles. Currently active as a waitlist landing page to capture record label outreach leads.

Next.jsTypeScriptTailwind CSSSupabaseStripe
spotcheck.cc
SpotCheck curator validation screenshot

SpotCheck

Active Campaign Work
micro saas

Validate Spotify playlists before you pay. Spot bots, check curators.

Paying curators to include your tracks on their playlists is a gamble. SpotCheck analyzes playlist growth metrics and flags bot risks and inorganic spikes. Available as a Chrome extension and a batch-upload dashboard.

ReactChrome Extension APINext.jsStripeSpotify API
newsjack.cc
Newsjack curation feed screenshot

Newsjack

Self-Running Daemon
internal tool

AI-Powered Newsjacking for Music PR.

Keeping up with music trade papers takes hours of daily reading. Newsjack tracks trade feeds (MBW, Billboard, Music Week) around the clock, uses AI to grade the relevance of breaking news, and drafts content ideas in your voice. Built to ensure your agency is first to comment on industry trends.

Next.jsTurbo MonorepoClaude APINotion APIRSS Parser
sadact mild peril EP artwork
mild peril ep

sadact.uk

Active Campaign Work
developer labs

Release portal & digital catalog for sadact music.

The official catalog site for the sadact music project. Built to load fast, it caches Spotify metadata dynamically and provides direct CTAs to Bandcamp, SoundCloud, and major streaming endpoints.

Next.jsTypeScriptTailwind CSSSpotify APIVercel
bash // datasink-scrub
   ___ (_)__  / /__
  (_-</ / _ \/  '_/
 /___/_/_//_/_/\_\
v1.2.0 // NPM: datasink
DNS SECURE: YES
$ sink wash list.csv
[SCRUB] bbc.com ➔ bbc.co.uk[TYPO_FIX]
[RINSE] "Chris S" / "Chris Schofield"[MERGED_0.94]
[SOAK] enriched 42 contacts via Anthropic[ENRICHED]
MX check: 100% resolvescrubbed.csv [SAVED]

Datasink (sink-cli)

Active Campaign Work
internal tool

Data hygiene for music PR. Scrub, rinse, and soak contact lists.

PR contact spreadsheets easily rot with bad email syntax, typos, and duplicate rows. Datasink cleans up these contact sheets: corrects UK-specific domain typos (like bbc.com -> bbc.co.uk), strips duplicates, and uses AI site scraping to find submission guidelines and outlet contacts.

Node.jsTypeScriptFirecrawl APIAnthropic SDK
▶ audx last.audx▶ 132.0 bpm 4/4 48k cpu 12% bar 002:03
CH · NAME LVL PEAK GAIN M SAMPLE / DSL
01 ▮ kick ████████████░░░░░░░░░░░░ -4.2dB +0.00 kick 4/4
02 ▮ snare ████████░░░░░░░░░░░░░░░░ -11.0dB +0.00 snare 2/8
03 ▮ hihat ████████████████░░░░░░░░ -6.5dB -2.50 hh 16x8 | swing 50%
STEP:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
kick█ · · · █ · · · █ · · · █ · · ·
snar· · · · █ · · · · · · · █ · · ·

audx

Active Campaign Work
developer labs

A terminal-native digital audio workstation.

A minimalist digital audio workstation designed to run entirely in the terminal. Created to bypass complex DAWs, it features a clean pattern DSL, 16-channel audio mixer, sample indexer, and real-time audio thread rendering.

PythonTextual (TUI)FastAPIuvRtAudio
PODFLOW SYSTEM // digest-daemonACTIVE
    ___  ___  ___/ / _/ /__ _    __
   / _ \/ _ \/ _  / _/ / _ \ |/|/ /
  / .__/\___/\_,_/_//_/\___/__,__/
 /_/
$ podflow digest --max-episodes 3
[22:42:00] SQLITE: Reading Apple Podcasts library...
[22:42:01] BATCH: Found 3 new episodes to process
[22:42:03] LLM: Summarising "AI Agents in Production" (score: 94)
[22:42:05] OUTPUT: Written 3 new digests to podflow-digest.md
github.com/totalaudiopromo/podflow

podflow

Active Campaign Work
developer labs

Automated podcast digest and transcript CLI & web viewer.

A local-first CLI tool and web frontend that parses your podcast subscriptions, transcribes episode audio streams using Whisper, and leverages Claude to compile guests, key topics, and timeline digests into clean markdown summaries.

Node.jsViteReactWhisper APIMarkdown
FINISHER DSP ENGINEPROFILE: UKG_GOLD
Spectral Match:97.8% (Gold Align)
LUFS: -14.2 (Target)Peak: -1.0 dBFS

sadact finisher

Active Campaign Work
developer labs

DSP mastering engine for electronic and UK garage audio.

A command-line mastering engine tuned specifically for house and UK Garage. It runs track audio through a high-precision digital signal processing chain, separating stems and matching spectral curves against custom golden-master profiles.

PythonFastAPIDemucsnumpy/scipyuv
[ CAMPAIGN FLOWS // VOL. 02 ]

Dogfooding on sadact

How Chris coordinates his custom audio tools, masters tracks against golden profiles, validates outreach contacts, and stages outreach campaigns.

01

Composition & Pattern Sequence

Chris composes and sequences track structures locally using custom command patterns in audx, bypassing complex graphical DAWs.

[audx_daemon]audx render-project project.audx --stems --output ./renders/
10:15:02
02

Float64 DSP & Profile Matching

Rendered stems pass into the finisher engine. The track is dynamically compressed and spectrally matched against custom UK Garage master charts.

[sadact_finisher]finisher process ./renders/stem_mix.wav --profile ukg --loudness streaming
10:15:30
03

Contact Hygiene & Typo Correction

The campaign mailing sheet runs through Datasink to remove invalid MX domains, correct common typos, and collapse Jaro-Winkler duplicate names.

[datasink_scrub]sink wash ./contacts/campaign_list.csv --provider anthropic
10:16:05
04

Personalized Pitch Generation

TAP's pitching module scans contact relationship warmth, notes target formats, and drafts three distinct email copy variants.

[tap_pitcher]tap-mcp generate-pitch --artist sadact --contacts ./contacts_clean.csv
10:16:15
05

Staged Drafts Review & Release

Generated drafts are pushed into a labeled Gmail inbox. Chris reviews, tweaks the phrasing, and authorizes the sends.

[gmail_mcp]gmail-mcp stage-drafts --label 'TAP: sadact Outreach' --verify-preflight
10:16:22
PIPELINE RUN REPORT
// Observer Environment
VARVALUE
Pipelinesadact Release & Mastering Loop
Steps5 loaded
Contextsadact Release
// Console summary

Release pipeline completed. 1 master rendered (Float64 UKG profile), 42 contacts scrubbed, 42 pitch drafts staged in Gmail queue. System state: STAGED_APPROVALS_AWAITING_USER.

Observer check: SUCCESS (code 200)
[ ARCHITECTURE // VOL. 04 ]

Agentic Infrastructures & Second Brains

I build contextual agent systems that generalize to any business pipeline. By mapping internal knowledge vaults directly to custom coding environments and LLMs, we create self-contained operating loops.

Obsidian Second Brain Context Grounding Loop

[ 01 // OBSIDIAN VAULT ]Markdown Notes & Wikisgit-sync (SSH publickey)GIT PULL[ 02 // VECTOR RAG ]Heuristics & Prompts Extractorclaude-context-generatorFEED LLM[ 03 // CLAUDE / WORKSPACE ]Execution Engine (Claude Code / MCP)Outcome: Staged SaaS Campaigns / Builds

Obsidian 'Second Brain' Grounding

Operational Core

My personal knowledge graph is compiled inside an Obsidian vault. It is git-synchronized and automatically indexed, allowing Claude to read structured markdown logs, design heuristics, and format rules to ground prompts in deep context.

Specs:
sync_Plugin:Obsidian Git (Auto-Push/Pull)
context_Format:Markdown Vault wikilinks
grounding_Role:LLM contextual injection (RAG / Vault nodes)
{
  "obsidian_sync": {
    "vault_path": "~/documents/personal_wiki",
    "sync_interval_mins": 15,
    "ssh_key": "id_ed25519_obsidian"
  }
}

Claude Code & MCP Integrations

Active Environment

My local command-line terminal operations. Connected to Model Context Protocol (MCP) servers that allow Claude to read local databases, coordinate project files, and write code scripts for any client vertical.

Specs:
cli_Environment:Claude Code / Claude CLI
connected_Tools:SQLite DB, local file editor, script runner
gmail_Interface:mcp-gmail-stage (staged compose queues)
{
  "mcp_config": {
    "servers": {
      "filesystem": {
        "allowed_paths": [
          "./src",
          "./docs"
        ]
      },
      "gmail-stage": {
        "port": 3009,
        "staged_label": "Drafts"
      }
    }
  }
}

Generalizable Automation Pipelines

Flexible Architecture

These systems are built to fit any operational domain (SaaS, media, e-commerce). By combining cron checks, LLM relevance filters, and structured schema validations, we turn arbitrary web feeds or APIs into structured database entries.

Specs:
cron_Daemon:24/7 VPS check loop (Node/Python)
llm_Classifier:Claude-3-Haiku relevance threshold checks
notifications:Slack webhook status alerts & Notion triggers
{
  "general_pipeline": {
    "input_type": "any_rss_or_api",
    "relevance_cutoff": 85,
    "max_monthly_tokens": 2000000
  }
}
[ OPEN SOURCE SHELF // VOL. 05 ]

Solopreneur Automation Kit

Production scripts I write to orchestrate my daily backups, guard my coding stamina, and sync environment states. Copy, customize, and run them locally.

session-time-guard.jsjavascript

A terminal monitor that tracks development session length on your active Git branch, issues break alerts, and logs focus metrics directly to a local CSV file.

#!/usr/bin/env node
/**
 * Session Time Guard - Dev Stamina Monitor
 * Tracks active development sessions and logs focus milestones.
 */
import fs from 'fs';
import path from 'path';
import { execSync } from 'child_process';

const LOG_FILE = path.join(process.env.HOME, '.solopreneur', 'focus-sessions.csv');
const MAX_DURATION_MINUTES = 120;
const WARNING_MINUTES = 90;

function getCurrentBranch() {
  try {
    return execSync('git rev-parse --abbrev-ref HEAD', {
      encoding: 'utf-8'
    }).trim();
  } catch {
    return 'detached';
  }
}

export function startSession(task) {
  const session = {
    startTime: new Date().toISOString(),
    task: task || 'General Refactoring',
    branch: getCurrentBranch()
  };
  fs.writeFileSync(
    path.join(process.env.HOME, '.solopreneur', 'current-session.json'),
    JSON.stringify(session, null, 2)
  );
  console.log(`[GUARD] Started focus session on branch: ${session.branch}`);
}

export function checkStamina(session) {
  const elapsed = (Date.now() - new Date(session.startTime).getTime()) / 60000;
  if (elapsed >= MAX_DURATION_MINUTES) {
    console.log(`[ALERT] Session exceeded ${MAX_DURATION_MINUTES}m! Step away from the monitor.`);
  } else if (elapsed >= WARNING_MINUTES) {
    console.log(`[WARNING] Stamina threshold met (${WARNING_MINUTES}m). Consider taking a 10m break.`);
  }
}
Copy file contents directly to use locallyReady to use
[ SERVICES // VOL. 03 ]

Done-With-You Workflow Advisory

Practical workflow automation built by a working promoter with 4 years of radio experience. We work directly with your agency to harden your operations, plug in APIs, and free up campaign hours.

Blueprint1 week turnaround
£500one-off fee

We audit your manual systems and map exactly what to automate, where to keep humans, and what to drop.

  • 60-minute discovery session
  • Complete current/future workflow maps
  • Automation matrix & priority rankings
  • Estimated time & cost savings projections
  • Detailed software/stack recommendations
Book Discovery Call ➔
Most Popular
Build2–6 weeks delivery
£2,000–5,000project rate

We construct and configure the automated campaigns pipeline within your tools.

  • Everything included in Blueprint
  • Custom campaign automation logic
  • TAP CRM workspace configured
  • Outreach contacts imported and enriched
  • Tone and voice profiles matched to your copy
  • System documentation & handbook
Book Discovery Call ➔
OpsOngoing maintenance
£1,000–2,000/month retainer

We monitor and refine your AI workflows, prompts, and APIs as your agency evolves.

  • Monthly runs health check & reporting
  • Prompt engineering adjustments
  • Outreach list maintenance & imports
  • Priority engineering support
  • Quarterly systems strategy review
Book Discovery Call ➔

Systems Engineering & Setup Projects

Done-with-you setups to install, secure, and customize developer tooling and agent frameworks in your local or cloud setup.

Claude Code Setup

£1,500–3,000 project flat rate

Claude Code configured for your project workflow — custom coding skills, pre-commit hooks, and MCP servers (Gmail, Monday, SQL) configured for your workspace.

Inquire for Setup ➔

OpenClaw Setup

£2,000–5,000 project flat rate

Your own dedicated AI agent running locally or on a private VPS. Hardened for safety (Tailscale), integrated with Telegram/Slack/WhatsApp, and structured with memory.

Inquire for Setup ➔

Hermes Setup

£1,200–2,500 project flat rate

A lightweight, always-on helper agent watching your inbox, trained on your historical copy to write and queue media pitches.

Inquire for Setup ➔