PETER DIRICKSON
beta

Farol

The lighthouse over every site.

An internal SEO agent that watches every Frenti site — GA4 + Search Console in, LLM-judged issues out, triage routed to editors.

The wager

Farol bets that the SEO and content-health work across a portfolio of sites can be an agent's job, not a recurring human chore.

Every Frenti product — Pico, AskBahia, BonVivant — is a content site, and content sites rot quietly. A meta description goes missing on fourteen pages. A landing post stalls in the rankings. CLS spikes on mobile after a layout change. An internal link orphans a hotel page nobody can reach from the destination index. None of these page-fault loudly; they just bleed traffic until someone notices.

Farol is the someone. It's named for a lighthouse: a single vantage point watching every site at once, sweeping for trouble, and flagging it before it costs anything. The wager is that the watching, the judging, and the triage can run as an agent — and that a one-person studio can hold a growing portfolio to a real content-quality bar without hiring an SEO team.

How it's built

Farol pulls from two telemetry sources and adds a third signal of its own.

The two inputs are GA4 (behavioral — sessions, CTR, engagement) and Google Search Console (search-side — impressions, position, indexing). Together they answer "what's happening to this page in the wild." The third signal is Farol's own LLM-as-judge pass over the content itself — the same judge methodology that gates AskBahia and Pico, turned inward on the published corpus. Each site carries a judge score against a 0.75 threshold; anything that drifts below is flagged for a fix rather than silently decaying.

From those signals Farol assembles an issue queue — one ranked list across all sites. Each issue is a concrete, addressable defect with a path, a severity, an age, and a short history sparkline so you can see whether it's getting worse or recovering. The classes it surfaces:

  • Missing or duplicate metadata — a hero image without alt text, a meta description duplicated across a slug family
  • Structured-data gaps — schema.org missing geo coordinates on a place page
  • Performance regressions — a CLS spike on mobile after a deploy
  • Link-graph holes — an orphan page with no inbound links from the section that should own it
  • Content drift — a post whose judge score has slipped under threshold

The last step closes the loop. The watcher does the watching and the judging; a separate content-editor agent drafts the fix — a corrected meta description, an added alt attribute, a schema patch — and presents it as a reviewable diff. A human still approves before anything ships; they approve a change rather than author it from scratch. That boundary is deliberate: the same grounding discipline that keeps the chat from inventing facts keeps Farol from shipping to a live page on its own authority. The agent proposes; the editor-at-the-gate decides.

What's working

The judge-score trend runs daily across the live sites, scored against the 0.75 threshold, with a seven-day delta so a slow slide shows up before it becomes a cliff. When a site drops under threshold — AskBahia dipping on a stalled Trancoso post, say — it surfaces at the top of the queue, flagged for review, not buried in a dashboard nobody opens.

The issue queue is the day-to-day artifact: a single triage list spanning every site, sorted by severity and freshness, each row carrying its own history so the trend is legible at a glance. One pane of glass over the whole portfolio replaces the alternative — logging into three separate Search Console properties and three GA4 views and reconciling them by hand.

A sample of Farol's output is wired into the Workshop on this site, and it's also the first entry on the agentic work page. It's the same pattern as the product pipelines — telemetry in, judge in the middle, agent drafting the fix, human at the gate — pointed at the products instead of at content generation. Same editor-at-the-gate boundary as the chat that won't invent facts, less manual typing.

What's next

Farol is the youngest of the agents and still the most internal. With the loop closed — watcher, judge, content-editor agent, human approval — the open directions are about widening it, not completing it.

The first is coverage: more sites as the portfolio grows, and more issue classes as the catalog of "ways a content site rots" gets longer. Every new Frenti product is another site Farol watches the day it ships.

The second is batching the diffs: today the content-editor agent drafts one fix at a time, but most defects travel in families — a meta description duplicated across fourteen slugs is fourteen near-identical diffs to approve. The next step is proposing the family as a single reviewable change, so the editor approves the pattern once instead of fourteen times. Same gate, fewer clicks.

The thesis is the same one that runs through everything here. The leverage isn't in doing the SEO work faster — it's in building the system that does the watching, so the one-person studio scales without the quality bar dropping.

Want to build something like this?

I take on select projects through Frenti.

Get in touch