Publishing

Publishing is the last step of every post and the one that makes the whole workflow worthwhile. Callings.ai gives you a single publish modal that previews how each post will render on every major platform, sends it natively to LinkedIn and the public Callings feed, schedules it for a future date when you do not want to ship right now, and exports clean text and images for the platforms it does not publish to directly. The goal is simple: shrink the friction between a finished draft and a post that lives on the internet.

The pages before this one are about building drafts. This one is about getting them out of the editor and in front of people, so you become known for the topics you have committed to writing about.

Publish Modal - Publish Now


Why Publishing Matters

A draft that never ships does not build a personal brand. Publishing consistently is the part of the workflow that turns intent into discoverability: every LinkedIn post reaches your direct network, every public Callings feed entry is a permanent record that people, recruiters, and search engines can find.

Three concrete benefits over manually copying drafts into LinkedIn one at a time:


The Publish Stage and the Publish Modal

The editor's Publish stage (step 3 of the Write / Cover / Publish flow) is the primary place to ship a post. It shows the destination cards (Callings, LinkedIn) with click-to-toggle selection, the schedule summary, and the Publish now and Schedule buttons. Publish now opens the publish modal pre-checked with the destinations you selected on the cards; Schedule opens the modal directly on its Schedule tab.

The publish modal itself has two tabs, "Publish now" and "Schedule for later," and a single list of platforms with checkboxes and live status.

Publish Now

Selecting Publish now shows the platforms list with a checkbox for each. Tick what you want to ship to and click Publish. The modal then walks through each selected platform, showing per-row status in real time:

State Meaning
Publishing... The request is in flight (LinkedIn API call, or Callings feed publish)
Published The platform confirmed the post is live, with a clickable "Posted X ago" link
Unpublishing... You unchecked Callings while it was live; the modal is retracting it
Unpublished The post is no longer public on Callings
Failed The platform rejected the request; the row shows the error and a Retry button

The modal stays open after Publishing so you can review per-platform outcomes. Done closes it. If any platform failed you can retry from the same row without recomposing the post.

Schedule for Later

Selecting Schedule for later swaps the body of the modal for a multi-month calendar grid. Pick a date, pick a time, optionally toggle which platforms the scheduled run should publish to, and click Save Schedule.

Publish Modal - Schedule

A scheduled post:

The same calendar view is used in the Schedule banner inside the editor body, so you can adjust a schedule without going through the full publish flow.

Zoom out: rhythm and theme balance

The Publish modal is one post. The Calendar View and Analytics tabs are where the rest of the story lives: your publishing rhythm over weeks and months, and the balance of themes and intents across that rhythm. Open the Calendar View occasionally to see whether you have a quiet week coming up that you should fill; open Analytics to see whether one theme is dominating your output or one intent (often Promotion) is over-represented. Publishing one post well matters; publishing consistently and on a balanced mix of themes is what compounds.


Publishing to Callings, Your Personal Public Feed

The Callings public feed is your personal posting destination on callings.ai. Every post you publish here becomes a permanent, indexable page on your public profile. It is the half of the publishing workflow that pays off over months and years: when someone searches for your name, your posts are part of what they find.

What it looks like

Your feed lives at https://callings.ai/posts/{your-handle}. Each post gets its own page at /posts/{your-handle}/{slug} with a clean reader layout, your name and avatar, the publish date, the hero image, and the full body rendered from Markdown.

Public Journal Feed

Visitors do not need a Callings.ai account to read your feed. They can land on a single post via a shared link, scroll through all of your posts on the index page, or navigate from your Calling Card to your feed.

How to publish to Callings

Open the publish modal, tick the Callings checkbox, and click Publish. The post becomes live on your public feed and the modal shows the live link.

Unlike LinkedIn, Callings is two-way: you can unpublish at any time. Unchecking Callings on a post that is currently public retracts the public page (visitors then get a 404). The post itself stays in your editor as a draft you can edit and republish later.

When to use Callings publishing


