Hangar, Nov 2-9: teaching the agent SEO growth and AI citations

LunarCrush · Running nightly on the VPS; weekly AI citation baseline set

A competitor tool sparked a build: a nightly search trend agent, an SEO audit that finally files its own tickets, and a weekly benchmark of whether AI assistants name LunarCrush. Plus everything that broke on the way to the server.

It started with a tool I ran into on November 2: Conqueror, a product that audits a site and turns search problems into prioritized work. Instead of adopting another subscription, I asked a more useful question: which of its ideas does Hangar, the agent host I run, not do yet? The answer became a week of work.

What Hangar already had, asleep

The nightly SEO audit existed but ran in review-only mode: every night it read the search report, wrote findings to a log and created no tickets. It had been stopped on purpose when the search data integration landed, and nobody had flipped it back. The ticket-creating version was already sitting in the repository. That is its own small lesson: before building anything, read what the system already does, because the first "missing feature" was a disabled one.

What got built

Three agents from the Conqueror list, written and tested locally first (17 new tests on top of the existing suites, full typecheck clean):

  • A nightly refresh agent that compares the last 28 days of search data with the previous 28 and only flags real declines, so the work queue tracks trends instead of noise.
  • The SEO audit switched on for real: it now opens tickets from what it finds.
  • A weekly AI citations run: ten buyer-style questions asked to two AI assistants, measuring two things per question, whether they name LunarCrush and whether they cite lunarcrush.com.

The citations run taught me a measurement lesson immediately. On my machine, one assistant named us in ten out of ten questions. From the server, with no personal history behind the account, the first clean baseline came back lower: seven of ten names and four citations for one assistant, nine of ten names (always first) and seven citations for the other. The local number was flattering and wrong; the server number is the one worth comparing week over week. By the November 9 run the same measurement had moved to nine of ten and ten of ten names. The weakest questions in the baseline, the ones where competitors get named first, are now the explicit candidates for targeted content work.

What broke on the way

Deployment was the usual humbling sequence. The first production run opened six tickets, and four of them pointed at individual creator pages, exactly the kind of one-off that a single template fix would cover. So the rule changed: pages generated from the same template now group into one ticket per template, and the stray duplicates were canceled with a comment pointing at the original. A later run produced exactly one template ticket and no duplicates, which is what correct looks like.

Then the assistant runtime on the server turned out to be unusable: an old version with a model configuration the provider no longer accepts, which had also silently broken the account Hangar itself uses for deliveries. The updater failed once more because the installer ran from a directory the agent user cannot read. Running it from a neutral directory fixed the update, the model configuration was rewritten with a backup kept, and the weekly run started answering from the server. One fix repaired two systems, the benchmark and the host's own delivery account.

Where it stands

The search trend agent runs nightly, the audit opens tickets at template level, and the AI answers run weekly from the server, with results arriving as a summary plus a detailed report. The motivation behind all of it, recovering search traffic that had been sliding, is moving in the right direction; the specific numbers stay internal. The open question is the next layer up: the tooling can now say where we are weak, and deciding which of those weaknesses deserve real content is editorial work, not agent work.

I worked this with Claude Code on my machine; Hangar executes it on the server.

This entry is part of the Hangar story.

Hangar

Nicolás Bañados