All documentation

Growth Advisor

A weekly written briefing that reads your search and traffic numbers alongside outside research, and says what to do next.

Growth Advisor briefing showing where you stand against competitors, social account notes, and a numbered list of next actions

What this is

Growth Advisor is a written business briefing built by having a model research your business on the open web, then read that research back against your own recent numbers and say where you stand and what to do next (api/services/growth_advisor.py#run_growth_briefing). It is gated on your plan; see Pricing.

Two phases, one continuous run

A briefing runs in two steps under a single request. Phase one is free-form web research: given up to about 30 minutes, the model researches the business and its named social accounts and returns a single block of prose, not a fixed shape. Phase two reads that research brief alongside your own metrics and rewrites it into four fixed narrative fields: a headline, where the business stands, how its social accounts are doing, and what to do next. The row stays in a "running" state for the whole run; the screen shows one banner throughout, with no separate signal that phase two has started, and the run keeps going if you leave the page (frontend/src/routes/(app)/growth-advisor/+page.svelte#isRunning, api/services/growth_advisor.py#RESEARCH_WRAPPER_SCHEMA, api/services/growth_advisor.py#BRIEFING_SCHEMA, api/services/growth_advisor.py#run_growth_briefing).

Written by a model, not derived

This is the opposite of Weekly report: that report never calls a language model, and this one is a language model from end to end. The four sections you read are not formulas over your numbers; they are prose a model wrote from a prompt, with your own data and everything it read on the open web framed in that prompt as data to reason about, not as instructions to follow (api/services/growth_advisor.py#build_briefing_prompt). Phase one's own research text is written to the row but never shown on screen; what reaches you is phase two's rewrite of it. Nothing in the output is a number you can trace back to one stored figure the way a citation rate or a click count is: it is a narrative, grounded in real inputs, not a computed one.

What feeds it

Both phases receive the same business identity block: your project's name, URL, business type, description, and goal (api/services/growth_advisor.py#_business_block). Of those, goal is the field written specifically for this: a short, current statement of what you are actually trying to achieve reaches both prompts verbatim, so a specific goal gives the model something concrete to weigh recommendations against, where a blank or generic one gives it nothing to prioritize (#build_research_prompt, #build_briefing_prompt).

Both phases also receive the same block of your own platform-measured numbers from the last 28 days: Search Console clicks, impressions, click-through rate, and average position, and Google Analytics sessions, conversions, conversion value, and channel mix, with a source's block left out entirely when that source has no data for the project (api/services/growth_advisor.py#assemble_internal_metrics, #METRICS_WINDOW_DAYS, #build_metrics_block). These are the same kinds of figures behind Search performance and Traffic, summed over a fixed window rather than broken out by query or page.

The two prompts differ in what else they carry. Phase one alone receives whichever social accounts you have added, and phase two never sees that list, only whatever phase one's research wrote about them; phase two alone receives phase one's research brief (#build_research_prompt, #build_briefing_prompt).

Requesting one, and what's already running

"New briefing" starts a run if the project owner's plan includes the Growth Advisor; otherwise the request is rejected before anything starts (api/routers/growth_advisor.py#trigger_briefing). Editors and owners can start one; a viewer sees "New briefing" disabled, with a line above it saying view-only access is why, rather than a request the API would refuse (frontend/src/routes/(app)/growth-advisor/+page.svelte#writable). Only one briefing can be running for a project at a time, and the next is blocked for 24 hours from the moment the last one started, not from when it finished, which is one briefing per project per day (#_trigger_block_reason, #TRIGGER_COOLDOWN_HOURS). Separately, a project can be opted into a weekly automatic refresh, a project setting with no control in the app today, set through the API (api/routers/projects.py#update_project): a systemd timer fires every Monday at 05:00 UTC and enqueues one briefing for every opted-in project that is itself active, whose owner is active and on a paid plan, and that has no briefing already running or created in the last 7 days, so triggering one yourself pushes that project's next automatic briefing back rather than producing two in the same week (discoveredby-cli@enqueue-growth-advisor-refresh.timer, api/tasks.py#_enqueue_growth_advisor_refresh_for_eligible_projects, #GROWTH_ADVISOR_REFRESH_INTERVAL_DAYS, api/tasks.py#generate_growth_briefing_task).

What's on the screen

A succeeded briefing opens on its headline, then whichever of the three sections, where you stand, your social accounts, what to do next, actually came back with something written in it; a run that returned none of the three says so rather than showing three empty headings (frontend/src/routes/(app)/growth-advisor/+page.svelte#sections). A failed run keeps its row rather than being dropped, with the failure shown in place of the sections. Once more than one briefing exists, a dropdown switches between them by the date each was generated.

  • Weekly report: the other periodic artifact on the account, built from your own numbers with no model involved, unlike this one
  • Search performance: where the search figures in this briefing's metrics block come from
  • Traffic: where the traffic figures in this briefing's metrics block come from

Last verified 2026-08-11

Start monitoring your AI visibility.

See how AI search engines talk about your brand.

Free to start. No credit card required.