CommunityBildgithub.com

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

Was ist linkedin-media-prep?

linkedin-media-prep is a Claude Code agent skill that convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/linkedin-media-prep

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design-direction, affaan-m/ios-icon-gen · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

LinkedIn Media Prep

Prepare any image or video for LinkedIn with correct dimensions, cropping, and compression.


Image Specs

Use CaseDimensionsRatioNotes
Post (portrait, max feed space)1080 × 13504:5Default choice for photos
Post (landscape)1200 × 6271.91:1Good for banners, screenshots
Post (square)1080 × 10801:1Safe universal choice
Post (4:3)1440 × 10804:3Good for camera-native photos
Profile photo400 × 400 min1:1Recommend 800 × 800
Cover photo1584 × 3964:1
Article featured1200 × 6271.91:1
Max file size8 MBTarget < 1 MB for fast upload
FormatsJPEG, PNG, GIFJPEG preferred for photos

Video Specs

Use CaseDimensionsRatioNotes
Post (square)1080 × 10801:1Safe universal choice
Post (landscape)1920 × 108016:9Standard feed video
Post (vertical)1080 × 19209:16Mobile/Reels-style; pad if source is not 9:16
Max file size5 GBTarget < 200 MB for fast upload
Max duration30 minutes3 seconds minimum
FormatsMP4 (H.264 + AAC)MP4 required for best compatibility
Frame rate30 fpsMatch source or standardise to 30 fps
Pixel formatyuv420pRequired for broad playback support

Image Workflow

1. Inspect source

sips -g pixelWidth -g pixelHeight "<input>"
ls -lh "<input>"

2. Fix EXIF orientation (if needed)

iPhone and mobile photos often store portrait images with an EXIF orientation tag rather than rotated pixels. ImageMagick usually respects this automatically, but if the image appears sideways after conversion you can force it upright before cropping.

magick "<input>" -auto-orient "<input>-upright.png"

Use the upright version as your working copy for cropping.

3. Convert to editable format

If source is HEIC or other non-PNG:

sips -s format png "<input>" --out "<input>.png"

Use the PNG as the working copy for cropping.

4. Crop (iterative with user)

First crop: center, choose dimensions based on target ratio.

For a 4:5 portrait post from a portrait photo:

  • Crop width = full width of image
  • Crop height = width × 5 / 4
  • Y-offset = (original_height − crop_height) / 2

Example for 3024 × 4032 source:

magick "source.png" -crop 3024x3780+0+126 "cropped.png"

Iterative adjustments:

  • "More zoomed in" → reduce crop WxH (e.g. 2000×2500 instead of 3024×3780). Keep same ratio.
  • "Too much space at top" → increase Y-offset (shift crop down).
  • "Too much space at bottom" → decrease Y-offset (shift crop up).
  • "Need wider/narrower" → adjust W and H maintaining ratio.

Crop formula:

magick "source.png" -crop <W>x<H>+<X>+<Y> "cropped.png"
# X = (original_width − W) / 2  (centered)
# Y = adjust based on subject position

5. Resize & compress for LinkedIn

magick "cropped.png" -resize 1080x1350 -quality 85 "<name>-linkedin.jpg"

For profile photos:

magick "cropped.png" -resize 800x800 -quality 85 "<name>-linkedin-profile.jpg"

For cover photos:

magick "cropped.png" -resize 1584x396 -quality 85 "<name>-linkedin-cover.jpg"

For 4:3 posts:

magick "source.png" -resize 1440x1080 -quality 85 "<name>-linkedin-4by3.jpg"

6. Verify output

ls -lh "<output>.jpg"
sips -g pixelWidth -g pixelHeight "<output>.jpg"

Ensure:

  • Dimensions match target
  • File size < 8 MB (preferably < 1 MB)
  • Quality is acceptable

Which video format should I choose?