Publishing to LinkedIn

LinkedIn is the highest-leverage destination for most job-seekers. The publish modal connects to your LinkedIn account through OAuth and posts natively, with a click-through link to the live post.

One-time setup: connecting LinkedIn

If LinkedIn is not yet connected, the LinkedIn row in the publish modal shows a Connect Your LinkedIn button. Clicking it opens the integrations page where you authorize Callings.ai to post on your behalf. The platform warns you a week before the connection expires so you can reconnect before it lapses.

How to publish to LinkedIn

With LinkedIn connected, tick the LinkedIn checkbox in the publish modal and click Publish. The post is sent natively to LinkedIn through your connected account, and the modal shows a "Posted X ago" link that opens the live post on linkedin.com.

A few important behaviors:

Auto-publish flags

The modal exposes two per-post flags that turn on auto-publish for future scheduled runs:

When a scheduled post fires, it publishes to the platforms you toggled on, no manual intervention needed.


The Cross-Platform Preview

The Preview modal is the safety net that catches "this looks great as Markdown but breaks on LinkedIn" before you publish. It opens from the eye icon on the editor toolbar.

Post Preview Modal

Four tabs, four platforms, each rendering the current draft as it will appear in the wild:

Tab What it shows
Callings Reader layout with your title, byline, date, Markdown-rendered body, and the same Callings cover grid that ships on your public feed page (lead-on-top with a thumbnail row when the LEAD is landscape, lead-on-left with a thumbnail column when the LEAD is portrait)
LinkedIn The native LinkedIn post layout: avatar, author name, "Now" timestamp, plain-text body, mock engagement row. The image area renders LinkedIn's actual feed mosaic for the number of included images: 1 full-width; 2 side-by-side; 3 as one landscape on top + 2 squares below; 4 as one landscape on top + 3 portraits below; 5+ as 2 squares on top + 3 portraits below with a "+N" overlay on the last tile when there are more than 5
X Twitter/X-style card with a live character counter. The 280-character limit is enforced visually: anything over the limit is highlighted in red, with a warning to trim or switch to Short format
Instagram Caption-style layout: the first image is the focal point, the body becomes the caption. A reminder if no image is attached

Previewing is the cheap insurance against publishing a post that reads like a draft because Markdown bullets were never going to survive the trip to LinkedIn. Only versions with Include checked in the Post Image Editor appear in the preview, in strip order, so the previews always match what will actually publish.


Copy and Paste to Other Social Platforms

Callings.ai publishes natively to LinkedIn and Callings. For X, Instagram, Threads, Bluesky, Mastodon, or anywhere else you post, the Copy modal gives you clean text and images you can paste in seconds.

Copy Modal

The copy modal (icon on the editor toolbar) splits the export into image and text sections.

Image actions

When the post has multiple included images, the Copy modal lists each one (LEAD first, then V2, V3, and so on) with its own pair of buttons. Use that to build a multi-image post on platforms Callings.ai does not publish to natively (X threads, Instagram carousels, Threads): copy or download each image in order, then paste or upload them on the target platform alongside the text.

Text actions

A short helper line under the text buttons reminds you which to use for which platform.

Why three text formats?

LinkedIn and the Callings feed are handled by the publish modal directly; the Copy modal is for everything else. Markdown is for blog platforms that render the source as-is (Ghost, Substack, your own site). Rich text is for word processors and note apps where you want the formatting preserved on paste (Word, Google Docs, Notion, Outlook). Plain text is for social and chat apps that strip formatting anyway (X with its 280-char limit, Instagram captions, Threads, LinkedIn manual paste). Picking the right one means zero cleanup after the paste.

Already have your own blog or website?

Many writers already maintain a personal site, a Substack, a Ghost or Medium publication, or a self-hosted blog. The Copy modal is what makes Callings.ai useful alongside those platforms instead of competing with them: draft the post in the editor (with the Ghost Writer, the Sources, the previews, all the support), then copy Markdown for platforms that render it, or download the image for platforms that need an upload. You keep your existing publishing home; Callings.ai becomes the workspace that gets each post written and on-brand in the first place.


