Skip to main content
GEO tasks are the action layer of Rankahead. Each task represents a concrete optimization action — such as adding schema markup, building a citation, or filling a content gap — that is expected to improve your brand’s visibility in LLM-generated responses. The GEO tasks tools let agents read and write to your task board, create new tasks from detected gaps, update status as work progresses, and remove tasks that are no longer relevant.

list_geo_tasks

Lists all GEO tasks in your account. You can filter by board column to retrieve tasks at a specific stage of your workflow, or by category to focus on a particular optimization area.
column
string
Optional column filter. Accepted values: TODO, IN_PROGRESS, DONE.
category
string
Optional category filter. Accepted values: CONTENT_GAP, SCHEMA_MARKUP, CITATION_BUILDING, FORUM_PRESENCE.
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "list_geo_tasks",
    "arguments": {}
  },
  "id": 1
}
tasks
object[]
Array of GEO task objects, each containing the task ID, title, category, impact score, effort score, column, and associated LLM targets.

get_geo_task

Returns full details for a single GEO task, including any notes attached to the task.
taskId
string
required
The ID of the GEO task to retrieve.
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get_geo_task",
    "arguments": {
      "taskId": "geo_06pfq7w6s4ic"
    }
  },
  "id": 3
}
taskId
string
Unique identifier for the task.
title
string
Short description of the optimization action.
category
string
Task category: CONTENT_GAP, SCHEMA_MARKUP, CITATION_BUILDING, or FORUM_PRESENCE.
impact
number
Estimated impact score from 1 (lowest) to 5 (highest).
effort
number
Estimated effort score from 1 (lowest) to 5 (highest).
column
string
Current board column: TODO, IN_PROGRESS, or DONE.
targetLlms
string[]
LLMs this task is intended to improve visibility on (e.g. ["CHATGPT", "PERPLEXITY"]).
notes
string
Free-text notes attached to the task.
promptId
string
Optional linked prompt ID, if the task was created from a specific prompt’s gap analysis.

create_geo_task

Creates a new GEO task on your board. You must supply a title and category. All other fields are optional and have sensible defaults.
title
string
required
A short, action-oriented description of the task (e.g. “Add FAQ schema to pricing page”).
category
string
required
Task category. Accepted values: CONTENT_GAP, SCHEMA_MARKUP, CITATION_BUILDING, FORUM_PRESENCE.
impact
number
default:"3"
Estimated impact from 1 (lowest) to 5 (highest). Defaults to 3.
effort
number
default:"3"
Estimated effort from 1 (lowest) to 5 (highest). Defaults to 3.
column
string
default:"TODO"
Initial board column. Accepted values: TODO, IN_PROGRESS, DONE. Defaults to TODO.
targetLlms
string
JSON array string of LLM identifiers to target (e.g. '["CHATGPT","PERPLEXITY"]'). Accepted values within the array: CHATGPT, PERPLEXITY, CLAUDE, GEMINI.
notes
string
Optional free-text notes providing context or implementation guidance for the task.
promptId
string
Optional prompt ID to associate this task with a specific answer gap detected during a prompt run.
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "create_geo_task",
    "arguments": {
      "title": "Add FAQ schema to pricing page",
      "category": "SCHEMA_MARKUP"
    }
  },
  "id": 4
}

update_geo_task

Updates one or more fields on an existing GEO task. Only the fields you provide are changed. Use this tool to move tasks between board columns, adjust scores, or add implementation notes.
taskId
string
required
The ID of the task to update.
title
string
Updated task title.
category
string
Updated category. Accepted values: CONTENT_GAP, SCHEMA_MARKUP, CITATION_BUILDING, FORUM_PRESENCE.
impact
number
Updated impact score from 1 to 5.
effort
number
Updated effort score from 1 to 5.
column
string
Updated board column. Accepted values: TODO, IN_PROGRESS, DONE.
targetLlms
string
Updated JSON array string of target LLMs (e.g. '["CHATGPT","GEMINI"]').
notes
string
Updated notes for the task.
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "update_geo_task",
    "arguments": {
      "taskId": "geo_06pfq7w6s4ic",
      "column": "IN_PROGRESS"
    }
  },
  "id": 6
}

delete_geo_task

Permanently deletes a GEO task. This action cannot be undone.
taskId
string
required
The ID of the task to delete.
Task deletion is permanent. If you want to preserve the task for reference, move it to the DONE column using update_geo_task instead.
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "delete_geo_task",
    "arguments": {
      "taskId": "geo_06pfq7w6s4ic"
    }
  },
  "id": 8
}