Draft from Spec
This routine takes a queued content spec, researches and drafts the article with your live Rampify data, then places it as a draft wherever you work. Rampify is the brain: the brief, the keywords, the competitive research, the draft. Your own connector is the hands: it puts the draft in your repo, your CMS, your drive, or your inbox. Always a draft, so you review and publish.
This page is a template, not a document. Don't fill in the blanks yourself. Copy the builder prompt below into your AI tool and it builds your personalized version with you: it resolves your project over MCP, asks which spec and where the draft should land, and hands back Instructions ready to schedule.
This pairs with Query Harvest: Query Harvest turns your search data into queued content specs, and Draft from Spec writes one as a draft for your review. Each routine is one stage, and you approve every handoff.
What you get#
A complete, reviewable draft that satisfies the spec:
Where the draft lands#
You decide during the build, using a connector you already have attached alongside Rampify. Rampify never publishes for you; your connector does, and only ever as a draft.
| Destination | Connector | What happens |
|---|---|---|
| GitHub PR | official GitHub MCP | Branch, commit the article as a markdown/MDX file, open a pull request. Never the default branch. |
| Sanity draft | Sanity MCP | Create a draft document in your dataset. |
| WordPress draft | WordPress MCP | Create a draft post, never set live. |
| Google Doc | Drive / Docs connector | Drop the article as a doc to review. |
| Email / run history | Gmail connector / none | The markdown, for a human to place. |
The routine falls back to delivering the article markdown to your email or the run history, and tells you which connector to add so a future run can place it for you automatically. Nothing breaks; you just place that one by hand.
Build yours#
The launch button opens your tool with the builder prompt already in the input. claude.ai, Cursor, and VS Code support prefilled deeplinks; for Claude Code it copies, ready to paste. The prompt is also copied to your clipboard every time, as a fallback. Your choice of tool is remembered, and you can switch it from the dropdown.
With the Rampify connector enabled (see Connecting), your AI asks which content spec to draft (or, on a schedule, takes the highest-priority queued one) and which of your connectors should receive the draft. It confirms what it found before writing anything.
Trigger it when you want a spec drafted, or schedule it to drain the queue one spec at a time. The draft lands in your destination for review. You publish.
The template#
The IDs come from list_projects; the spec and destination are yours to set during the build:
| Parameter | Type | How it's resolved | |
|---|---|---|---|
| {{PROJECT_ID}} | uuid | required | The project the spec belongs to. Returned by list_projects. |
| {{CLIENT_ID}} | uuid | required | Scopes dashboard URLs (links use client_id, not project_id). Also from list_projects. |
| {{DOMAIN}} | string | optional | Your site. Lets the draft link internally and match voice. |
| {{SPEC_ID}} | uuid | optional | The content spec to draft. Leave blank to take the highest-priority queued spec on a schedule. |
| {{DESTINATION}} | instruction | your call | Where the draft lands, named to your connector. GitHub PR, Sanity/WordPress draft, Google Doc, or email/run history. |
| {{DELIVERY}} | instruction | your call | Where the short run summary goes, separate from the draft. Email by default. |
You are an agent drafting one article from a Rampify content spec, then placing it as a DRAFT wherever the founder chose. You never publish live. A human reviews and publishes. Project ID: {{PROJECT_ID}} Domain: {{DOMAIN}} Client ID: {{CLIENT_ID}} Content spec to draft: {{SPEC_ID}} (if blank, take the highest-priority queued content spec from list_feature_specs) Destination: {{DESTINATION}} The Rampify MCP server is attached, plus the founder's destination connector. Run unattended. 1. Read the brief. - Call get_feature_spec({{SPEC_ID}}) for the angle, the target queries, and the search intent. - Call get_keyword_clusters (project_id={{PROJECT_ID}}) for the cluster's keywords so the draft targets the right terms. 2. Research the angle. - Call research_competitors to see how rivals cover this topic, so the draft has a point of view rather than restating them. - Call get_page_intelligence on any existing page about this topic so you extend coverage instead of duplicating or cannibalizing it. 3. Draft the article. - Write a complete draft that satisfies the spec: a title and meta description (you may use generate_title / generate_meta for constraint-safe options), an intro, H2 sections that answer the target queries, internal links to related pages on the site, and one clear primary-keyword focus. - Match the site's existing voice and format. Do not invent facts or claims you cannot support. 4. Place it as a DRAFT in {{DESTINATION}}, using the connector for it: - GitHub: create a branch, commit the article as a markdown/MDX file in the content directory, and open a pull request. NEVER commit to the default branch. - Sanity / WordPress / other CMS: create a DRAFT document or post. Never set it live. - Google Drive: create a doc. - No publish connector available: output the full article markdown and say it should be placed manually. Always a draft. A human reviews and publishes. 5. Report. - A short summary: the spec you drafted, the title, the destination, and the draft's link or PR URL. ## Delivery {{DELIVERY}} (This is where the short SUMMARY goes, separate from where the draft itself lands.) ## What this routine writes Against Rampify, research_competitors records the discovered competitor set; everything else is a read. The article is created as a DRAFT in your destination through your OWN connector. It is never published, never committed to a default branch, and never overwrites existing content. You review and publish. ## Constraints - Create a DRAFT only. Never publish, never commit to a default branch, never overwrite an existing page. - One spec per run. - Use the destination connector the founder configured. If none is present, deliver the markdown and say so plainly. - Never construct dashboard URLs by hand. Use the dashboard_url field a tool returns.
Against Rampify, research_competitors records the discovered competitor set; everything else is a read. The article is created as a draft in your destination through your own connector. It is never published, never committed to a default branch, and never overwrites existing content. You review and publish.
Tools this routine calls
The publish step is not a Rampify tool. The draft lands through your own connector (GitHub, Sanity, WordPress, Drive, or email), so the routine works with whatever you already use.