# 45 Minutes of Prose: How Yuri Kruman Cut Newsletter Cost Without Ghostwriting

Yuri Kruman built an automated pipeline for his newsletter The Leverage Brief after watching it die at issue 9. His first 6 issues took 4-6 hours each manually. By issue 7 his brain priced the next edition at "skip this week." He refused to hire a ghostwriter because the voice is the product. The system uses Claude as an editor to pick an anchor story plus 3 satellites, but Kruman writes all prose himself in about 45 minutes. A voice-lint hard-fails on em dashes, Oxford commas and 18 banned AI phrases before and after generation.

| | |
|---|---|
| **Who** | Yuri Kruman, Author of The Leverage Brief, writing on portlev.com |
| **Problem** | The marginal cost of issue 7 kills expert newsletters; ~85% of his time was source gathering and reformatting, not writing |
| **Stack** | Node, Claude API, voice-rules.js, beehiiv API, LinkedIn API, Buffer, Plausible |
| **Confidence** | Medium (first-person; self-reported figures) |
| **Last verified** | 2026-11-06 |

## The problem

Kruman shipped the first 6 issues of The Leverage Brief manually at 4-6 hours each. By issue 7 his brain priced the next edition at "skip this week." By issue 9 the newsletter was dead. He had seen this pattern in 30+ executive newsletters he subscribed to. About 85% of his time was source gathering and reformatting, not writing. He had 3 places to syndicate each issue. He says most expert newsletters die around 6-9 issues.

He refused a ghostwriter. Hand the voice to someone else and within four issues subscribers can tell. Voice is what makes a newsletter compound; ghosted newsletters peak fast and decay faster.

## The blueprint (as he describes it)

1. **Single inbox folder.** Everything goes into `newsletter-os/inbox/` with frontmatter (source, date, weight, tags, hook). The pipeline reads inbox once per issue.

2. **Voice-lint runs three times.** The lint runs before Claude generates, after Claude generates, and before publish. Hard fails: em dash (U+2014), Oxford comma pattern, and 18 banned AI phrases (delve, tapestry, in today's landscape leverage synergies best-in-class and 13 more). On lint fail, regenerate once with violated rule names quoted back. On second fail, halt and surface. Two-strike rule keeps cost bounded.

3. **Editor picks structure, not prose.** Claude Sonnet receives the inbox files and picks: one anchor story (weighted toward weight ≥ 7 and themes that performed in the last 4 issues), 3 satellites with distinct angles, and 1 question of the week. Output is JSON only. The editor's job is NOT to write the issue.

4. **He writes prose Sunday night.** "I sit down for 45 minutes Sunday night and write the prose."

5. **Composer renders four shapes.** From his prose plus the editor's JSON outline: beehiiv HTML (~1,400 words), LinkedIn long-form (~600 words, anchor only), Substack mirror (full issue), and 5 tweets (1 anchor, 3 satellites, 1 CTA). Each render passes the voice-lint independently.

6. **Sunday 21:00 IDT pipeline draft.** He gets a single email with one link approve and publish One click schedules all four destinations.

7. **Tuesday publish cadence.** beehiiv fires Tuesday 06:00 ET. LinkedIn cron fires Tuesday 06:30 ET (their API does not schedule). Substack draft via Playwright script, one-click publish from phone. Buffer queues 5 tweets spaced Tuesday through Friday.

8. **Friday-Saturday dead by design.** The pipeline does not run. He calls this Shabbat-safe

9. **Stats feedback loop.** Wednesday the pipeline pulls beehiiv open and click rates, LinkedIn impressions, tweet engagement and Plausible page views into stats.json. The editor prompt reads the last 4 issues' performance.

## Stated results

- Build time: two weeks (one for the pipeline, one for voice-lint and syndication).
- Human edit time per issue: listed as "0 m" in the source header metrics.
- Syndication destinations: 4 (beehiiv, LinkedIn, Substack, Buffer/tweets).
- Substack mirror brought ~3% of new subs.
- LinkedIn brought 60% of new subs.
- First three issues had em dashes in production because the editor shipped before the lint.

## Caveats

- Self-reported metrics on his own company blog (PortLev / Portfolio Leverage Co.). The post links to a cohort application and starter prompts, selling adjacent services.
- The 30+ executive newsletters and 6-9 issue death pattern are his observations with no external source.
- No subscriber count, open rate or revenue figures stated.
- His earlier Podcast OS piece was rejected for this teardown series (Castmagic-replacement pitch); this Newsletter OS post is a different system.
- X: @yurikruman (verified 2026-11-06). LinkedIn: /in/yurikruman (verified 2026-11-06).

## FAQ

### What does Claude actually do in this system?

Claude Sonnet acts as an editor. It picks the anchor story, 3 satellites and 1 question of the week from the inbox files, then returns JSON. It does not write prose.

### Why does the voice-lint run three times?

Kruman says the lint is what makes "automated" compatible with "still sounds like me." Running it before generation constrains the prompt, after generation catches violations, and before publish is a final gate.

### Which syndication channel performed best?

LinkedIn brought 60% of new subscribers. Substack brought about 3%. He says he would kill Substack and use that day on LinkedIn comment outreach instead.

### How long does each issue take him now?

He writes prose in about 45 minutes Sunday night, then one-click approves Monday. The pipeline handles the rest.

## Sources

- https://portlev.com/build/how-i-built-newsletter-os (primary: first-person build write-up by Yuri Kruman on PortLev)

---
*Want agents like these working your distribution? [Get It Built](/get-it-built). Get new teardowns weekly: [subscribe](/subscribe) (double opt-in).*