---
name: postkit-jobs
description: "Step-by-step job recipes for the Post Kit MCP server: Draft posts for each platform; Write a short-form video script; Adapt a post for another market. Use when the user asks things like \"Write posts for X, Bluesky and LinkedIn about the launch of our new open-source CLI, branch-tidy. It deletes merged git branches in one command, works on macOS, Linux and Windows, and is MIT licensed.\" or \"Write a 25-second video script for TikTok and Instagram Reels about our new budgeting app, Penny Jar. It sorts card spending into envelopes by itself and warns you 3 days before a bill is due.\""
license: MIT
---

# Post Kit jobs

Each section below walks through one job with the tools of the `postkit` MCP server. The same recipes are MCP prompts (prompts/list) on `https://postkit.openkrill.app/mcp`.
Connect the server at `https://postkit.openkrill.app/mcp` in your MCP client settings (remote streamable HTTP, no key), then call its tools as normal tool calls. They are not command line programs: Bash, curl and scripts cannot reach them.

## Draft posts for each platform

Job: Draft posts for each platform, with the Post Kit MCP server.

Use the `draft_posts` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Write posts for X, Bluesky and LinkedIn about the launch of our new open-source CLI, branch-tidy. It deletes merged git branches in one command, works on macOS, Linux and Windows, and is MIT licensed."

Steps:
1. Call `draft_posts` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `topic`, `platforms`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"topic":"The launch of our new open-source CLI, branch-tidy. It deletes merged git branches in one command, works on macOS, Linux and Windows, and is MIT licensed.","platforms":["x","bluesky","linkedin"]}`
4. For the request "Write posts for X, Bluesky and LinkedIn about the launch of our new open-source CLI, branch-tidy. It deletes merged git branches in one command, works on macOS, Linux and Windows, and is MIT licensed.", a correct answer looks like this: status ok, three drafts (x, bluesky, linkedin) each with a length no larger than its max (280 weighted, 300 graphemes, 3000), passes true or the issues named, and a checklist with rules, image sizes and sources.
5. Follow the server's own rules:
   - The user publishes every post themselves.
   - Call draft_posts for posts on a topic, localize_post to adapt a post for another market, draft_video_script for a short video script, launch_video for an HTML clip of the user's own product page, draft_tiktok_slides for TikTok slideshows of one idea, and make_cover for a layered post cover.
   - Show the summary and canvas_url, then the prompts to make the pictures with; offer the SVG as a file.
   - The title stays live text: never ask an image model to draw it.
   - For a product or a new account, write 3 or 4 angles of 5 short lines from the user's facts as angle_lines, with plan_days 14 when the user wants a posting plan.
   - Save png_base64 only when the user asks for the files; with angle_lines each slide is a png_url link instead.
   - Show posting_plan days as a table with its rules, and add no posting times or claims.
   - Show each angle's caption and hashtags.
   - The page /slides does the same job.
   - Show each draft with its length and issues. passes false means it breaks a rule named in issues: say so, do not present it as ready.
   - When ai_disclosure.flagged is true, name the label each platform needs and quote its source.
   - Do not call it optional where the rule requires it, and do not decide for the user whether to post.
   - Use only the facts in the user's topic or post: add no claims, numbers or links. capacity_reached means the free daily writing allowance is used up until 00:00 UTC: say so and offer the checklist, which is still returned.
   - Do not use these tools to post for the user, read an account, fetch statistics or trends, or repost or translate someone else's content.
   - Offer the returned html as a file to open in a browser.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `draft_posts`).

## Write a short-form video script

Job: Write a short-form video script, with the Post Kit MCP server.

Use the `draft_video_script` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Write a 25-second video script for TikTok and Instagram Reels about our new budgeting app, Penny Jar. It sorts card spending into envelopes by itself and warns you 3 days before a bill is due."

Steps:
1. Call `draft_video_script` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `topic`, `platforms`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"topic":"Our new budgeting app, Penny Jar. It sorts card spending into envelopes by itself and warns you 3 days before a bill is due.","platforms":["tiktok","instagram_reels"]}`
4. For the request "Write a 25-second video script for TikTok and Instagram Reels about our new budgeting app, Penny Jar. It sorts card spending into envelopes by itself and warns you 3 days before a bill is due.", a correct answer looks like this: status ok, a script with a hook at 0-3 s, body at 4-20 s and a call to action ending at 25 s, a timing check, a caption for each platform that passes its rules, platform_limits with max_seconds and a source for each, and an ai_disclosure block with flagged false.
5. Follow the server's own rules:
   - The user publishes every post themselves.
   - Call draft_posts for posts on a topic, localize_post to adapt a post for another market, draft_video_script for a short video script, launch_video for an HTML clip of the user's own product page, draft_tiktok_slides for TikTok slideshows of one idea, and make_cover for a layered post cover.
   - Show the summary and canvas_url, then the prompts to make the pictures with; offer the SVG as a file.
   - The title stays live text: never ask an image model to draw it.
   - For a product or a new account, write 3 or 4 angles of 5 short lines from the user's facts as angle_lines, with plan_days 14 when the user wants a posting plan.
   - Save png_base64 only when the user asks for the files; with angle_lines each slide is a png_url link instead.
   - Show posting_plan days as a table with its rules, and add no posting times or claims.
   - Show each angle's caption and hashtags.
   - The page /slides does the same job.
   - Show each draft with its length and issues. passes false means it breaks a rule named in issues: say so, do not present it as ready.
   - When ai_disclosure.flagged is true, name the label each platform needs and quote its source.
   - Do not call it optional where the rule requires it, and do not decide for the user whether to post.
   - Use only the facts in the user's topic or post: add no claims, numbers or links. capacity_reached means the free daily writing allowance is used up until 00:00 UTC: say so and offer the checklist, which is still returned.
   - Do not use these tools to post for the user, read an account, fetch statistics or trends, or repost or translate someone else's content.
   - Offer the returned html as a file to open in a browser.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `draft_video_script`).

