How to repurpose Substack newsletters into LinkedIn posts
A Substack issue and a LinkedIn post are different objects. The issue is an email plus a web page on a Substack host or a custom domain, often 1,200 to 2,500 words, with a subscribe wall, a byline, and a comment thread. The LinkedIn post is a few short paragraphs on a personal profile. Repurposing means choosing one argument the logged-out page actually contains, then publishing that argument where your name is already the byline. Pasting the Substack URL into LinkedIn builds a link card. It does not write the post.
Boykli does the cut in Article mode on Create posts. You paste the public web URL of one issue. The server fetches the HTML a logged-out reader gets, and Grok 4.6 writes one post around a single argument in that extract. There is no Substack connection, no import of your subscriber list, and no control that files the result as a LinkedIn newsletter edition. The feed post and the LinkedIn series are different products. That split is LinkedIn newsletter vs standalone blog posts. The same URL path for an ordinary blog is how to turn a long article into a LinkedIn carousel. This page is only the Substack issue.
What you are publishing
LinkedIn will not host the Substack email because you pasted a /p/ link. Boykli publishes text, an optional image, or a PDF, through the personal profile you connect with LinkedIn OAuth. Company Pages are outside that publish.
Three feed shapes matter, and only the first two come from this workflow:
- A text post. The draft is the commentary. If you want people to open the issue, the URL has to be in that text. You add it. The writer is told not to emit markdown links.
- A text post with the issue's cover attached. The article-image switch uploads the page's
og:image. On a normal Substack issue that image is asubstackcdn.comfile. It is a picture in the feed, not LinkedIn's link card, and it is not the email. - A document post, later, if you also want slides. The carousel page does not read the Substack URL. You paste an outline. That second file is the blog-URL workflow linked above.
A native link card, the one LinkedIn builds when you paste a URL into LinkedIn's own composer and attach nothing else, is a fourth shape. Boykli's publish call does not ask LinkedIn to build that card. If the card is the object you want, copy the finished sentences into LinkedIn and paste the issue URL there, with no image attached.
The cut stays with the person whose name is on the post. The longer version of that choice is building Boykli.
Four ways people move an issue onto LinkedIn
| Method | What LinkedIn receives | What the draft is allowed to know | Where it breaks |
|---|---|---|---|
| Paste the issue URL into LinkedIn's composer | A link card, plus whatever caption you typed | The sentences you wrote above the URL | No cut of the argument. No queue inside Boykli |
| Paste the whole email into a general chat and ask for "a LinkedIn post" | Whatever you then paste | The email body, plus anything the chat adds | A number from below a paywall you can see and the chat cannot, or the reverse. You still edit and post it |
| Substack's own cross-post | Nothing on LinkedIn. An email to your Substack subscribers, and optionally a post on your Substack | The free post you were allowed to share | Substack's cross-post help is Substack to Substack, and only for free posts |
| Boykli Article mode | One personal-profile post from the public HTML, with the cover image only if you leave that switch on | The logged-out extract: the first article element, capped at 40,000 characters | A paywall that still leaves a teaser over 200 characters produces a confident post about the teaser |
The last row is the workflow below. The first row is the right row when you already wrote the caption and you only wanted LinkedIn's card. The third row is how you send someone else's free issue to your own Substack list. It never touches LinkedIn.
Turn a Substack issue into a post
Article mode writes one LinkedIn post from the public issue URL. It does not import subscribers. BYOK is $29/month. Managed is $88/month.
boykli.com →What the fetcher keeps from a Substack URL
Article mode takes a public http or https link. The server requests the page with a 15-second limit and reads at most 2 MB of HTML. It prefers the first <article> element, then <main>, then <body>, strips scripts and styles, and keeps the text. A title comes from og:title or the <title> tag. A cover, when one exists, comes from og:image or the Twitter image tag.
The readable text has to contain at least 200 non-whitespace characters. Below that, the API tells you to save the page as a PDF and use Document mode, or try another URL. There is no browser and no login. A fetch with no subscriber cookie is the same view as a logged-out reader.
That view is the whole constraint. On 26 October 2026 a public free issue, notanotherceo.substack.com/p/meeting-with-investors, returned HTTP 200, one article element, about 15,000 characters of visible text, an og:title, and an og:image on substackcdn.com. Article mode can write from that page. The same day a paid episode, twistartups.substack.com/p/seed-vcs-say-pro-rata-is-not-up-for, also returned one article element, but only about 1,900 characters of text: the title, the audio-player labels (0:00, "Current time"), the "Paid episode" line, and the sentences above "Subscribe to listen." That extract is well over 200 characters, so the write proceeds. It proceeds on the preview.
Substack's own help describes the same cut. A paywall is a line you place in the editor. Free readers on the web see the preview and the line "This post is for paid subscribers," documented in how to publish a free preview. Audience-specific blocks are stricter for a crawler: Substack's audience-section help says RSS feeds and search-engine crawlers see the "Not subscribed" version of any audience section. Boykli's request is that class of fetch. Metering, which lets a free subscriber read a set number of paid posts, does not apply to a request with no subscriber cookie.
Long pages are cut after extraction at 40,000 characters. A very long free issue can lose its ending. If the argument you want is only in that tail, copy that section into a file and use Document mode, where a brief can name the section. Article mode does not take that brief. The optional idea field on Create posts is not in the article prompt. The writer reads the extract and picks the single strongest argument itself.
The post URL you want is the issue, not the publication. Substack's draft settings put the slug under SEO options. The help page says a slug is lowercase letters, numbers, and dashes, 2 to 48 characters: how to edit a post URL. A custom domain that serves that same issue is a valid paste. These are the wrong pastes:
- The publication homepage. It is a list of issues, or a thin shell, and the draft becomes a tour of headlines.
- A profile (
substack.com/@handle), a Note, or a Chat thread. Those are not the newsletter issue. - A secret draft link, unless you are the author and you mean to. Substack's preview help says anyone with that link can read the draft, and paywalls on that link are not shown. The URL is a capability. Resetting it kills the fetch. Prefer the published public URL.
The writer is instructed to build one post, not a tour of the issue. Tones are Analytical, Thought Leader, Teach & Explain, and Hot Take. A short announcement lands around 400 to 700 characters. A deep issue lands around 1,000 to 1,800. The post layers a point of view on one insight. It does not add hashtags, emoji, or a statistic that was not in the extract. Hooks are a switch. On, you get one to five variations, default three, and a hook idea you type is appended as the angle every variation has to use. The CTA switch splits the close with a === CTA === line. Put "the issue is here" in the CTA idea if you want that close, then paste the real URL into the body yourself.
Managed allows two rewrites on that draft. A third pass is a new write. BYOK does not apply that per-draft cap. Both seats still require a paid plan before the app will write or publish.
When the issue is paid and you wrote it
You can read the full issue. The fetcher cannot. Copy the words you are willing to publish and use Document mode.
Substack's export is the wrong file to upload as-is. The export help says Settings, Exports, Create new export. Substack emails you when a zip of the publication's data is ready. Boykli does not open that zip, and it does not import the subscriber list inside it. Document mode accepts one .pdf, .docx, or .md, 7 MB or smaller, with at least 80 non-whitespace characters and at most 80,000 characters of extracted text. Anything else, including a zip and an HTML file, is refused.
The practical file is a text PDF, a Word file, or a Markdown file of the section you mean. Document mode can take a brief (core_idea) that names the section. Article mode cannot. Tones on a document are Teach & Explain, Analytical, Step-by-Step, and Thought Leader. The draft is 700 to 1,400 characters, one idea, and it is told not to say "this document." Two rewrites on Managed, same as an article draft.
Do this for your own issue. Pulling someone else's paid body through a draft link, a borrowed login, or a copied email is not a workflow this product supports. The fetch has no login step on purpose.
A worked teardown
Source: a public free issue you can open in a private window, about 1,600 words, on a deploy that went from 11 minutes to 90 seconds. The number is in the first section. A subscribe footer and three recommended publications sit under the body. Search-in-page finds "90 seconds" without logging in.
Pass 1, on Create posts, Article mode:
- Paste the issue URL, the
/p/path or the custom-domain equivalent. Leave the article-image switch off unless you want the Substack cover as a LinkedIn image. For a post whose job is the two times, the cover is a distraction, and attaching it makes the publish an image post. - Tone: Teach & Explain, because the useful shape is the change. Hot Take would argue with the issue. Analytical fits when the only point is 11 minutes versus 90 seconds.
- Hooks on, three variations. Hook idea: both times. If a variation drops either number, it is the wrong line.
- CTA on. CTA idea: the full sequence is in the issue. After the draft returns, paste the URL on its own line. The model was told not to invent a markdown link.
- Write. The draft should sit in the 1,000 to 1,800 character band and should keep both times. If a third duration appears, the extract was misread. Refine once: "Keep 11 minutes and 90 seconds. Drop the recommended publications." You have two refinements on Managed.
- Read the draft for footer leakage. The first
articleelement on a Substack page includes the byline, the share row, and sometimes the start of the comments. A line about "72 shares" or a stranger's comment is not the argument. Delete it, or refine it out.
Pass 2, leaving the building:
- Save the post to the Library if you are not posting it now. The map of the Library and the queue is LinkedIn post draft manager if you are stacking a month of issues. One issue is one write.
- Connect the personal profile. Publish, or add the post to the queue. The queue uses the weekdays, the one time of day, and the timezone you save. Company pages are not a destination. The calendar behavior is LinkedIn scheduling tool.
- If you also want a swipeable PDF, that is a second create. Paste an outline of the one argument, up to 2,000 characters, on the carousel page. The Substack URL will not become slides. The steps for that second file are the article-to-carousel page linked above.
The accepted post is one argument. The rest of the issue stays on Substack, which is where the subscriber relationship already lives.
What each URL is worth
| URL you paste | What a logged-out fetch can see | What you should do |
|---|---|---|
Free web issue, /p/ or custom domain | The issue text inside the first article element, plus byline and share chrome | Article mode. Read the draft against the issue |
| Paid or freewalled issue, preview long enough to clear 200 characters | The preview, the paywall line, and often player labels | Article mode only if the preview is the argument you want public. Otherwise Document mode with a file you export yourself |
| Paid issue whose preview is a headline and a button | Often under 200 non-whitespace characters | The API stops. Copy the section into a .md, .docx, or text PDF |
Publication homepage, Notes, Chat, or @handle | A list, a shell, or a different product | Paste the issue URL |
| Secret draft link | The preview URL's HTML. Substack hides the paywall on that link | Your own unpublished draft, if you accept that the link is a capability. Reset it when you are done |
| Settings export zip | Not a page | Not an input. Open the words you need and save one accepted file |
Eight slides, a LinkedIn newsletter edition, and a Substack cross-post are three more objects. None of them fall out of the URL paste.
The order of operations
- Open the issue in a private window. If you cannot read the sentence you care about, Article mode cannot either.
- Copy the issue URL from the address bar. Confirm it is the post, not the homepage. A slug is the path after
/p/. - On Create posts, choose Article. Paste the URL.
- Pick the tone. Teach & Explain for a procedure. Analytical when the point is a comparison that is actually on the page. Thought Leader when the point is the implication the issue supports. Hot Take when you are arguing with one claim, still using only the extract.
- Decide the cover. On means the text post can carry the
og:image. Off means the post is text. Neither setting pulls the email. - Set hooks and the CTA if you want them. Type the hook idea as the angle, not as a finished line the model must quote verbatim unless you want that line.
- Write. Read the draft against the private-window page. Check numbers, names, and any sentence that sounds like a subscribe button or a comment. Refine at most twice on Managed.
- Paste the issue URL into the body if the close is supposed to send people there.
- Publish on the connected personal profile, or queue it. Days, time of day, and timezone are yours. The next item takes the next open slot.
- Leave the LinkedIn newsletter editor alone unless you also want an edition on linkedin.com. Boykli will not create that series, assign an article to it, or set LinkedIn's SEO title.
Managed includes 210 posts and 150 carousels in the month, plus 150 images, 25 Voice Agent sessions, and 130 post refinements. The issue write counts as a post. A rewrite counts as a refinement. BYOK is the same screens with your OpenRouter key for chat and images and your Google AI Studio key for Voice Agent, and Boykli does not add a generation cap on that seat. You still pay those providers. Both seats are $29 and $88 a month on boykli.com. A paid seat is required before the app will write, publish, or schedule. Browsing Radar and Algorithm is open without one.
A weekly issue is a weekly post only if you run this cut every week. Batching a month of already-published free issues is the same screen, repeated, then a queue. The calendar for that batch is LinkedIn content calendar. A YouTube recording of the same idea is a different mode, with captions or a watch, in YouTube to LinkedIn post.
FAQ
Will Boykli import my Substack subscribers into LinkedIn?
No. Article mode fetches one public URL and writes one post. The export zip that contains your subscriber list stays in Substack. LinkedIn's subscriber list, for a newsletter edition, is created inside LinkedIn when someone subscribes there. Those lists are not synced.
The draft is only the introduction. The good part was below the paywall.
The fetch has no login. If a private window stops at "This post is for paid subscribers" or "Subscribe to listen," that stopping point is the extract, even when it is long enough to clear 200 characters. Copy the section you are willing to make public into a .md, .docx, or text PDF and use Document mode, with a brief that names the section. Article mode will keep writing the teaser if you paste the same URL again.
Can I paste the Substack URL on the carousel page?
The carousel page takes a topic of up to 2,000 characters. The URL goes to Create posts, Article mode. A PDF, if you want one, is a new 2–8 slide file designed from an outline you paste. That path is article to LinkedIn carousel.
Does this publish a LinkedIn newsletter?
No. A LinkedIn newsletter is a series of articles on linkedin.com, with its own subscribers. Article mode writes a feed post. You create the series in LinkedIn's editor if you want an edition. The feed post can point at the Substack issue. It does not become the edition.
I used Substack's cross-post. Why is nothing on LinkedIn?
Cross-post sends a free post to your Substack subscribers, with an optional copy on your own Substack. Substack's help limits it to free posts. It is not a LinkedIn action.
The homepage URL failed, or the draft is a list of headlines.
Paste the issue. The homepage is a different page. Notes, Chat, and a profile URL are different products. A fetch under 200 non-whitespace characters stops with the Document-mode suggestion. A homepage that clears that bar can still produce a bad post, because the extract is a pile of blurbs.
What do I pay to run this once a week?
The seat is $29 a month on BYOK or $88 a month on Managed. One issue is one post against the Managed cap of 210 posts in the month. Two rewrites on that draft count toward 130 Managed refinements. BYOK has no Boykli monthly cap and no per-draft rewrite cap. Both are gated by the seat. Writing on BYOK needs an OpenRouter key in Settings.
Can I queue the post for the morning the issue goes out?
Yes, on the personal profile you connect. You set the days, the time of day, and the timezone. The queue does not read your Substack publish time. If the issue is still a draft, wait until the public URL returns the body you want, then write, then queue. Scheduling a secret draft link into next Tuesday is a race against you resetting that link.
Start from the issue URL
One argument from the public Substack page, then a post on your personal LinkedIn profile. BYOK $29/month. Managed $88/month.
boykli.com →