The 45-Minute Tax I Refused To Keep Paying
How I turn every document into a social media post in my voice, and why I built it into a product
š„ Some of this article is also covered in a video on Exploring ChatGPTās YouTube channel - take a look and subscribe!
You have finished the article. The hard part is done. The thinking, the drafting, the rewriting, the cutting. All of it is behind you. The piece is good, and youāre proud of it. You hit publish.
Then the second job begins. š Because publishing is not shipping. Publishing is putting a piece somewhere people who already know you might read it and people who donāt might find it. Shipping means doing all you can to try and ensure that they do. And this includes engaging on social media platforms, including LinkedIn, X, Bluesky, Substack Notes or anything else you might use ā each with its own register, length limit, audience expectations and sense of what counts as a post worth reading.
So you sit back down. š„± You extract a claim from your article. You frame it for LinkedIn. Then you rewrite it for X because LinkedInās length doesnāt fit and the tone is wrong anyway. Then you do Bluesky, because that audience reads differently again. Youāre tired. š“ The article took hours of your time. This bit, which is supposed to be smooth and efficient, is taking another half an hour, maybe even forty-five minutes if you want it done properly.
Multiply that by the number of pieces you publish in a month. Thatās the tax. Iāve been paying it for years, and Iām not paying it any more.
The lazy way out
There is, of course, an easier route. Paste the article into Claude. Or ChatGPT. Or Gemini. Type: Turn this into a LinkedIn post, then hit Enter.
If youāve ever used AI to write social media messages, youāll know that this works. And letās be honest, the output is fine. But āfineā is exactly the problem. Over time, three things happen, and none of them are recoverable.
First, every post sounds like every other post. Not just yours, everyoneās. Thereās a default model register: smooth, considered, vaguely inspirational. You can spot it from a scroll away. Once you have trained your eye, you cannot un-train it. And neither can your readers.
Second, the model picks average claims. Given a rich article, it will reliably surface the safest, most generic point in it. Your judgement, the why this matters that made the article worth writing in the first place, is precisely the thing the model cannot guess. So the post will often land flat. You might have written something with an edge (or used that as your source material for social media), but the model will invariably file the edge off.
Third, the platforms are catching on. LinkedIn and X have both started demoting content that reads as machine-generated. Some accounts have been demonetised outright. The reason is brutally simple: people donāt engage with this content, and the platforms know.
In the past, you could write your posts by hand and lose the evenings. Or you could dump them into a model and lose your voice. I picked a third option. I built it.
Source to Ship
Source to Ship is the pipeline I now use to write social media posts that genuinely sound like me and talk about the things I want to talk about.
It was built natively on Claude Code, but thereās also a version that will work in Claude projects or any other large language model that accepts file uploads (more on this below).

Here is what it does. You drop a source into a folder. The source can be a transcript, an article draft, a PDF, research notes, a conversation, a slide deck. The pipeline then runs through a number of stages (see the image below):
In Assess, the model reads your source and pulls out the claims itās actually making, the tensions inside it and the questions it leaves open. It does not write anything yet. It surfaces material for you to choose from.
Then it stops. This is the first (human) selection gate. The pipeline will not proceed until you pick the two or three claims you want to talk about, and write a one-line reason for each. The system enforces this, because thatās the whole point.
In Develop, for each claim youāve picked, the pipeline drafts three different angles, each targeting a different reader intent. Persuade is for readers who hold a different view and need to be moved. Substantiate is for readers who are open but sceptical and need to see the claim backed. Apply is for readers who already agree and want to know what to do about it. Each angle is checked against your voice, and if anything has drifted, the system tells you where.
Then the pipeline stops again. This is the second (human) selection gate. You tell it which angles to develop into actual social media messages, which platform each is for, and whether itās a standalone post or a post with a link.
In Ship, the pipeline shapes each piece for the platform youāve chosen, enforcing platform-specific rules (e.g. about length and format). The platform rules are in a plain text file in the pack, which means you can edit them. Want it to write for Threads instead? Add a Threads section to the file. Done.
Total elapsed time: under ten minutes, most of which is you reading drafts and making editorial decisions.
What makes this work reliably is a voice file. The pipeline demands that you fill in templates/writing-voice.md. This includes your register, your sentence rhythm, phrases you avoid and patterns you like to reach for. This is a plain text file, and it takes about thirty minutes to write properly. You write it once, and only tweak it if the messages coming out don't feel like you yet..
If you are technically minded, you can definitely have a go at making this yourself - Leor and I discussed how the pipeline works in depth in our YouTube video, including a demo!
Inside the pack
If youād like to get this without getting your hands dirty, the pack is now on Gumroad. It includes:
The full set of Claude Code skills:
/loop,/assess,/select,/develop,/ship,/libraryThe voice template for you to customise
The platform reference file, customisable per platform
The run log template that records every decision made on every piece
The Python script that converts your source files into clean markdown
A version that works in Claude projects or other LLMs, without having to use a coding environment and prefer a normal chat interface
The list price is $99. Thereās a launch discount running at the moment that takes 50% off. If the discount code is still live, youāll see it applied at checkout.
If youāre wondering whether this is for you, hereās a test: Do you have time to write good (not āfineā) social media messages? If the answer is no, this pipeline will be a trusted partner. In fact, it was built precisely because I appreciate the importance of social media but donāt have the time to write everything from scratch.
Remember that this still requires your editorial judgement. What you are outsourcing is the grunt work, not your unique perspective.
If you have questions before you buy, reply to this post ā I read everything!
Interested in more cool things that consultants and many other professionals can do with AI? Take a look at this page:





