Foreword

We have a really short demo but TRY IT OUT, this is fully working and a free tool now, just plug and play your github! http://synapsecro.fly.dev

Inspiration

Local businesses rank #3 for "plumber Hackney" and never know it. They lose the click to whoever's above them, and the fix sits in a backlog until someone remembers to hire an SEO.

At the limit anyone can create a website by vibe coding but how do they actually get noticed.

What it does

SynapseCRO runs the full loop for local SEO + CRO:

Audit: URL in, agent out. SERP rank, page scrape, social profiles, PageSpeed, competitors, scored findings. Deliver fixes: GitHub PR for sites with source code. Fix pack (copy-paste titles, schema, platform playbooks) for Wix, Webflow, Squarespace. Close the loop: Visitor audits become leads. Outreach hooks write themselves. Stale leads get re-audited weekly. Landing copy rewrites from live click data over Supabase Realtime. Hands off. The cron runs whether you're at the keyboard or not.

 How we built it

The research agent is Gemini with tools: Tavily for SERP, Cheerio for on-page signals, PageSpeed Insights for CWV. Findings land in Postgres; patterns (recurring issues, rank drift, conversion) go to ClickHouse and feed back into prompts via Langfuse traces.

GitHub App handles per-user installation tokens and auto-PRs. No-code sites get an LLM-generated fix pack stored in audit_fix_packs. Built the whole thing in Cursor.

Challenges we ran into

Two delivery paths, one audit. Code sites want PRs; Wix sites want "paste this in Site Settings → SEO." Same findings, different output — platform detection + fix pack generation on top of the existing PR pipeline.

Agent cost vs depth. Full audits scrape 8 pages, run 12 tool turns, call Gemini multiple times. We added light research (SERP-only, no LLM) for volume outreach and full audits on demand.

ClickHouse. Dual-write events, materialised views for hourly conversion, SEO insight memory that actually changes the next prompt: not a dashboard nobody opens, stats can be viewed at: https://synapsecro.fly.dev/clickhouse

Schema drift in prod. Squashed migrations, repair scripts, health checks that fail loud when audit_fix_packs doesn't exist yet.

Accomplishments that we're proud of

Free audit → email → lead → optional auto-PR, zero manual steps ClickHouse remembers which findings survive re-audits and nudges the agent next time Prompt self-improvement: bad eval scores → proposed prompt revision → GitHub PR against our own repo. Full working autonomously with minimal user intervention and self-learning as well as cold emailing leads who have bad SEO, in negotiations with prices. Proven to improve SEO on my personal website!!!!!

Live at synapsecro.fly.dev

What we learned

Audits are easy to generate. Shipping the fix is the product. Prospects don't want a PDF, they want a PR they can merge, or text they can paste before lunch.

Rank-anchored outreach ("you're #3 for X") beats generic SEO spam every time. If you can't cite one true thing about their site, don't send the email.

Memory matters. An audit without history is a one-off report. ClickHouse + Langfuse turned "we found this again" into prompt context that actually changes the next run.

What's next for SynapseCRO

Platform APIs: Webflow and Shopify OAuth so fix packs become one-click apply, not copy-paste Prove ROI — re-audit diff: "you were #4, now #2, here's what we changed" and signing more customers.

Sponsor Section

ClickHouse: https://synapsecro.fly.dev/clickhouse Every audit and re-audit writes to ClickHouse: recurring findings, rank drift, LCP history, eval scores, and the next run reads that memory back in before the agent touches a page, so it re-verifies what still isn’t fixed instead of starting cold. That closed loop is the product: Postgres stores today’s audit; ClickHouse is how SynapseCRO re-learns what this business keeps getting wrong and feeds it into research, CRO copy rewrites, and GitHub PR prompts until the issue actually closes.

Cursor SynapseCRO was built end-to-end in Cursor — research agent, ClickHouse memory, GitHub auto-PRs, no-code fix packs, Fly deploy — using Agent to ship features while we focused on the product loop, not boilerplate. We entered the “hands-off” track and meant it twice: Cursor built the product; the product runs audits, fixes, and re-audits without anyone at the keyboard.

Tavily Tavily is wired into the core product path, not a demo stub: lead discovery finds London rank-3/4 prospects from live SERP, the research agent calls it for competitors and social profile search, and outreach hooks cite real rank data from those results. Without Tavily we’d be faking search; with it every audit and cold email starts from one true observation about where that business actually ranks.

Built With

  • anthropic-api
  • auth
  • cheerio
  • clickhouse
  • docker
  • firecrawl-api
  • fly.io
  • github
  • github-app-api
  • google-gemini-api
  • google-pagespeed-insights-api
  • javascript
  • langfuse
  • next.js-16
  • node.js
  • opentelemetry
  • react-19
  • realtime)
  • resend-api
  • slack-webhooks
  • supabase-(postgres
  • tailwind-css
  • tavily-api
  • typescript
  • vercel-ai-sdk
  • zod
Share this project:

Updates