Every social post I write used to start the same way: stare at a blank caption box, burn five minutes, write something mid. Multiply that by every post, every platform, and it's a real tax on anyone who publishes consistently.
I tried the obvious fix — an LLM in the loop. It worked, but every caption cost me tokens, latency, and a bill that scaled with volume. For something as structured as a social caption (hook, body, CTA, hashtags), that felt wrong. So I built a small API that generates captions deterministically — template-and-variant engine, no LLM anywhere near it — and then I wired it into n8n so the whole thing runs hands-off.
The n8n template is free and MIT-licensed. Here's what it does and how to use it.
What the workflow does
Four functional nodes:
- Form trigger — you fill in topic, audience, tone (warm / bold / professional / playful), platform, and how many captions you want (1–10).
- HTTP Request — calls
POST /v1/caption-packon the Caption-Pack API with your API key. - Code node — formats the returned pack into readable text and surfaces the credit balance.
- Form ending — shows your captions on a completion page. Copy, post, done.
Each run costs exactly 1 credit, no matter how many captions you request. Failed calls never cost credits.
Try it in five minutes
- Get a free key — 25 calls, no card: open
https://caption-pack-api.onrender.com/v1/free-trialin your browser. The key is shown once, so save it. - Import the template into n8n: grab
caption-pack-n8n-template.jsonfrom the repo below, then Workflows → ⋯ → Import from File. - Create a Header Auth credential: Name
Authorization, ValueBearerplus your key. Select it in the Call Caption-Pack API node. - Hit Test workflow, fill the form, submit. Captions land on the completion page.
Check your balance anytime with GET /v1/balance and the same header.
Make it yours
This is where it gets fun. Swap the form trigger for:
- A Schedule trigger + Google Sheets — a daily caption pipeline that appends ideas to a sheet while you sleep.
- A Webhook trigger — call it from your own app or AI agent with
{topic, audience, tone, platform, count}.
I built it for my own posting workflow first; the template is just the packaged version.
Why no LLM?
Two reasons: cost and determinism. A caption pack is structured output — I know exactly what shape I want back. A template engine gives me that in under 100ms with zero per-call AI bill, and the output never surprises me. If you're generating captions at volume (agencies, schedulers, agents posting daily), the math gets obvious fast.
Links
- Template repo (MIT): https://github.com/jeshuadomingo-byte/caption-pack-n8n-template
- API docs: https://caption-pack-api.onrender.com/openapi.yaml
- API landing page: https://muse.ai/s/caption-pack-api-xfxt62ya0xcxlxhh
Free 25 credits (no card) → $10 for 500. One Stripe click. No subscription. If the template saves you time, that's the whole pitch.
Happy to answer questions in the comments — especially if you wire it into something I haven't thought of.