Recipes
Ready-to-use prompts for AI agents connected to WriteStack, with the tools each one calls, in order.
Each recipe is a prompt a writer can paste into Claude, ChatGPT or Notion once WriteStack is connected, plus the tool calls a well-behaved agent makes. Use them to test an agent, or as building blocks in your own.
Draft and queue Notes from a post
Read my latest post and draft five Notes from it in my voice. Show them to me before saving.
get_writing_style- The post text or link the writer gives (or
get_articleif it is already a WriteStack article) - Show drafts, then
create_many_noteswithstatus: "ready" get_schedule_capacity- Confirm the manual Sync step, then
schedule_noteswithuserConfirmedManualSync: true - Remind the writer to click Sync N scheduled notes to Substack under My Notes → Scheduled notes (why)
Fill next week's queue
Fill my open slots for next week with my best ready Notes.
get_schedule_capacityget_next_available_slotslist_noteswithstatus: "ready"schedule_notes(at mostremainingNotes)
Which Notes brought subscribers
Which of my Notes from the last 30 days brought the most paid subscribers, and what do they have in common?
get_notes_statisticswith a 30-day date range, sorted by subscribersget_noteon the top results for full text
Turn a winner into new drafts
Take my best Note this month and write three new angles on it.
get_notes_statisticsget_writing_stylecreate_many_noteswithstatus: "draft"
Reply to comments
Show me comments and mentions from today that I haven't answered.
list_activities(paginate withskip, maxlimit50)
The agent can draft replies, but posting replies happens in WriteStack or Substack.
Write an article and push it to Substack
Write a draft article from these notes for my main newsletter and push it to Substack as a draft.
list_article_newsletters, then ask which newslettercreate_articlewith thatpublicationIdpush_article_to_substackget_article_substack_statusto show the draft link
Pushing runs through the writer's browser extension. With WriteStack open it usually finishes in seconds.
Add an image that has no public link
Add the chart from my Google Drive to the top of this article.
- Get the file's bytes: download it from Drive, or read the local file
create_article_image_uploadwith thearticleId, file name, exactcontentTypeand exactsizeBytes(max 10 MB)- Within 15 minutes, send each entry in
partsas aPUTof the raw bytes for that range, with the sameContent-Type:- Up to 4 MB there is one part:
curl -X PUT -H 'Content-Type: image/png' --data-binary @chart.png '<uploadUrl>' - A bigger file has 2 or 3 parts of 4 MB (the last one shorter). Send them in order and wait for each to succeed:
dd if=photo.jpg bs=4194304 skip=<part> count=1 2>/dev/null | curl -X PUT -H 'Content-Type: image/jpeg' --data-binary @- '<part url>'
- Up to 4 MB there is one part:
get_article, thenupdate_articlewithbaseVersion, and eitherinbodyMarkdown(to place it) orimageUrl: [imageUrl](to add it at the end)
Every part uploads to www.writestack.io, so this works from sandboxes that can't reach Amazon S3. Uploading alone does not add the image. If the upload didn't finish, update_article says the image was skipped. An error response from a PUT says what didn't match (file type, part size or order, or an expired link). Fix it, or ask for new upload links.
Cross-post a Note
Schedule this Note and also post it to my LinkedIn through Buffer.
list_buffer_channels, then confirm the channelcreate_notewithbufferChannelIds- Schedule as above
Ask the Coach
Ask my WriteStack Coach what I should write about this week.
ask_coachwith the question. Pass the returnedthread_idto continue the same conversation.
This uses the writer's Coach allowance.