LinkedIn
Skill for publishing to LinkedIn through the LinkedIn integration exposed by the Hyper MCP.
Out of scope — defer to other skills
| Request | Send them to |
|---|
| Instagram post / Reel / Story | |
| TikTok organic posting | |
| TikTok ad campaign | |
| Meta (Facebook / Instagram) ads | |
| Google Ads campaign | |
| Amazon Sponsored Products campaign | |
Requirements
- Hyper MCP installed and connected. https://app.hyperfx.ai/mcp
- LinkedIn integration connected at https://app.hyperfx.ai/integrations.
- For company-page posts, the connected member account must have permission to post for that organization.
If
linkedin_create_text_post
is not in the tool list, stop and tell the user to enable Hyper MCP and connect LinkedIn.
Tool surface
| Tool | Purpose |
|---|
linkedin_create_text_post
| Standard member or organization text post; also article / link posts via the article fields. |
linkedin_create_organization_post
| Post explicitly as a company page (when you already know ). |
linkedin_create_document_post
| PDF / document post — LinkedIn renders pages as a swipeable document. |
linkedin_create_carousel_from_text
| AI text-to-carousel pipeline — generates slides + assembles a PDF + publishes as a document post. |
Posting Rules
- Use
linkedin_create_text_post
for standard member or organization posts.
- Use
linkedin_create_organization_post
when the user explicitly wants to post as a company page and you already know the .
- Use
linkedin_create_document_post
for PDF / document uploads. LinkedIn renders PDF pages as a swipeable document post.
- Use
linkedin_create_carousel_from_text
when the user wants a text-to-carousel workflow driven by AI-generated slides.
Article / Link Posts
Do not rely on LinkedIn to scrape Open Graph metadata for API-created posts.
For reliable article posts:
- Provide .
- Prefer explicit , , and .
- If those fields are omitted, the backend may derive them from the shared page metadata, but explicit values are still more reliable.
Use this shape when editing or preparing a LinkedIn article post:
python
linkedin_create_text_post(
text="Caption text",
article_url="https://example.com/article",
article_title="Explicit preview title",
article_description="Explicit preview description",
thumbnail_url="https://example.com/thumbnail.jpg",
organization_id="123456789", # optional
)
Document and Carousel Posts
LinkedIn carousels are implemented as document posts backed by a PDF.
Native PDF flow
Use
linkedin_create_document_post
when you already have a PDF URL or stored file ID:
python
linkedin_create_document_post(
text="Caption text",
title="Deck title",
document_url="https://example.com/deck.pdf",
organization_id="123456789", # optional
)
Text-to-carousel flow
Use
linkedin_create_carousel_from_text
when the user wants the system to build the carousel from a block of source text:
python
linkedin_create_carousel_from_text(
text_content="Source content for the slides",
title="Carousel title",
caption="LinkedIn caption",
num_slides=4,
style="professional",
color_scheme="blue",
organization_id="123456789", # optional
)
The current implementation:
- Parses the source text into slide content.
- Generates a single grid image with an image model.
- Splits the grid into individual slide images.
- Assembles a PDF.
- Publishes the PDF as a LinkedIn document post.
- Returns the live post URL — present this to the user to confirm the carousel is live.
Supported slide counts are
,
, and
.
Manual Slide Editing
The current LinkedIn carousel pipeline is PDF-based. It does not provide a first-class live canvas editing loop before publish.
If a user wants manual refinement:
- Generate the carousel assets first.
- Review or edit the generated slide images / PDF externally.
- Post the final PDF with
linkedin_create_document_post
.
Do not promise an in-product editable canvas workflow unless the tool is actually available in the current environment.
Organization Posting
When posting to a company page:
- If you don't know the , call
linkedin_get_my_managed_pages()
first — it returns all company pages the connected account can post to, with their IDs.
- Use
linkedin_get_organization_posts_detailed(organization_id=...)
to preview recent posts before publishing — avoids accidental duplicates.
- Pass to whichever posting tool you're using.
- Expect LinkedIn org posting permissions to matter.
- If a post fails with a permissions error, verify that the authenticated account can post to that organization.
Failure Modes & Recovery
- Article preview is empty / wrong. LinkedIn ignored the scraped metadata. Re-call
linkedin_create_text_post
with explicit , , and .
- Permission error on organization post. Confirm with the user that their LinkedIn account has page-posting permission for the target .
linkedin_create_carousel_from_text
returned an unexpected slide count. Only of , , or are supported.
- Document post fails with an invalid URL. The must be a directly-fetchable PDF (no auth, no HTML redirect page).