LinkedIn Image Skill — Advisory OS
Purpose
Create scroll-stopping LinkedIn images for Advisory OS campaigns. One image format. Repeatable. Readable at mobile feed size. Brand-consistent across campaigns.
The Image's One Job
Stop the scroll. That's it.
The image does NOT deliver the concept. The image does NOT summarize the post. The image does NOT replicate what the post says. It makes someone stop scrolling and read the text below.
The 2-Second Test
Would someone scrolling their phone at 6am — who has never heard of you, has not read the post, and has zero context — understand this image in 2 seconds?
If no → simplify until the answer is yes.
Three Layers of Depth (Never Duplicate)
| Layer | Time | Job |
|---|---|---|
| Image | 2 seconds | Stop the scroll. Create curiosity or tension. |
| Post | 60 seconds | Deliver the insight, proof, framework. |
| Article | 5 minutes | Full interactive experience. |
If the image tries to do the post's job, it fails at its own. If the post is redundant with the image, the reader stops early.
The Format: Quote Card
Every LinkedIn image uses the same structure:
[Campaign Label — top center, small tracked uppercase]
[Context Line — optional, one line that frames the quotes]
[Primary Text — center, large, ivory]
[Gold Divider — horizontal line]
[Secondary Text — center, medium, gold]
[Logo — bottom center]
This is the only approved format. No data visualizations. No charts. No diagrams. No infographics. No multi-element layouts. Quote cards only.
What Goes in the Two Text Slots
The primary and secondary text create tension. Together they form an incomplete thought the reader must read the post to resolve.
Patterns That Work
Recognition + Reframe. Primary asks or states something the reader recognizes. Secondary reframes it in a way that challenges their assumption.
Example: "Do you know what your clients actually value?" / "You rank by effort. They rank by experience."
Quote + Score. Primary is something a prospect or client says. Secondary reveals what it actually means.
Example: "This is exactly what we need." / "Scored a 2."
Inversion. Two parallel quotes or statements that contradict each other. The contradiction is the tension.
Example: "This is exactly what we need." (Scored a 2.) / "I'm skeptical, but the problem is real." (Scored a 5.)
Patterns That Fail
Entire post compressed into an image. Too many elements. Nothing dominates. Unreadable at feed size.
Novel frameworks as visuals. If the concept requires the post to make sense, it can't carry the image. 80/20 works because everyone knows it. "The Politeness Premium" as a visual concept does not — use it as the campaign label instead.
Data visualizations. Crossing lines, ranked lists, tables, charts. These require context the viewer doesn't have. They look like spaghetti or spreadsheets.
Numbers without context. Just "6" and "1" with labels. Too abstract without the post.
When to Add a Context Line
If the primary and secondary text create tension ON THEIR OWN (the reader understands what they're looking at without explanation), no context line needed.
If the quotes need framing to make sense (the reader would think "what does that mean?"), add ONE line between the campaign label and the primary text. This line sets the scene in under 10 words.
Example: "Two things you hear on every triage call." — now the reader knows the quotes are from prospect conversations, and the scores land as the surprise.
The context line is NOT a subtitle. NOT an explanation. NOT a second campaign label. It's the minimum viable frame that makes the quotes land cold.
Visual Brand Specs
These are fixed. Do not deviate.
| Element | Spec |
|---|---|
| Canvas | 1200x1200px (square) |
| Background | #0a0a0a (near-black) |
| Primary text | #f8f7f4 (ivory), Cormorant Garamond serif |
| Primary size | 108px minimum at 1200px canvas. Err larger. |
| Secondary text | #b79d64 (gold), Cormorant Garamond serif |
| Secondary size | 68px minimum at 1200px canvas |
| Context line | Cormorant Garamond, ~36px, rgba(248,247,244,0.4) |
| Divider | Gold line, rgba(183,157,100,0.5), 100px wide, 2px tall |
| Campaign label | Inter sans-serif, 16px, #6a6a6a, uppercase, letter-spacing 0.3em, top center |
| Logo | "Advisory OS", Cormorant Garamond, 24px, #4a4a4a, bottom center |
| Score/verdict text | Cormorant Garamond, 48px, rgba of the section color at 0.4-0.5 |
Colors Used — Complete List
- #0a0a0a — background
- #f8f7f4 — ivory (primary text)
- #b79d64 — gold (secondary text, divider)
- #6a6a6a — gray (labels)
- #4a4a4a — dark gray (logo)
- Opacity variants of ivory and gold for hierarchy
No red. No green. No other colors. Two-color system only (ivory + gold on black).
Mobile Readability Rule
LinkedIn renders feed images at roughly 400-500px on mobile. Every font size divides by ~2.5x.
| Canvas size | Mobile render | Readable? |
|---|---|---|
| 108px | ~43px | Yes |
| 68px | ~27px | Yes |
| 48px | ~19px | Marginal |
| 36px | ~14px | Barely (context line only) |
| 24px | ~10px | No (logo only — fine, it's branding) |
| 16px | ~6px | No (label only — fine, it's subtle) |
If content text renders below ~19px on mobile, it's too small to carry meaning. Only labels, logos, and context lines can be that small.
Build Process
- Identify the campaign name (becomes the label)
- Identify the tension point from the post — the single moment of inversion, surprise, or reframe
- Write two text elements that capture that tension
- Test: does a stranger understand these two elements with zero context?
- If no → add a context line (one line, under 10 words)
- If still no → choose different text elements. The tension point may not be visual.
- Build the HTML using the specs above
- Open in browser at 100% and at 40% zoom (simulates mobile)
- At 40%: can you read both text elements? Does the tension land?
- Screenshot the card only (gray body is for cropping)
Common Mistakes
| Mistake | Why It Happens | Fix |
|---|---|---|
| Putting the entire post in the image | Reacting to "needs more context" feedback | The image needs the tension POINT, not the full argument |
| Multiple opacity levels creating "gray soup" | Trying to create hierarchy with too many shades | Two colors max. Hierarchy through size, not opacity. |
| Text too small | Trying to fit too many elements | Fewer elements, larger text. If it doesn't fit at 108px+, you have too much. |
| Data visualization | Thinking "this would look cool" | Quote cards only. The concept is earned by the post, not shown in the image. |
| Redundant with the post | Image summarizes the post's argument | Image creates the question. Post delivers the answer. |
| No context line when needed | Two quotes that don't make sense cold | Add one framing line. Under 10 words. |
File Delivery
- HTML file with gray (#333) body background for easy cropping
- Card is a fixed-size div (1200x1200)
- Fonts loaded from Google Fonts
- Open in browser → screenshot the card → crop to edges
- Save as PNG for LinkedIn upload