> ## Documentation Index
> Fetch the complete documentation index at: https://geoptie.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Recipes

> Questions to ask, the tools behind them, and how to read the answer.

Each recipe is a question in plain English, the tools your assistant will reach for, and what
to look for in the reply. Copy a prompt, change the brand name, and run it.

Every recipe starts the same way underneath: your assistant calls `list_brands` to find the
brand ids your key can reach. You do not need to name the tools or say "use Geoptie". Asking
about your brand, your competitors or AI search is enough.

<Info>
  These assume you have already [connected the server](/docs/mcp/setup).
</Info>

## Weekly visibility check

> How has our AI visibility moved in the last 7 days, and on which engines?

**Tools:** `list_brands`, `get_brand_visibility`

**What to look for**

* Ask for `compare` and you get the previous equal-length window alongside, which turns a
  number into a direction.
* Days with no run are returned marked as having no data rather than as a zero. A dip that
  lines up with those is a gap in collection, not a loss of visibility.
* If one engine drags the average down, ask the same question filtered to that engine. Each
  brand is measured on the engines you selected for it, not all of them.

## Who is winning the prompts you track

> Compare our share of voice against our competitors over the last 30 days.

**Tools:** `list_brands`, `list_competitors`

**What to look for**

* Your own row is in the same list as the competitors, so you can rank the whole set together.
* A competitor with high mentions but a weak average position is winning volume from a few
  prompts rather than breadth. Ask for the prompts behind it with `list_prompts`.
* Competitors you have marked as not competitors, and ones you have merged, are already
  applied. What you see here matches the dashboard.

## Which pages engines cite

> Which pages and domains do AI engines cite most when they answer about us?

**Tools:** `list_brands`, `list_cited_urls`, `list_cited_domains`, `get_citation_trend`

**What to look for**

* Both come back ranked by citation count, so the first row is the answer to "what cites us
  most".
* These return a top slice rather than every row, and the reply says so along with the true
  total. For a complete extract, use `list_citations`, which pages properly.
* `get_citation_trend` with no domain or url given trends your **own** domain, which is the
  self-citation view. Pass a domain to trend a specific source instead.

## Why an engine answered the way it did

> Show me the recent ChatGPT answers for this prompt, with the sources and the brands named
> in each.

**Tools:** `list_prompts`, `list_answers`, `list_prompt_mentions`

**What to look for**

* Ask for the `citations` and `mentions` expansions on `list_answers` and you get the sources
  and the named brands attached to each answer, rather than having to join them yourself.
* Answers are the heaviest thing here, so this tool returns 10 at a time. Narrow by engine or
  date before raising that.
* `list_prompt_mentions` answers "who got named here" without pulling the answer text at all,
  which is much cheaper when that is all you need.

## Work the recommendation queue

> What are the open recommendations for this brand, and which look most worthwhile? Mark the
> ones we have already done.

**Tools:** `list_brands`, `list_recommendations`, `update_recommendation`

**What to look for**

* Filter by status to get just the open ones. Completed and dismissed stay available, so you
  can see what was decided before.
* Each recommendation carries the evidence behind it, including the page it refers to, which
  is what makes it possible to judge rather than just obey.
* Completing or dismissing is reversible with a restore, so this is a safe queue to work
  through in conversation.

## Add prompts and file them under a topic

> Add these five prompts for our brand and file them under a new topic called Pricing.

**Tools:** `list_topics`, `create_topic`, `track_prompts`, `update_prompt`

**What to look for**

* Re-running the same request is safe. Prompts already tracked come back reported as already
  tracked rather than duplicated.
* Prompts are matched by their text, so a prompt someone else already tracks starts with
  history behind it rather than empty.
* Topics are the only thing you can change on a tracked prompt through the API, which mirrors
  what the dashboard allows.

## Turn a gap into a drafted article

> Take the top recommendation, use the pages engines already cite for those prompts, and write
> me an article for it.

**Tools:** `list_recommendations`, `list_cited_urls`, `create_generation`, `get_generation`,
`generate_draft`

**What to look for**

* This is two steps on purpose. `create_generation` researches and writes a **brief**, then
  `generate_draft` writes the article from that brief. You can read and edit the brief in
  between.
* Both return straight away with a status to poll rather than holding the connection, because
  the research runs for a few minutes. Your assistant should poll, not retry.
* `cited_page_urls` is required and nothing is chosen for you. `list_cited_urls` is where those
  come from, which is what grounds the article in pages engines already trust.

<Warning>
  These two tools run a model and cost money, and are limited to 3 per minute, 20 per hour and
  2 at a time. Your assistant should confirm with you before starting one, and must not retry
  in a loop.
</Warning>

## Audit a page

> Run an audit on our pricing page and tell me the top three things to fix.

**Tools:** `create_audit_report`, `get_audit_report`, `list_audit_reports`

**What to look for**

* The audit returns immediately with an id to poll. It takes up to about 80 seconds.
* A brand is required, so the report is attached to the brand it is about and stays reachable
  by a brand-scoped key.
* A failed report says why in plain language. That is usually a page the scraper could not
  reach.

## Chaining tips

* **Start with `list_brands`.** Every id in Geoptie is a UUID, so an assistant cannot guess
  one, and a wrong id returns `404` rather than someone else's data.
* **Reuse the brand id** for the rest of the session instead of listing brands again each turn.
* **Windows default to the last 30 days** where a tool takes `from` and `to`. Say the period
  you want if it matters.
* **One tool call is one API request.** Nothing pages automatically, so ask for the next page
  when you want it. This is also what keeps a runaway loop inside your
  [rate limits](/docs/rate-limits).
* **Anything that runs a model returns a status to poll.** If your assistant reports an empty
  result immediately, it answered before the work finished. Ask it to poll.
