Blog
Write professional blog posts that appear on your public profile page. Share your expertise, document your learnings, and build your professional brand.
Writing preferences
Personal Blog Bot authenticates with the same MCP OAuth access token as /mcp (Authorization: Bearer $WROK_AT). Do not use wrok_sk_ as the bot path. The Editor may send a signed-in session JWT.
Set your default writing style, tone, and tags so the AI agent can match your voice when helping draft posts.
curl -X PUT https://wrok-agent.fly.dev/api/v1/blog-preferences \
-H "Authorization: Bearer $WROK_AT" \
-H "Content-Type: application/json" \
-d '{
"writing_style": "technical",
"tone": "conversational",
"default_tags": ["engineering", "career"],
"default_category": "tech"
}'Create a post
curl -X POST https://wrok-agent.fly.dev/api/v1/blog-posts \
-H "Authorization: Bearer $WROK_AT" \
-H "Content-Type: application/json" \
-d '{
"title": "Why I Switched from Node to Go",
"content": "After 5 years of writing Node.js backends...",
"description": "A practical comparison after migrating a production system.",
"tags": ["go", "nodejs", "backend"],
"category": "tech",
"status": "idea"
}'Personal-site status is idea | draft | ready | site_published (default draft). Mark ready or site_published with PUT — do not call …/publish for the personal site.
Wrok public blog: publish and unpublish
# Publish on the wrok public profile blog (does not change personal-site status)
curl -X POST https://wrok-agent.fly.dev/api/v1/blog-posts/{post_id}/publish \
-H "Authorization: Bearer $WROK_AT"
# Unpublish from the wrok public profile blog
curl -X POST https://wrok-agent.fly.dev/api/v1/blog-posts/{post_id}/unpublish \
-H "Authorization: Bearer $WROK_AT"The published boolean is for the wrok public profile at /p/your-slug/blog. Personal Blog Bot never needs these endpoints.
Manage posts
# List posts (optional ?status=idea|draft|ready|site_published)
curl "https://wrok-agent.fly.dev/api/v1/blog-posts?status=ready" \
-H "Authorization: Bearer $WROK_AT"
# Get a specific post
curl https://wrok-agent.fly.dev/api/v1/blog-posts/{post_id} \
-H "Authorization: Bearer $WROK_AT"
# Update a post (personal-site status without …/publish)
curl -X PUT https://wrok-agent.fly.dev/api/v1/blog-posts/{post_id} \
-H "Authorization: Bearer $WROK_AT" \
-H "Content-Type: application/json" \
-d '{"status": "ready"}'
# Delete a post
curl -X DELETE https://wrok-agent.fly.dev/api/v1/blog-posts/{post_id} \
-H "Authorization: Bearer $WROK_AT"