Skip to main content
The content tools give AI agents full control over Rankahead’s content generation pipeline. You can generate blog posts from answer gap suggestions, GSC keyword data, or competitor URLs — then edit, publish, and track their search performance. Additional tools let you manage CMS connections, configure tone and style settings, and define the audience persona that shapes generated content.

list_blog_posts

Lists all blog posts in your account. You can filter by the prompt they were generated from or by their current status.
string
Optional prompt ID to return only posts generated from a specific prompt.
string
Optional status filter. Accepted values: GENERATING, DRAFT, PUBLISHED, FAILED.

get_blog_post

Returns full content and metadata for a single blog post, including the generated body, title, and associated prompt information.
string
required
The ID of the blog post to retrieve.
string
Unique identifier for the blog post.
string
The post title.
string
The full post body in TipTap JSON format.
string
Current status: GENERATING, DRAFT, PUBLISHED, or FAILED.

get_blog_publish_status

Returns the CMS publish records for a blog post, showing the publish status per connected CMS integration.
string
required
The ID of the blog post to check publish status for.
object[]
Array of publish records, one per CMS connection, each showing the connection name, status, and published URL if available.

generate_blog_post

Triggers asynchronous generation of a new blog post. You must choose a generation mode, and some modes require additional parameters.
string
required
The domain to generate the post for.
string
required
Generation mode. Accepted values:
  • FROM_SUGGESTIONS — generates from an answer gap suggestion identified by a prompt run
  • FROM_GSC_KEYWORD — generates targeting a keyword from your Google Search Console data
  • FROM_COMPETITOR — generates from a competitor URL for gap or comparison content
string
Required when mode is FROM_SUGGESTIONS. The ID of the prompt whose suggestions to use.
string
Optional specific run ID to pull suggestions from when using FROM_SUGGESTIONS mode.
string
Required when mode is FROM_GSC_KEYWORD. The GSC keyword to target.
string
Required when mode is FROM_COMPETITOR. The competitor page URL to generate content from.
string
Optional custom title. If omitted, a title is generated automatically.
string
The ID of the newly created blog post. Poll get_blog_post until status changes from GENERATING to DRAFT or FAILED.

get_blog_gsc_metrics

Returns Google Search Console performance metrics for a published blog post, including clicks, impressions, CTR, and average position.
string
required
The ID of the blog post to retrieve GSC metrics for.
number
default:"28"
Lookback window in days. Defaults to 28.
number
Total organic clicks over the selected period.
number
Total search impressions over the selected period.
number
Average click-through rate as a decimal (e.g. 0.042 for 4.2%).
number
Average search ranking position over the selected period.

update_blog_post

Updates the title and/or content of a blog post. Only posts in DRAFT status can be edited.
string
required
The ID of the blog post to update.
string
Updated post title.
string
Updated post body as a JSON string in TipTap format.
Only DRAFT posts can be edited. Attempting to update a PUBLISHED post will return an error.

delete_blog_post

Permanently deletes a blog post and all associated CMS publish records. This action cannot be undone.
string
required
The ID of the blog post to delete.
Deletion is permanent and removes all publish records for this post across connected CMS integrations.

publish_blog_post

Publishes a blog post to a connected CMS. You must supply both the post ID and the CMS connection ID. Use list_cms_connections to retrieve available connection IDs.
string
required
The ID of the blog post to publish.
string
required
The ID of the CMS connection to publish to.

list_cms_connections

Lists all connected CMS integrations for your account. Use the returned connection IDs with publish_blog_post. This tool takes no input parameters.
object[]
Array of CMS connections, each with an ID, name, and connection type (e.g. WordPress, Webflow).

get_content_settings

Returns the content generation settings for a domain, including tone of voice, target audience, value proposition, blocked words, and internal link configuration.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.

update_content_settings

Updates content generation settings for a domain. Only the fields you provide are changed — all fields are optional except domainId.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
string
Value proposition describing what makes the brand unique.
string
Description of the target audience for generated content.
string
Writing tone. Accepted values: PROFESSIONAL, CASUAL, AUTHORITATIVE, FRIENDLY, EDUCATIONAL.
string
Language code for content generation (e.g. en, fr, de).
string
JSON array string of words to exclude from generated content (e.g. '["spam","cheap"]').
JSON array string of internal URLs to include in generated content (e.g. '["https://example.com/pricing"]').
string
JSON array string of competitor domain URLs to use for content differentiation (e.g. '["competitor.com"]').

get_persona

Returns the audience persona configured for a domain. The persona shapes the reading level, terminology, and examples used in generated content.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
string
The persona’s name (e.g. “Growth-Stage Founder”).
string
A description of the target audience.
number
Minimum age in the target range.
number
Maximum age in the target range.
string
Highest education level: HIGH_SCHOOL, BACHELORS, MASTERS, PHD, or SELF_TAUGHT.

upsert_persona

Creates or updates the audience persona for a domain. If a persona already exists for the domain, it is overwritten.
string
required
The persona’s name (e.g. “Growth-Stage Founder”).
string
required
A description of the target reader, their goals, and their pain points.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
number
Minimum age in the target demographic.
number
Maximum age in the target demographic.
string
Highest education level of the target reader. Accepted values: HIGH_SCHOOL, BACHELORS, MASTERS, PHD, SELF_TAUGHT.