LinkedIn-carrousel
Van artikel naar slides
Een carrousel is een document-upload, geen afbeeldingenpost. Dat ene feit bepaalt het formaat, en het niet weten is waarom de meeste carrousels bijgesneden ogen. Deze skill regelt de structuur, de tekst per slide en de render, met een validatie die je tegenhoudt voordat je iets post dat in de tijdlijn onleesbaar is.
Zet hem in je eigen agent
Kies je client. Het commando staat er klaar voor.
/plugin marketplace add ASNNetworks/floh-skillseenmalig/plugin install linkedin-carousel@floh-skillsTyp deze twee in een Claude Code-sessie. De skill is meteen daarna beschikbaar; herstarten is niet nodig.
Wat je nodig hebt
- Python 3.10 of hoger
- reportlab (pip install reportlab)
- Optioneel een TTF om in te sluiten
Zo ziet het eruit
Een echte sessie, stap voor stap afgespeeld.
De kern
1080 bij 1350, embedded fonts
Vier op vijf pakt de meeste hoogte in de tijdlijn. Een PDF met gelinkte fonts rendert bij LinkedIn als lege blokjes, en in je eigen preview zie je dat niet.
De hook staat op zichzelf
Slide 1 is alles wat de meeste mensen zien. Hij mag niet verwijzen naar iets eerders, want er is niets eerders.
Weigert een volle slide
Meer dan 25 woorden in een body is een harde fout, geen kleinere letter. Een slide die niemand in de tijdlijn kan lezen is erger dan een deck met één slide meer.
Geen ontwerptool nodig
Deck als JSON, render naar PDF. Je past de tekst aan en rendert opnieuw, in plaats van in een ontwerpbestand te gaan schuiven.
Wanneer je hem pakt
Een artikel hergebruiken
Een lang stuk naar acht tot twaalf slides, met per slide één idee in plaats van drie omdat de alinea drie zinnen had.
Een case naar buiten brengen
Probleem, aanpak, uitkomst. De structuur staat vast, dus de tijd gaat naar de tekst.
Een serie in dezelfde stijl
Het thema staat bovenin het deckbestand, dus tien carrousels zien er hetzelfde uit zonder dat je iets kopieert.
Alleen de hook testen
De skill schrijft eerst de outline als tekst. Je keurt de structuur goed voordat er iets gerenderd wordt.
Lees hem voordat je hem draait
Dit is precies wat er in de map komt te staan. Geen verrassingen, geen verborgen stappen.
3 bestanden
---
name: linkedin-carousel
description: Turn an article, a case or a set of notes into a LinkedIn carousel PDF — slide structure, per-slide copy, and a renderer that produces the exact aspect ratio LinkedIn accepts. Use when asked to make a carousel, a slide deck for social, or to repurpose a long piece into slides.
---
# LinkedIn carousel
A carousel is a document upload, not an image post. That single fact decides the format,
and getting it wrong is why most carousels look cropped.
## When to use this
Repurposing an article, case study, lesson or set of notes into a LinkedIn carousel.
Also for the hook-and-structure work before any slides exist.
## The format, which is not negotiable
- **PDF**, uploaded as a document. Not a set of images.
- **1080 x 1350** (4:5 portrait). LinkedIn also accepts 1:1, but 4:5 takes the most
vertical space in the feed, so it is the default.
- **8 to 12 slides.** Under 8 does not justify the swipe; over 12 and the drop-off is
steeper than the reach gain.
- **Fonts embedded.** A PDF with linked fonts renders as fallback boxes on LinkedIn's
server-side thumbnailer, and you will not see it in your own preview.
- **Under 100 MB**, which is never the binding constraint if you are not embedding photos.
## The structure that works
| Slide | Job |
|-------|-----|
| 1 | **Hook.** One claim, large. It has to work as a static thumbnail, because that is all most people see |
| 2 | **Stakes.** Why this costs the reader something today |
| 3-9 | **One idea per slide.** A heading and at most 25 words. If it needs 40, it is two slides |
| 10 | **Recap.** The three things worth remembering |
| 11 | **CTA.** One action, spelled out |
Rules that hold across all of them:
- **One idea per slide.** The most common failure is slide 4 carrying three points because
the source paragraph had three sentences.
- **Slide 1 has no context.** It cannot say "as I mentioned". It is a cold open.
- **Readable at thumbnail size.** Headline at least 48pt at 1080 wide. Hold the slide at
20% zoom; if you cannot read the headline, nobody in the feed can.
- **No paragraph anywhere.** If a slide has a paragraph, it wanted to be an article.
## How to run it
1. **Write the outline first, as text.** Slide number, headline, body. Get the structure
approved before rendering anything. Regenerating a deck because slide 3 was wrong is
ten seconds; rewriting after design is not.
2. **Put it in a JSON deck file:**
```json
{
"theme": { "accent": "#84CC16", "background": "#0B1020", "text": "#F8FAFC" },
"slides": [
{ "kind": "hook", "headline": "Je AI-agent leest je documenten verkeerd",
"sub": "En hij zegt het er niet bij" },
{ "kind": "point", "headline": "03/04/2026",
"body": "3 april of 4 maart. Zonder context is dat een gok, en een gok in je boekhouding." },
{ "kind": "cta", "headline": "Wil je dit goed hebben?",
"body": "Stuur me een bericht.", "handle": "@alisina" }
]
}
```
3. **Render:**
```bash
python3 scripts/render.py deck.json -o carousel.pdf
```
The renderer produces 1080x1350 pages with embedded fonts and reports the page count
and file size so you can check both before uploading.
4. **Check at thumbnail size before you post.** Every time.
## Writing the hook
The hook slide decides everything downstream. Four openings that work, in rough order of
reliability:
1. **A cost.** "Deze fout kost je een kwartaal aan verkeerde cijfers."
2. **A contradiction.** "Snellere agents maken je trager."
3. **A concrete number.** "Zes van de tien facturen die ik zag hadden een verkeerde datum."
4. **A named mistake.** "De fout die iedereen maakt met SKILL.md."
Openings that do not work: a question the reader can answer with "no", a definition, and
anything beginning "In het huidige digitale landschap".
## The accompanying post
The carousel does not stand alone. The post text above it carries the hook again in
plain words and ends with one question. Three to five lines. The first two lines are what
shows before "see more", so the hook has to land there.
## Files
- `scripts/render.py` — deck JSON to a 1080x1350 PDF with embedded fonts. No design tool
needed.
- `references/deck-schema.md` — every slide kind and its fields, with layout notes.
Wat er veranderd is
- v1.0.0huidig
- Eerste versie: zeven slidesoorten, thema, en validatie voor het renderen.
- render.py levert 1080 bij 1350 met paginanummers en handle.
- Vier hook-vormen die werken, met de vormen die niet werken erbij.
Werkt hij voor je?
Over LinkedIn-carrousel
Wat mensen vragen voordat ze hem installeren.
Combineert goed met
Zo een, maar dan voor jouw werk?
Elke skill hier komt uit werk dat ik echt deed. Zit er iets in jouw proces dat je telkens opnieuw uitlegt aan een agent, dan is dat precies een skill.