Source orientationYour goalRecommended target
Portrait (phone video)Maximum mobile feed spaceVertical 1080×1920 (pad with black if source is 3:4 or 4:5)
Portrait (phone video)Safe universal compatibilitySquare 1080×1080 (centre-crop)
Landscape (screen-recording, camera)Standard feed videoLandscape 1920×1080
LandscapeSafe universal compatibilitySquare 1080×1080 (centre-crop)
Not sureSquare 1080×1080

Rule of thumb: Square works everywhere. Vertical gets the most mobile screen real estate but can letterbox on desktop. Landscape is best for demos, interviews, and cinematic content.


Video Workflow

1. Inspect source

ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height,avg_frame_rate,duration,bit_rate \
  -show_entries format=duration,size,bit_rate \
  -of csv=p=0 "<input>"

Also check for rotation metadata:

ffprobe -v error -select_streams v:0 -show_entries stream_side_data=display_matrix \
  -of default=nk=1:nw=1 "<input>"

2. Handle rotation (iPhone / mobile sources)

Mobile videos often store frames in landscape with a rotation tag. Apply transpose in the filter chain before cropping/scaling.

Display MatrixTranspose valueMeaning
-90° (270°)190° clockwise
+90°290° counter-clockwise
180°3180°
No rotationomit

3. Choose target and build filter chain

Square (1080×1080) — centre-crop after rotation:

transpose=1,crop=1080:1080:(in_w-1080)/2:(in_h-1080)/2,format=yuv420p

Landscape (1920×1080) — scale to fit then pad, or centre-crop:

transpose=1,scale=1920:-2,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black,format=yuv420p

Vertical (1080×1920) — scale to width then pad top/bottom:

transpose=1,scale=1080:-2,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black,format=yuv420p

If the source aspect ratio already matches the target, you can omit pad and just scale=1080:1080 or scale=1920:1080.

4. Common one-liner (portrait iPhone → square)

The most frequent request: a portrait iPhone video converted to a LinkedIn-ready square MP4.

ffmpeg -y -i "IMG_xxxx.MOV" \
  -vf "transpose=1,crop=1080:1080:(in_w-1080)/2:(in_h-1080)/2,format=yuv420p" \
  -c:v libx264 -profile:v main -level 4.2 -preset medium -crf 23 -r 30 \
  -c:a aac -b:a 128k -movflags +faststart \
  "output_linkedin_square.mp4"

Swap transpose=1 for the correct rotation value from Step 2, or omit transpose=1, if the source has no rotation metadata.

5. Transcode

ffmpeg -y -i "<input>" \
  -vf "<filter_chain>" \
  -c:v libx264 -profile:v main -level 4.2 -preset medium -crf 23 -r 30 \
  -c:a aac -b:a 128k \
  -movflags +faststart \
  "<output>.mp4"

Parameter notes:

  • -profile:v main -level 4.2 — broad device compatibility
  • -crf 23 — good quality / size balance (lower = higher quality)
  • -r 30 — standardise frame rate
  • -movflags +faststart — moov atom at beginning for web streaming

6. Verify output

ls -lh "<output>.mp4"
ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height,avg_frame_rate,duration,bit_rate \
  -show_entries format=duration,size,bit_rate \
  -of csv=p=0 "<output>.mp4"

Ensure:

  • Dimensions match target
  • File size reasonable for upload (< 200 MB ideally)
  • No rotation metadata remains (players should not rotate it again)

Tools

  • Images: Prefer magick (ImageMagick 7) or convert (ImageMagick 6). Fallback to sips on macOS for basic format conversion. Install via brew install imagemagick.
  • Videos: ffmpeg + ffprobe. Install via brew install ffmpeg.

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/http-error-triage

Run before concluding anything from an HTTP error on a third-party API. Separates a real credential/entitlement problem from a CDN or WAF block, a wrong endpoint, or a client-signature ban. Use whenever an API returns 401/403/402/429 and you are about to say "the key is dead", "credits are exhausted", "the plan lacks access", or "we are rate limited".

getedgehq/monid

>-

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/product-launch-video

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/shadcn-first

>-

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

Verwandte Skills