GenAI Unplugged

GenAI Unplugged

Claude Code Skill - Your Newsletter Cover Images Deserve Better Than Stock Photos

Stop using generic stock photos for your newsletter. This Claude Code skill generates character-consistent cover images in less than a minute for $0.18 each using Gemini API.

Dheeraj Sharma's avatar
Dheeraj Sharma
Mar 13, 2026
∙ Paid
PluggedIn Edition
Claude Skills Vault #1 - PluggedIn Edition

I used to dread the cover image step for my Substack Newsletter Articles.

In the early days of my Substack journey, every Tuesday, I’d finish a draft, feel great about it, then spend 20 minutes hunting for a cover image. Open Unsplash. Search “technology.” Scroll past the same blue-tinted keyboard photos that 400 other newsletters were using that week. Settle for something “close enough.” Upload it knowing it looked exactly like every other AI newsletter.

Then I tried Canva. Better, but now I was spending $15/month plus 20-30 minutes per image tweaking templates that still felt “I made this in Canva without much creativity.”

A reader DM’d me after one article: “Your content is great but the cover images look AI-generic.” That stung because she was right. The images had nothing to do with me or my brand. They were filler.

That’s when I built the Claude Code Skill that embeds in my contentOS pipeline. And I’m about to show you exactly what I made.


👋 Julley, I'm Dheeraj, an AI systems builder.

I build production-grade AI systems at work by day and ship my own products by night, 9 and counting, including SubflowAI and the Content OS Agents Toolkit. This newsletter is the bridge between those two worlds. Every system, every build, documented step by step.


Join 1,800+ builders getting the exact AI setups, prompts, and workflows that actually work in your business.

SUBSCRIBE

One Command. 38 Seconds. Done.

Here’s what my Tuesday looks like now:

38 seconds later:

That’s my brand. My avatar. Consistent across every article. Not a stock photo. Not a Canva template. A professional editorial photograph that looks like I hired a designer, generated in under a minute.


The Gallery: 4 Real Covers From the Last Month

Every one of these was a single command. Here’s what I typed and what came back.

1. “Analyzing content gaps on a holographic dashboard, mountain monastery”

Content Gap Analyzer hero image

Used for: How to Build a Content Gap Analyzer AI Agent. The data panels and analytical pose match the “building a research tool” topic.

2. “Organizing skills, hooks, and agents into a glowing toolkit, clouds below”

Used for: Claude Code Skills, Commands, Hooks & Agents Guide. The organized toolkit panels signal “reference guide.”

3. “Revealing hidden automation costs with holographic invoices and charts”

Used for: What Nobody Tells You About AI Automation Costs. The money symbols and invoice make the cost theme instantly clear.

4. “Examining OpenClaw security shields with honest assessment panels”

Used for: What Is OpenClaw Actually - A Non-Developer’s Honest Assessment. The shield and assessment panels set the “evaluation” tone.


Commercial break: Claude Code Builder cohort

The founding batch of my Claude Code cohort starts in July on Maven. Four weeks, six sessions. Learn to build the AI system with me.

Only 12 Seats. When they’re gone, the founding price ($797) closes and Cohort 2 opens at $1,597.

Use code GENAI20 for 20% off. Expires July 9. Check the Syllabus →


Every single one took the same effort:

Type one sentence, wait 40-60 seconds.

The AI handles the photography styling (85mm lens simulation, shallow depth of field, rule of thirds composition, natural lighting) automatically. I just describe the scene.

And here’s the part that matters most: my avatar is consistent across all of them. Yes, sometimes you’ll need to retry, but I have a success rate of 95%. The same AI monk avatar shows up in every cover. Readers recognize me before they even read the title.


How This Fits Into My Weekly Workflow

I used to lose my publishing momentum right at the finish line. Draft done, feeling great, then... 20 minutes of scrolling Unsplash kills the energy. By the time I found something “good enough,” I’d lost the excitement to hit publish.

Now the cover image is the easiest part of my Tuesday. One sentence, one minute, done. I stay in flow from draft to publish.

The Claude Code skill also handles different aspect ratios.

  • Need a square image for a LinkedIn post? Add --aspect 1:1.

  • Vertical for Instagram? --aspect 9:16.

I generate the Substack cover and a LinkedIn version in the same sitting. Two commands, under 2-3 minutes.


The Numbers: 2 Months of Real Usage

Here’s what the skill has saved me since I started using it (as of February 2026):

  • 35+ hero images generated & published in the last 2 months (old articles too)

  • 6-7 were discarded either wrong avatar or didn’t like them

  • Total time spent: ~15 minutes for legacy batch + individual

  • Total API cost: $7.56 (Gemini API, about average of $0.18 per image)

  • Character consistency: same face across all 35 published images

What I was paying before:

  • Unsplash Pro: free, but 20 minutes per image searching + zero brand consistency

  • Canva Pro: $15/month + 20-30 minutes per image

  • Freelance designer: $5-10 per image (not sustainable for 3 articles/week)

The math:

  • Before: $15/month + 5-6 hours of image work

  • After: $2-4/month + 20 minutes total

  • Savings: ~$180/year and 60+ hours

At $0.15-$0.20 per unique, character-consistent, professional-quality cover image, this is the highest-ROI tool in my content stack.


What’s in this Claude Code Skill Package

This isn’t a tutorial. It’s a finished, tested tool you install and use.

The full Hero Image Generator skill includes:

  • LICENSE - single-user commercial license

  • SKILL.md - The instruction file that makes /hero-image work in Claude Code. You don’t edit this.

  • generate_cover.py - Handles Gemini API calls, prompt wrapping, and image processing. You never touch this.

  • sample-prompts.md - 19 tested prompts so you don’t start from a blank page. Covers business, teaching, personal dev, seasonal topics.

  • Character reference setup guide - How to add YOUR photo so the AI generates you, not a random face

  • Brand customization instructions - Adjust aspect ratios, photography style, defaults. All configurable, no code changes.

Dependencies:

  • Google Gemini API key (free tier available)

  • Python 3.6+ (already on your Mac/Linux)

Install time:

  • Under 2 minutes. Copy one folder, set one environment variable, add your reference photo.


You’re Skipping the Hard Part of Creating Claude Skill

I built this skill over a weekend and refined it across 50+ generated images burning API credits and real money. The prompt engineering & fine tuning alone took 3 hours of testing different reference image approaches and prompt structures.

Getting character consistency right, without the face looking different every time, was the real challenge.

The first time I generated a cover and it actually looked like my brand avatar - same face, same style, right scene. I knew I was never opening Canva again.

The photography styling wrapper (getting that “editorial lifestyle” look automatically instead of AI-generic output) was another 2 hours of iteration.

The difference between “AI generated image” and “professional editorial photograph” is entirely in how the prompt is structured.

That’s all built into the skill so you never have to think about it. Of course you can, and you should, fine tune the prompt to suit your needs. But this Claude Code Skill works right out of the box and delivers polished results.

The skill is ready for your brand to adapt and bring your Substack Newsletter Covers to life.

Every week you wait is another 20-30 minutes per article you’re not getting back.

Get PluggedIn

Get PluggedIn

See what's included →

Every article you publish without this is another 20 minutes lost and another generic cover your readers scroll past.


How to Install Claude Code Skill for Creating Article Cover Images

User's avatar

Continue reading this post for free, courtesy of Dheeraj Sharma.

Or purchase a paid subscription.
© 2026 Dheeraj Sharma · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture