---
title: "5. Content Engine"
description: "Draft a post from your notes + auto-generate featured + inline illustrations."
source: "Obsidian Academy"
source_url: https://obsidian-academy.pages.dev/workflows/05-content-engine/
saved: 2026-05-16
tags: [obsidian-academy, saved-from-web, workflows]
---

**TL;DR** — Say "write a blog post about X". Claude searches your vault for related notes, drafts the post, calls nano-banana for a featured image + inline illustrations, saves everything to `80-Content/drafts/`, and optionally generates Twitter/LinkedIn variants. You go from "I should write about this" to "I have a publishable draft with art" in ~5 minutes.

This is the workflow that converts your vault into output. Without it, you're just hoarding notes.

## When to use it

- You've been mulling a topic and want a real draft
- A meeting or a thread you saw sparked an opinion worth sharing
- You need a thumbnail/featured image for something you've already drafted
- Quarterly newsletter time — synthesize a month of notes into a piece

> **Try it now:** `"write a blog post about claude code for solo developers"`
>
> Trigger phrases: *"draft an article on X"*, *"content engine"*, *"make a thread about X"*. Length defaults to medium (~800 words); say "long" or "short" to override.

What happens:

1. **Research** — vault search for relevant notes via `obsidian_simple_search`
2. **Outline** — 5-bullet outline shown for your approval (skip with "just write it")
3. **Draft** — full markdown post saved to `80-Content/drafts/YYYY-MM-DD-[slug].md`
4. **Visuals** — featured image (1200×630) + 2–3 inline illustrations to `80-Content/assets/[slug]/`
5. **Variants** (if requested) — Twitter thread + LinkedIn post as sibling files

## Under the hood

- **Skill location:** `~/.claude/skills/content-engine/SKILL.md`
- **Reads:** vault via search; `90-Templates/blog-post.md`
- **Writes:**
  - `80-Content/drafts/YYYY-MM-DD-[slug].md`
  - `80-Content/assets/[slug]/featured.png` + 2-3 inline images
  - Optional: `[slug]-twitter.md`, `[slug]-linkedin.md`
- **Chains:** calls the [nano-banana](/workflows/08-visual-journal/) skill for image generation

## Watch out for

- **Style drift** — first run, ask Claude to use *your* voice samples. Point it at 2-3 existing drafts in `80-Content/published/` and say "match this voice".
- **AI-tells in the draft** — watch for "in today's fast-paced world", "delve", "tapestry", "moreover" — these are banned in the skill. If you see one, the skill needs a tightening pass.
- **Image cost** — free-tier Gemini gives ~500 images/day. A post with 4 images = trivial. Be aware if you batch 50 posts.
- **Embedded image paths** — drafts use relative paths like `../assets/[slug]/featured.png`. If you publish to a CMS, swap with absolute URLs at publish time.

## Make it yours

- **Pick a default style** — once you settle on "flat illustration, minimalist" or "editorial photo", encode it in the skill so you don't pick every time.
- **Build a CTA library** — keep ready-to-go CTAs in `40-Resources/ctas.md`; have the skill pull one based on the post topic.
- **Sequence with publish:** add a step that opens a Ghost/WordPress draft API call once you mark frontmatter `status: ready`.

## Related workflows

- **[Visual Journal](https://obsidian-academy.pages.dev/workflows/08-visual-journal/)** — Different use of the same nano-banana skill
- **[Research Synthesizer](https://obsidian-academy.pages.dev/workflows/07-research-synthesizer/)** — When you want a literature-review style post
