Journal

Voice distillation from 12K tweets, stealth hardening, seniority filter

brand-voicepersonalityvoice-profiletwitter

2026-04-12

Signal

Two major threads. First: I started the brand-voice project, parsing a 12,459-tweet X/Twitter archive into a computable voice profile with 8 measured dimensions, building the multi-agent engagement pipeline (3 Sonnet generators plus scoring plus remix), and beginning the scrub pipeline to delete 753 old tweets that do not match current voice. Second: jobs-apply hardening continued on top of the Apr 10-11 desktop push, with Playwright Chromium removed (it was triggering macOS security prompts), a seniority filter added, and the real-time dashboard shipped. Today is the moment personality-as-data stops being a thesis and becomes running code.

Evidence

  • Brand voice: archive parsed: 12,459 tweets spanning 2016 to 2026, filtered to a 1,149-tweet engagement corpus after dropping low-reach posts. Archetype emerges as “The Dry Observer”: deadpan, geography-dense, minimal punctuation.
  • Voice profile distilled: 4 content lanes (Geo/OSINT 45%, Humor 30%, Culture 20%, Tech 5%), median 86 characters, 86.7% no terminal punctuation, 99.6% replies rather than broadcasts. Each lane is versioned and stored as a frame so the profile can be regenerated and diffed.
  • Key insight: sub-50-character tweets get 165 average likes, roughly 5x engagement versus longer tweets. This is the first measured signal I have that brevity is the load-bearing voice feature, not just a style preference.
  • Pipeline v2.1: parse-archive -> corpus -> voice-profile -> 3 parallel Sonnet agents (Sniper/Builder/Strategist) -> 5-dimension scoring -> remix pass -> top 10 selected. The parallel-agent pattern mirrors the same approach used for stella evaluate, which is a nice convergence across projects.
  • Scrub pipeline: 753 tweets queued for deletion from earlier years where the voice did not match current profile. Cleaning the archive makes the profile tighter on the next regen, which is the ratchet move.
  • Playwright removal: the Playwright Chromium install was triggering macOS security prompts on fresh installs and confusing users. Jobs-apply uses real Chrome via CDP, so the Playwright dependency was dead weight anyway. Removing it cut the install friction.
  • Seniority filter: classifier rejects Director, VP, Principal, Head of, and C-level roles before scoring, which stops the pipeline from wasting LLM budget on postings that do not match the target candidate profile.
  • Chrome Keystone suppression: suppressed Chrome’s auto-updater, which was interfering with long-running CDP sessions by force-restarting the browser mid-run.
  • Vault indexer fix: excluded _templates/ from vault-core indexer so template stubs do not pollute the frame count or audit results.

So What

The brand-voice project is the first concrete implementation of the Personality pillar from the moltbook thesis. Instead of hand-crafting a personality prompt, I am importing it from 10 years of real behavioral data. The voice profile is a measured, versioned artifact, not an adjective list: not “be witty” but “86.7% no terminal punctuation, sub-50 chars for maximum engagement, 99.6% replies not broadcasts.” This is exactly what the thesis means by “personality as data, not personality as prompt.” It also means the voice is portable: any agent that wants to post as me can load the profile, score its drafts against the 5 dimensions, and remix until it hits the threshold. The jobs-apply hardening work today is less architecturally interesting but very load-bearing for launch: Playwright removal unblocks a cleaner install, the seniority filter tightens the scoring pipeline, and Chrome Keystone suppression removes a source of mysterious CDP disconnects. Both threads together show the same underlying move: compress the behavior into a profile or filter, then let the profile run the system.

What’s Next

Tomorrow (Apr 13) is the lab consolidation day plus the first real brand-voice posting round. The voice profile is built but nothing has been posted through the pipeline yet. Tomorrow, 8 replies go out via Chrome CDP, generated from the profile distilled today. That is the end-to-end proof: raw archive -> corpus -> profile -> agents -> scored draft -> remix -> real posting. If that works, personality-as-data is shipping.

Log

  • jobs-apply (7 commits): stopped Playwright Chromium install (root cause of macOS security alerts); seniority classification fix (stop applying to Director/VP/Principal); local auth fallback + email pipeline + analytics type cast; Chrome Keystone updater suppressed + job links on kanban cards; real-time dashboard + stealth hardening + UX simplification; root package.json restore + .vercelignore tightened; v0.1.1: tenant isolation + auth browser cleanup + desktop hardening
  • rusty-bloomnet (1 commit): excluded _templates/ dir from vault indexer