What Fimo has today
Agents are teammates with one job each: a chat, routines that run alone, their own memory, and a skill that holds the know-how.
Short answer
Yes, we have memory: three levels of notes plus data files that scripts save and compare. No, we do not track AI answers or competitors yet: those routines are in the catalog as "Needs data". The model to build them already exists. Most of the ideas become routines on agents we already ship, not new agents.
The 4 agents
SEO and GEO start with every project; Content and Quality open from the + menu
Each routine checks the site with scripts first and calls the model only when there is something to fix or ask, so a quiet day costs almost nothing. Fixes wait on the Branch until someone publishes. Blue routines ship today. Orange ones are in the catalog as "Needs data".
SEO · ranks on Google
GEO · quoted by AI assistants
Content · keeps pages true
Quality · works for every visitor
Q · Don't we have memory already?
Yes: three levels of notes, and data files for exact numbers
"Each run starts from zero" in the first recap was wrong. Every run loads its notes, and what one routine learns, the others can read. A person's answer is saved so the routine never asks twice. Exact data, such as a crawl snapshot, goes to a data file that a script saves and reloads without the model reading it.
flowchart TB P[Project MEMORY.md<br/>+ topic files<br/>rules for every chat] P --> A[agents/seo/MEMORY.md<br/>shared by SEO chat and routines] A --> R[routines/seo-monitoring/NOTES.md<br/>answers, values to compare] R -.-> D[(snapshot.txt<br/>data file · script only<br/>1 MB each · 10 MB per project)]
When routines wake
Schedules today; events exist, but templates cannot ship them yet
A routine can already wake on a site event (an edit, a publish, a merge) when someone writes the trigger in plain words. The default templates still use only schedules: FIMO-2809 adds stored event rules to templates. The catalog also lists three "when we notice" triggers that nothing fires yet.
Daily, weekly or monthly cron in every template.
Content, code, assets, locales, schema, forms, publish, merge, routine finished. Grouped per minute, once per chain, ordered by a planner.
FIMO-2809. Then default routines can wake on an edit instead of every day.
In the catalog as triggers. No data source fires them.
What is waiting
Seven routines in the catalog say "Needs data". Two of the data sources are already in Fimo.
Finding
The catalog says AI visibility needs "Profound or Peec" and keyword research needs "Semrush". But agents can already call Semrush, Ahrefs and ChatGPT/Perplexity/Gemini answers through the paid data tools (dataCall). So two blockers are product decisions, not integrations. Only Search Console is truly missing.
Unlock map
Search Console unlocks the most; the data tools unlock the rest now
Each arrow goes from a data source to the routines or triggers it unblocks. Search Console is free for the site owner but needs a Google login and a new integration. The data tools cost credits per call, charged to the run.
flowchart LR GSC[Search Console<br/>not built · free]:::miss DT[Data tools<br/>Semrush · Ahrefs · AI answers<br/>already in Fimo]:::have BG[Brand guidelines<br/>from the team]:::miss GSC --> K[SEO · Keywords<br/>page 2 → 1] GSC --> C[SEO · Competing pages] GSC --> T[Trigger: traffic drops<br/>wakes 6 routines] DT --> V[GEO · AI visibility] DT --> KR[SEO · Keyword research] DT --> CO[Content · Competitors] KR --> W[Content · Writing<br/>needs briefs] BG --> B[Quality · Brand] classDef have fill:#123a2c,stroke:#3fbf86,color:#e8edf3 classDef miss fill:#3a2412,stroke:#f0a35e,color:#e8edf3
The rule that shapes everything
"An agent that only reports is a dashboard, not an agent"
The fimo-agents skill says a routine must fix or decide something, and "most runs should end with no message at all". So "track 25 AI questions" or "watch competitors" cannot be routines that only send charts. Each one must end in a fix (auto), a decision (suggest), or silence.
Same data, two kinds of routineOnly the right side fits FimoDashboard · rejected
1ChatGPT cited you in 12/25
2Sanity added 4 pages this week
3(person: "so what do I do?")
Routine · fits
1ChatGPT says your plan is $29.
2It reads /faq, which still says $29.
3Change it to $39? [Yes] [No]
The ideas as routines
Each idea lands on an agent that already exists, with an owner, a trigger, a memory file and its auto / suggest classes.
Recommendation
No new agents. AI answers become the GEO agent's AI visibility routine. Competitor watching becomes a signal that wakes existing routines, not a report. Page 2 → 1 is the SEO agent's Keywords routine once Search Console is connected. Fact check extends Content Refresh.
GEO · AI visibility · the 25 questions
Same questions every week, saved answers, and a fix when an answer is wrong
On its first run, the routine proposes about 25 questions a buyer asks (one decision for the person). It saves them in its NOTES.md. Each week a script asks ChatGPT, Perplexity and Gemini through the data tools and saves the answers as a data file. The model looks only at what changed since last week.
flowchart LR
S([Weekly]) --> Ask[Script asks 25 questions<br/>× 3 assistants]
Ask --> Cmp[Compare with<br/>answers.json data file]
Cmp -->|nothing changed| Q[Quiet]
Cmp -->|wrong fact about us| F{Source is<br/>our page?}
F -->|yes| Sug[suggest: fix the page]
F -->|no| N[note in report]
Cmp -->|competitor cited, not us| Ev[Fire trigger<br/>AI cites a competitor]
Ev --> Cit[GEO · Citation<br/>rewrites the opening]
- NOTES.md
- The 25 questions, the expected facts ("plan: $39")
- answers.json
- Data file · last answers + cited sources
- cost
- 225 asks a week · well under $1 a week at catalog prices
Content · Competitors · what routine is it?
A quiet watcher that wakes the routines that can act
Today's catalog entry asks the person for "up to five competitor addresses" and sends "a weekly summary". Both go against the vision. Instead, competitors are found from Google's top 10 for our searches (Ahrefs via the data tools), and a change fires the a competitor changes trigger. The person only sees a decision from Refresh, Writing or Citation.
flowchart LR W([Weekly]) --> Snap[Script: competitor sitemaps<br/>+ top 10 for our searches] Snap --> Diff[Diff with<br/>competitors.json] Diff -->|no change| Q[Quiet · no model call] Diff -->|change| Tr[Trigger:<br/>a competitor changes] Tr --> R1[Content · Refresh<br/>our comparison page is outdated] Tr --> R2[Content · Writing<br/>new comparison page brief] Tr --> R3[SEO · Keywords<br/>they passed us on a search]
From Google, not typed in. The person can remove one, and the answer is saved so the routine never asks again.
The ranking know-how lives in the skills: what a winning page has (direct answer, facts, freshness, structure).
Prices and claims about competitors are always suggest.
SEO · Keywords · page 2 → 1
Already in the catalog and in the SEO agent's description: it needs Search Console
The SEO template already says: "Once Search Console is connected, you also work the searches each page almost ranks for." The routine takes pages in positions 8–20, compares them with the top 3, and proposes the missing section. A title-only rewrite for a page with few clicks is the Meta tags routine's job, on the traffic trigger.
EXAMPLE · /blog/nextjs-cms · position 12 for "headless cms nextjs"suggest · one decisionTop 3 results have
1Code example 3/3 ✓ we have
2Markdown vs CMS 3/3 ✗ missing
3Deploy steps 2/3 ✗ missing
Decision for the person
1Add a "Markdown or a CMS?" section
2(draft on the Branch, 180 words)
3Recommended. [Add] [Skip]
Content · Refresh · fact check
Refresh already catches dates; give it the team's facts to catch prices too
Refresh finds past years, expired offers and retired product names. Add one project memory topic file, facts.md, with prices, numbers and claims. Then Refresh can also find "$29" on a page when the fact is "$39". Prices are team-owned, so it is always suggest with the exact words.
- Pro plan
- $39 / month (since 2026-09)
- Customers
- 2,000+
- written by
- Any chat, when a person states a fact
- read by
- Refresh, AI visibility, Writing
Experiments · how agents grow
Each change records its baseline; the same routine judges it four weeks later
This is the vision's "Later" step: acting on traffic, not only on what the page says. It needs Search Console numbers. The routine that made a change writes the baseline in its NOTES.md and judges it after four weeks. A win becomes a lesson in the agent's MEMORY.md, so the agent asks less over time.
Order and decisions
Start with what needs no integration, then build Search Console.
Plan
Now: AI visibility (GEO) and the facts file (Content Refresh). Both use only what ships. Next: Search Console, which unlocks Keywords, Competing pages and the traffic trigger. Then: competitor signals and Writing, which need briefs. Each routine change also updates templates.ts, the skill, catalog.ts, the docs and a live E2E on Field Notes.
Order
Three steps, each one unlocks the next
Each box is one routine change. The effort label counts the files the fimo-agents skill says must change together (template, skill, catalog, docs, E2E), plus any new integration. If we skip step 1, the team waits weeks for Search Console before any customer sees a new result.
flowchart LR
subgraph N[Now · no integration]
direction TB
V[GEO · AI visibility] --> Fa[Content · facts.md in Refresh]
end
subgraph X[Next · Search Console]
direction TB
G[Integration + traffic trigger] --> K[SEO · Keywords] --> Cp[SEO · Competing pages]
end
subgraph L[Then]
direction TB
Co[Competitor signal] --> KR[Keyword research] --> W[Content · Writing]
end
N --> X --> L
Routine + script + data file. Change the catalog's "Needs Profound or Peec" to built.
A topic file and a few lines in the fimo-content skill.
OAuth integration, a data source for scripts, the traffic trigger.
New trigger source in the event catalog, plus a script and data file.
Cost
GEO starts with every project, so AI visibility runs for free projects too
The skill asks for an estimate before adding a routine to a default agent. AI visibility is weekly, script-first, and calls the model only when an answer changes. The data calls are the fixed cost. Free projects could get a smaller question list or none.
- runs
- About 4 a month
- data calls
- 225 asks a week · cloro $0.008 per 10 results · under $1 a week
- model
- Only when an answer changed · other routines measure $0.10–0.56 a run
For the team
Four decisions before we start
Each item gives our recommendation. A different answer changes the scope of the first step: for example, choosing Profound adds a paid integration before AI visibility can ship. So we should decide these before anyone starts building.
Recommend the data tools we already have. Revisit if quality is poor.
Recommend a signal that wakes Refresh, Writing and Keywords. No weekly summary.
Recommend: the routine proposes them once, the person edits, the list stays fixed.
Recommend a short list (5 questions) on Free, the full list on paid plans.