The Personal Public Feed and the Collective Stream

Your personal public feed (live today)

Every Callings.ai user with at least one published post has a personal feed at /posts/{handle}. The feed shows:

The feed is public: no login required, visible to search engines, indexable by AI crawlers (GPTBot, Claude-Web, PerplexityBot, Google-Extended), and shareable to anyone. It is also linked from your Calling Card, so visitors who arrive through your campaign can read your full output in one place.

You can share a specific post by copying its public URL from the Settings modal or from the Posts list row. Each post has its own slug-based URL so links look like /u/{handle}/posts/{slug} rather than opaque IDs.

The collective stream (forward-looking)

The collective stream is the cross-author view of every public Callings post, sorted by recency, that pulls together what every contributor on the platform is publishing into a single live feed. It is the natural next step beyond per-author feeds: a way for readers to discover posts by topic and author rather than having to land on individual handles. The feed is being shaped around the same Writing Themes that anchor individual posts, so a reader can scope the stream to the topics they care about.

For authors, the relevant decision is the same one you already make in the publish modal: ticking Callings when you publish includes the post in this collective view automatically. There is nothing extra to opt into; if it is public on your personal feed, it is part of the broader stream.


Tips & Best Practices


Frequently Asked Questions

Q: What happens if I delete a post that is currently live?
A: Deleting in Callings.ai removes the post from your public feed instantly (the page returns 404). It does NOT retract from LinkedIn; you need to delete the LinkedIn post on LinkedIn itself. The delete dialog warns you when the post is live.

Q: Can I edit a post after it is published?
A: Yes for Callings, and yes for LinkedIn but only on LinkedIn itself. The public Callings page reads the post live, so any edit you save in the editor shows up on the page immediately (no re-publish step). LinkedIn is different: our integration cannot push edits back to a post that has already been sent, so to change what people see on LinkedIn, open the post on LinkedIn and use LinkedIn's own edit option there. Editing the body in Callings afterwards is still useful for keeping your Callings page in sync, but it will not propagate to LinkedIn.

Q: How does scheduling work under the hood?
A: The platform has a scheduler that wakes up periodically, finds scheduled posts whose scheduled_date has passed, and publishes them according to the per-post auto_publish_callings and auto_publish_linkedin flags. Failures are logged and the post is retried on a backoff schedule.

Q: Why is my LinkedIn checkbox disabled?
A: Three possible reasons: (1) the post is already on LinkedIn, the checkbox is disabled to prevent double-posting; (2) LinkedIn is not connected, click Connect Your LinkedIn first; (3) your LinkedIn token has expired, reconnect from the integrations page.

Q: Can I publish to multiple LinkedIn accounts (personal + company)?
A: Not from a single Callings.ai account today. The OAuth connection is to one LinkedIn identity per Callings user.

Q: What happens if I unpublish from Callings? Does it lose view counts?
A: The view count is preserved on the post row. Republishing the same post later resumes the count where it left off; visitors see the post as fresh.

Q: Are my posts indexed by Google and AI crawlers?
A: Yes. The Callings feed pages are included in the public sitemap and permitted in robots.txt for both standard search engines and AI crawlers (GPTBot, Google-Extended, Claude-Web, PerplexityBot, CCBot). That is the point: you want to be findable.

Q: Why doesn't Callings.ai publish to X / Instagram / Threads natively?
A: The Copy modal is the deliberate substitute: a 5-second paste flow that works on every platform without us having to chase OAuth credentials and rate-limited APIs across half the social web. The LinkedIn integration exists because the value-to-friction ratio there is uniquely high for job-seekers.



A post in your drafts folder is invisible. A post published is the part of the workflow that compounds: it gets indexed, shared, quoted, and remembered. The publish modal is small but it is where the work pays off. Ship the post, then start the next one.