Not a startup. Not a SaaS. Just a developer building a tool to solve his own problem, documenting the process in public. This page is a build log — no sales pitch, no "limited time offer." Just honest updates on what's working and what's next.
Good LinkedIn posts — with a hook, story, and CTA — take 30-60 minutes. Multiply by 5 days. That's hours I'd rather spend coding.
"What do I even talk about?" is the #1 blocker. Most days I open the composer, stare at it, and close the tab.
ChatGPT posts have that unmistakable robot tone. "In today's fast-paced world..." Nobody reads past that.
I build software. This is a software problem. So I'm building an engine that actually learns how I write — not a template mixer, not a ChatGPT wrapper.
10-20 LinkedIn posts I've written. Real posts, real voice. The engine needs authentic material to learn from.
LLM analyzes sentence structure, vocabulary, hooks, tone, storytelling patterns. Outputs a structured JSON voice fingerprint.
Voice profile + topic + template (story, framework, contrarian, case study). LLM writes in the target voice. 6 content templates.
One command: python batch.py. Generates Mon-Fri posts, each with different template and topic. Auto quality check.
No marketing fluff. Here's exactly what each part does, how it's built, and the current status.
Feeds 10-20 writing samples through a custom prompt chain that analyzes 7 dimensions: sentence structure, vocabulary range, hook patterns, emotional tone, storytelling style, key phrases, and content DNA (topics, opinions, expertise signals).
Outputs structured JSON. Tested with real writing samples — captures ~80% of voice signature. Remaining 20% needs more refinement.
Injects the voice profile into a system prompt alongside a content template. 6 templates: personal story, contrarian take, framework/how-to, case study, data insight, engagement bait. Each with proven LinkedIn structure (hook → body → CTA).
Generates complete posts: headline, body, call-to-action, hashtags, and editor notes. No placeholder text. No generic filler.
CLI tool. Single command generates a full week (Mon-Fri) of posts. Template rotation per day. Topic rotation per post. Built-in quality check catches placeholders, invented numbers, and generic phrases.
python batch.py --client name --topics "pricing, hiring, growth"
Outputs .json (metadata) + .md (readable preview).
Engine runs on my existing LLM proxy infrastructure. Uses streaming API for efficiency. No expensive API keys needed — runs on the same $1/mo proxy I already use for other projects.
Cost per 5-post batch: ~4000 tokens. Cost per month (20 posts): negligible. That's the advantage of building your own infra.
Auto-fetch recent posts from a LinkedIn profile instead of manual copy-paste. Removes onboarding friction. Needs to handle LinkedIn's bot protection.
ETA: 1-2 weeks. Browser automation or API-based approach TBD.
Cron-based weekly generation. Posts generated automatically every Monday, ready for review. Removes the "I forgot to run the script" problem.
ETA: 2-3 weeks. Simple cron + notification system.
Version 1 was a template mixer. Literally random.choice()
from a list of hardcoded phrases with ~25 empty ___ placeholders.
A friend called it "delusional." They were right. Sounded nothing like a real person.
Version 2 (current) uses real LLM voice profiling. The engine analyzes actual writing samples, extracts patterns across 7 dimensions, and uses that fingerprint to guide generation. It's not magic — it captures ~80% of voice signature. But that's enough to produce drafts that need minor editing instead of complete rewrites.
Key lessons from the rebuild:
1. Template-based generation will always sound fake. You need an LLM that actually understands voice, not just fills slots.
2. The prompt is the product. Getting the voice profile right took 6 iterations. The generator prompt took 4. Prompt engineering is real engineering.
3. Your own infra matters. Running on my $1/mo proxy instead of OpenAI API means the unit economics work even at low volume.
No web interface yet. Everything runs from my terminal via CLI commands.
No auto-scraping yet. Posts need to be shared manually (copy-paste from LinkedIn or Google Doc). Fixing this next.
Voice cloning is good (~80%) but not perfect. Deep emotional tone and humor are the hardest to replicate. Working on refinement.
Single-user design right now. Multi-client architecture is on the roadmap but not built yet.
Not selling this yet. I'm building it for myself first. If I get it to a point where it genuinely saves me 5+ hours/week, then I'll think about offering it to others. This page is just me documenting the build.
I build on weekends. These are honest estimates, not promises. Priorities change based on what I learn.
LLM analyzes 10-20 posts → structured voice fingerprint. 7 dimensions. Working and tested with real samples.
Personal story, contrarian take, framework, case study, data insight, engagement bait. Each generates complete LinkedIn posts.
One command → full week of posts. Template rotation. Topic variation. Auto QC.
Migrated from non-streaming API to streaming. Works on my existing $1/mo proxy infrastructure.
Auto-fetch recent posts from any public LinkedIn profile. Removes the copy-paste step. ETA: 1-2 weeks.
Cron-based auto-generation. Every Monday, posts are ready without manual CLI interaction. ETA: 2-3 weeks.
View generated posts, track history, manage voice profiles. Clean, minimal UI. ETA: 3-4 weeks.
The engine learns from post approvals/rejections. Gets better at voice matching with every feedback cycle.
Once the pipeline is fully automated and the voice cloning is reliable, I'll decide if this becomes a product or stays as my personal content engine. No rush.