## Adapt a post for another market

Job: Adapt a post for another market, with the Post Kit MCP server.

Use the `localize_post` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Adapt this post for a Japanese audience: "Our app is a home run for busy parents."."

Steps:
1. Call `localize_post` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `text`, `target_market`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"text":"Our app is a home run for busy parents.","target_market":"Japan"}`
4. For the request "Adapt this post for a Japanese audience: "Our app is a home run for busy parents.".", a correct answer looks like this: status ok, language ja, localized_text in Japanese that replaces the baseball idiom with a local equivalent instead of translating it, and an adaptations list saying what changed.
5. Follow the server's own rules:
   - The user publishes every post themselves.
   - Call draft_posts for posts on a topic, localize_post to adapt a post for another market, draft_video_script for a short video script, launch_video for an HTML clip of the user's own product page, draft_tiktok_slides for TikTok slideshows of one idea, and make_cover for a layered post cover.
   - Show the summary and canvas_url, then the prompts to make the pictures with; offer the SVG as a file.
   - The title stays live text: never ask an image model to draw it.
   - For a product or a new account, write 3 or 4 angles of 5 short lines from the user's facts as angle_lines, with plan_days 14 when the user wants a posting plan.
   - Save png_base64 only when the user asks for the files; with angle_lines each slide is a png_url link instead.
   - Show posting_plan days as a table with its rules, and add no posting times or claims.
   - Show each angle's caption and hashtags.
   - The page /slides does the same job.
   - Show each draft with its length and issues. passes false means it breaks a rule named in issues: say so, do not present it as ready.
   - When ai_disclosure.flagged is true, name the label each platform needs and quote its source.
   - Do not call it optional where the rule requires it, and do not decide for the user whether to post.
   - Use only the facts in the user's topic or post: add no claims, numbers or links. capacity_reached means the free daily writing allowance is used up until 00:00 UTC: say so and offer the checklist, which is still returned.
   - Do not use these tools to post for the user, read an account, fetch statistics or trends, or repost or translate someone else's content.
   - Offer the returned html as a file to open in a browser.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `localize_post`).
