Query Harvest
Your Search Console already knows what people search to find you. This routine reads those queries every week, finds the striking-distance ones you are not tracking yet, and turns the best of them into keyword clusters and draft content specs, queued for you to review. Search reality in, a production queue out.
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, tunes the thresholds with you, and hands back Instructions ready to schedule.
What you get every week#
Under 500 words, the opportunities found and what got queued:
This is the first half of a content loop. Query Harvest queues the spec; Draft from Spec researches and writes it as a draft for your review. Each routine is one stage, and you approve the handoff between them.
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 fills in your project and asks how aggressive to be: the minimum impressions a query needs, and the cap on new opportunities per run so the queue never floods. Sensible defaults are built in (50 impressions, top 5 per run).
Paste the result into claude.ai → Routines → New routine and set the cadence you chose. Each run reads the last 28 days of search data and queues only what is new.
The template#
Search-reality in, a review queue out. The IDs come from list_projects; the thresholds are yours to set during the build:
| Parameter | Type | How it's resolved | |
|---|---|---|---|
| {{PROJECT_ID}} | uuid | required | The project whose Search Console queries are harvested. 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 you sanity-check the IDs landed on the right project. |
| {{MIN_IMPRESSIONS}} | number | default 50 | Minimum 28-day impressions for a query to count as an opportunity. Filters out noise. |
| {{MAX_OPPORTUNITIES}} | number | default 5 | Cap on new clusters/specs created per run, so the queue never floods. |
| {{DELIVERY}} | instruction | your call | Where the report goes. Your AI asks during the build: email is the default, with Slack or the run history as alternatives. |
You are a scheduled weekly agent harvesting Google Search Console queries for the Rampify project and turning the best untracked ones into tracked keyword clusters and queued content specs. The audience is the founder, who reviews what you queued and has final say on everything. Project ID: {{PROJECT_ID}} Domain: {{DOMAIN}} Client ID: {{CLIENT_ID}} The Rampify MCP server is attached. Run unattended start to finish. 1. Pull search queries. - Call get_search_performance (project_id={{PROJECT_ID}}, last 28 days) and read the full query list, including the ranking / CTR opportunity queries. 2. Find untracked opportunities. - Call get_keyword_clusters (project_id={{PROJECT_ID}}) to see what is already tracked. - From the GSC queries, keep only those that are ALL of: - getting real impressions: at least {{MIN_IMPRESSIONS}} over the 28 days, - in the striking-distance band: average position roughly 5 to 20, where a small gain actually moves clicks, - NOT already in a cluster or tracked keyword. - Rank the survivors by impressions and keep the top {{MAX_OPPORTUNITIES}} so a run never floods the queue. 3. Validate. - Call lookup_keywords on the shortlist to confirm search volume. Drop zero-volume noise. 4. Act — create, do not just suggest. - Group related queries into new clusters with create_keyword_cluster (one cluster per intent theme; name it for the theme). - For each cluster worth an article, call create_content_spec describing the angle, the target queries, and the search intent. These are drafts queued for review. Do NOT publish anything. 5. Report. ## Output A markdown report, under 500 words, with these sections in order: ### What you rank for but don't track The untracked striking-distance queries you found, each with its 28-day impressions and average position. ### New clusters created Each new cluster: name, the queries it groups, and its dashboard_url. ### Content specs queued Each new content spec: title, the cluster it serves, and its dashboard_url. State clearly that these are drafts queued for your review, not published. ### Skipped One line: how many queries were skipped because they are already tracked or too thin. ## Delivery {{DELIVERY}} ## What this routine writes This routine creates NEW keyword clusters and NEW content specs (draft / queued) on your project. Nothing is published. Everything lands in your queue for review and you decide what ships. It does not edit or delete existing clusters, specs, or content. The only other external action is delivery, via your own connector. ## Constraints - The only writes are create_keyword_cluster and create_content_spec, and only for NEW, untracked opportunities. Never call update_*, delete_*, or anything that publishes. - Respect the cap of {{MAX_OPPORTUNITIES}} opportunities per run. - Never construct dashboard URLs by hand. Always use the dashboard_url field a tool returns. URLs use client_id, not project_id. - Stay under 500 words for the whole report.
This routine creates new keyword clusters and draft content specs, queued for your review. Nothing is published, and nothing existing is edited or deleted. You decide what ships. The cap keeps a single run from flooding your queue. The only other external action is delivery, via your own connector.
Tools this routine calls
Plus delivery via your own connector. The clusters and specs land in draft, ready for you to review in Keywords and Specs.