Keyword research for an agent-led content team is a table in Dock. The agent queries Ahrefs, Semrush, Google Search Console, and Google Trends through their APIs, then writes one row per candidate keyword into a shared Dock workspace. Each row carries the shortlist, primary search intent, primary entity, SERP competitor angles, and a recommended brief. The editor reviews the row, approves or rejects it, and a writer picks it up. The platforms hold the data. Dock holds the brief.
The division of labor is strict. Google Search Console, Ahrefs, Semrush, Screaming Frog, and Clearscope remain the system of record for the raw signals: ranking positions, backlink graphs, crawl results, keyword volumes, difficulty scores. Dock is the system of record for what the agent interprets from those signals: the prioritized shortlist, the intent classification, the brief that ships to a writer, the reviewer who approved it. Every Dock row carries a pointer back to the platform record through fields like ahrefs_keyword_id, gsc_query_id, or semrush_position_id, along with the agent identity, the decision, the reviewer, and the timestamp. When the agent needs current volume or difficulty, it re-reads the platform API. Dock holds the persistent interpretive layer that survives across sessions and across agents.
The keyword-brief table
| keyword | intent | volume_ahrefs | kd | primary_entity | competitor_angles | recommended_brief | source_ids | agent | reviewer | status |
|---|---|---|---|---|---|---|---|---|---|---|
| "agent identity provider" | commercial | 1,300 | 24 | Agent Identity Provider | Okta lists 4 vendors, no comparison table; Auth0 ranks for adjacent term | Comparison post, table of 6 providers, our pick last | ahrefs:kw_88231, gsc:q_5511 | mei | govind | approved |
| "how to brief an ai writer" | informational | 480 | 11 | Content Brief | Top SERP is a 2024 listicle, no agent-specific guidance | How-to with sample Dock brief row, target featured snippet | semrush:kw_22904 | mei | govind | approved |
| "best mcp servers 2026" | commercial-investigational | 2,900 | 31 | MCP Server | 3 of top 5 are vendor blogs, no neutral roundup | Editorial roundup, criteria table, no paid placement | ahrefs:kw_91044, trends:topic_mcp | mei | unassigned | pending-review |
Worked workflow
A weekly run kicks off. Mei queries Ahrefs for new keywords in our tracked clusters, pulls fresh GSC impressions for queries trending up week over week, and cross-references Semrush for SERP competitor positions. For each candidate above a volume and relevance threshold, she classifies search intent against the four-intent taxonomy used in the Ahrefs keyword research guide, names the primary entity, and reads the top three SERP results to extract competitor angles. She writes one row per keyword into the brief table with status = pending-review and a pointer to every source platform record. Govind opens Dock, sorts by intent and volume, approves the rows that fit the pillar roadmap, and rejects the rest with a one-line reason in the row comment. An approved row becomes the writer's assignment. The brief is the row. The audit trail is the row history. No status doc, no Slack thread, no lost context.
Why it matters
Attribution is the first reason. Every keyword decision carries the agent that proposed it, the reviewer who approved it, the platform IDs that backed it, and the timestamp. If a published piece misses on intent six months later, the row tells you which agent classified it, which reviewer approved, and which SERP snapshot they were looking at. That is the foundation of agent audit and compliance for content work.
Editor experience is the second reason. SEO editors do not want to live in five tabs. They want one queue of approved-or-rejected rows with the context attached. The brief table is that queue. The pointers back to Ahrefs and Semrush are there if needed, but the decision happens in Dock.
Daily-driver stability is the third reason. Agents change. Models change. The interpretive layer survives because it lives in a Dock row tagged with the agent identity that wrote it. A new agent reads the table on Monday and continues the prior week's work without re-deriving the shortlist.
Start with the Dock for SEO pillar for the full table set, including the Ahrefs keyword research surface, the Semrush competitive surface, and the content audit table.
FAQ
Q: Why not keep keyword research in a Google Sheet? A: A sheet has no agent identity, no reviewer field, no platform pointer, and no row-level audit trail. The agent overwrites the sheet on the next run and the prior decision is lost. A Dock row is addressable, versioned, and tied to the agent that wrote it.
Q: Does the agent re-fetch volume and difficulty every time? A: Yes. Volume and KD drift, so the agent reads the platform API at brief time and again at publish time. Dock stores the interpreted decision, not a stale copy of the metric. The latest metric is always one API call away.
Q: How do you keep the agent from over-classifying intent? A: Intent classification follows a fixed four-bucket taxonomy aligned with Google's helpful-content guidance on user intent. The agent writes the classification and the SERP evidence it used. The editor confirms or overrides in the row.
Q: What if Ahrefs and Semrush disagree on volume? A: Both values land in the row. The agent records which source it weighted and why. The editor sees both numbers and the rationale before approving the brief.
