Build or buy assessment

OpenSEO is a good tool that solves a problem we already solved.

It has 8,904 GitHub stars, an MIT license, and genuinely careful engineering. It is also an interface sitting on top of a data API anyone can rent, it reads two AI surfaces where we sell seven, and it cannot deploy a single fix to a client site. Recommendation: do not adopt it as a platform. Take three ideas from it and keep moving.

Repo age
0 months
Version
0.1.2
MCP tools
0
AI surfaces
0 of 7
Verdict
BORROW
Waiting
What it actually is

Strip the marketing and OpenSEO is a control panel for someone else's data.

Every number OpenSEO shows you comes from DataForSEO, a wholesale SEO data provider that sells search volumes, backlink records, and SERP results by the API call. OpenSEO owns no crawler, no link index, and no keyword database. It ships a dependency called dataforseo-client and a required environment variable called DATAFORSEO_API_KEY, and without that key the product returns nothing at all.

This is not a criticism of the engineering. It is the single most important fact for our decision, because it means the question is not "is OpenSEO's data good." The question is "is DataForSEO's data good," and that is a question we can answer without OpenSEO by simply buying a DataForSEO key ourselves. What OpenSEO adds on top is a modern interface, an agent connection, and a 28 percent markup if we use their hosted version.

The stack, honestly described
1

DataForSEO sells the data

Keyword volumes, backlink profiles, SERP positions, local listings, and the AI mention database. This is the actual product. It is a commodity that any company can buy.

2

OpenSEO wraps it in an interface

A React and Cloudflare Workers application with dashboards for keyword research, rank tracking, backlinks, site audits, and Google Search Console. Clean, focused, genuinely well built.

3

OpenSEO exposes it to AI agents

An MCP server with 24 tools plus 7 published agent skills, so Claude Code or a similar agent can pull real SEO numbers instead of guessing at them. This layer is the actual innovation.

4

Nothing writes anything anywhere

OpenSEO reads, measures, and reports. It cannot publish a page, fix a tag, post to a listing, submit a citation, or deploy a change to a client site. It is a diagnosis tool with no treatment layer.

The honest one line: OpenSEO is Ahrefs' dashboard without Ahrefs' index, plus an agent connection nobody else shipped this well.
Waiting
Claims against evidence

Six claims, checked one at a time against what is actually in the repository.

These are the project's own words from its README and pricing page, set beside what the source code, the issue tracker, and independent reviews support. Nothing here is inferred from reputation.

The claimVerdictWhat the evidence actually shows
"Open source alternative to Semrush and Ahrefs" Partly true Genuinely open source and MIT licensed, and the workflows do overlap. But Semrush and Ahrefs own proprietary crawlers and link indexes worth hundreds of millions in infrastructure. OpenSEO rents its data. It replaces their interface, not their index.
"Best in class MCP and AI Skills" Supported Verified in source: 24 registered MCP tools, a full OAuth provider, output schema validation tests, and 7 documented agent skills. No competing SEO platform ships anything comparable today. Unbenchmarked, because there is nothing to benchmark it against.
Site audits detect real technical problems Proven The strongest evidence in the entire project. They built badseo.dev, a deliberately broken website used as a test fixture. Every page declares which issues it should trigger, and an automated harness verifies the crawler catches exactly those. Very few commercial SEO vendors can show this.
Data accuracy comparable to the incumbents Not proven No published benchmark exists. Not one head to head volume or backlink comparison against Ahrefs or Semrush anywhere in the repo, the docs, or the marketing. An independent review states plainly that backlink depth is limited by DataForSEO and cannot match the Ahrefs crawler on link forensics.
"AI Visibility" as a headline workflow Overstated The source defines its platform list as ChatGPT and Google AI Overviews only, and a code comment notes the ChatGPT mention database contains US and English data only. Gemini, Perplexity, Claude, Grok, and Copilot are not queried. See the section below.
Self hosting works on Docker or Cloudflare With friction Both paths are documented in detail. But two open issues report authentication failing despite correct configuration, and a third confirms Docker does not forward the AI provider key into the container, which breaks a documented feature in exactly the deployment we would use.
Waiting
Where the proof is real

One thing in this repository is better than what most paid tools can show you.

You asked whether the proof is there. For most of the product the answer is no, there is no accuracy proof. For the site audit engine specifically, the answer is yes, and the method is worth understanding because we should copy it.

badseo.dev, the adversarial test site

They built an entire website designed to be broken on purpose. Missing titles. Redirect loops. Orphaned pages. Thin content. Each page carries a declaration of which specific audit issues it is supposed to trigger, and an automated harness runs the real crawler against it and verifies the tool catches exactly those problems and no others.

In their own words, a new fixture is a new regression test. That converts SEO tool quality from a marketing claim into a pass or fail gate that runs before every release. Semrush cannot show you this. Ahrefs cannot show you this. We cannot currently show it either.

Does the audit engine work? Yes, and they can prove it on demand. That is the only claim in the project with a hard proof behind it.
Verified

The code is serious

TanStack Start, Cloudflare Workers, Drizzle, better-auth, typed end to end. A continuous integration gate runs formatting, dead code detection, full type checking, and type aware linting on every change. This is not a weekend project.

Verified

Tests sit beside the code

Test files are colocated throughout, including 9 in the MCP tools folder alone and 5 in the AI search services. A July pull request reports 749 tests passing, which is their number rather than one we independently ran.

Verified

They file their own bugs

The open issues include precise self reported correctness defects written by the maintainers. That transparency is genuinely admirable. It also tells us exactly what was wrong, which is the next section.

Engineering confidence, scored
Code quality and toolingStrong
Site audit correctness proofStrong
Agent and MCP designStrong
Reporting math reliabilityShaky right now
Data accuracy evidenceAbsent
Fit for a multi client agencyPoor
The pattern is consistent. The engineering is trustworthy. The numbers it produces are not yet.
Waiting
Where it breaks

In the last week they fixed five bugs that each produce a wrong number on a client report.

These are real entries from the issue tracker, filed within days of this review. Read them as a class, not as individual defects, because the class is what matters: the reporting math has been wrong in ways that would have shipped to a client without anyone noticing.

DefectWhat it didWhat it would cost us
Local search radiusPassed the radius in meters where the API expected kilometers, making every local search 1,000 times too small.A local visibility check that silently returns almost nothing, read as "no competitors found".
Rank summary countingCounted each keyword once per device, so the scorecard reported more top ten keywords than the client actually tracks.Inflated ranking wins on a client report. The worst possible category of error for us.
Keyword refresh countReported the number of rows the provider returned rather than the number actually written to the database.Claiming keywords are tracked that are not being tracked.
Null metric filteringRows with missing values passed through filters that were supposed to exclude them.Empty data presented as real data.
Leap day rangeA one year backlink lookback ending on February 29 rolled forward incorrectly and shortened the range.A quietly wrong trend line.

To be fair, and this matters: they found these themselves and published them. Most vendors ship the same bugs and never tell you. A tool that publicly logs its own counting errors is more honest than one that does not. But honesty about defects is not the same as absence of defects, and at version 0.1.2, five months old, we would be putting our client reporting downstream of math that is still being corrected weekly.

Concentration risk

One person wrote 93 percent of it

Of roughly 402 recorded contributions, a single maintainer accounts for 375. The other 16 contributors have contributed between 1 and 5 changes each. The bus factor is one. If that person moves on, the project stalls regardless of star count.

Attention, not adoption

8,904 stars but only 26 watchers

Stars are cheap and follow launch publicity. Watchers are people who want to be notified of every change, which is what real operational dependence looks like. A ratio this wide says a viral Product Hunt launch, not a base of practitioners running it daily.

Waiting
The gap that matters most to us

We sell visibility across seven AI platforms. OpenSEO reads two of them.

This is the finding that decides it. Our entire positioning is that when a homeowner asks any assistant for a plumber, our client's name comes up. OpenSEO's AI visibility feature defines its platform list in code as ChatGPT and Google AI Overviews, and a comment in the same file notes that the ChatGPT mention data covers the United States and English only.

Platform coverage against our promise
ChatGPT
Google AI Overviews
Gemini
Perplexity
Claude
Grok
Copilot

Adopting OpenSEO for AI visibility would mean going backwards on the one thing that separates us from every agency still optimizing for Google alone. We would be paying to see less than we can already see.

Coverage against the SwarmSystem promise: 0 percent. Two surfaces lit out of seven sold.

And the two it does read are the expensive ones

OpenSEO's own pricing page puts a brand check at about $1.09 each. An independent review is blunt about the consequence: AI brand checks drain a $10 balance quickly. The next section runs that math at our actual scale.

Waiting
The math at our scale

Cheap for one website. Unpredictable across a client book.

The per unit prices below are OpenSEO's published numbers. The monthly totals are arithmetic on those numbers using a stated assumption of 20 tracked AI prompts per client, refreshed monthly. Change the assumption and the totals move, but the shape does not.

$0.05
Per keyword lookup
Genuinely cheap. This is the part that is good value.
$0.08
Per backlink overview
One domain, one year of history. Also cheap.
$1.09
Per AI brand check
Twenty two times the cost of a keyword lookup. This is the line item that breaks.
28%
Hosted markup
What they add to every DataForSEO call on the hosted plan, by their own README.
AI brand checks, monthly, at 20 prompts per client
1 client$21.80
5 clients$109
10 clients$218
25 clients$545

Assumption stated plainly: 20 tracked prompts per client, one refresh per month, at OpenSEO's published $1.09 per brand check. Weekly refreshes multiply every figure by roughly four. This covers two AI surfaces, not seven.

At 25 clients on a monthly refresh: $545 a month to watch two platforms. Our current stack already covers more than that under a plan we are paying for.
Usage billing gets unpredictable for agencies running daily rank tracking across many client sites. Skip if you manage 30 or more client sites with daily tracking. Independent review, MakerStack, 2026

That is a direct description of our operating profile, written by a reviewer who liked the product and still recommended that businesses like ours avoid it. When a favourable review names your exact use case as the disqualifying one, that is worth more than any feature comparison.

Waiting
Against what we already run

The decisive difference is not features. It is that we sell fulfillment and OpenSEO cannot fulfill.

Our stack does not just tell a client what is wrong. It deploys the fix, posts to the listing, submits the citation, publishes the article, and reports the revenue. OpenSEO stops at the diagnosis. Every row below marked as missing is not a gap we would tolerate, it is a service we currently bill for.

CapabilityOpenSEOWhat this means for us
Keyword research and rank trackingHas itReal overlap. Cheaper per call than most, and the MCP access is better than ours.
Backlink analysisShallowerLimited by the DataForSEO index. Fine for a sanity check, not for link forensics.
Technical site auditHas it, provenThe strongest module. Genuinely well tested against a purpose built broken site.
Deploying fixes to a live siteNoneThis is the core of what we deliver. OpenSEO has no write path to a client website at all.
Google Business Profile managementRead onlyIt can look up local listings. It cannot post, respond to a review, or update a profile.
Citation building and submissionNoneA paid deliverable in every one of our tiers. Not present.
Local grid rank heatmapsNoneOne of the clearest visuals we put in front of a home service owner.
Content generation and publishingNoneThe engine behind our higher tiers. Not present in any form.
AI visibility across seven platformsTwo onlyOur headline differentiator, reduced by more than two thirds.
White label client reportingNoneNo multi tenant client reporting and no branded output. Our reports are the product.
MCP server for agentsExcellentThe one area where OpenSEO is ahead of where most tools are, ours included.

On building our own instead

OpenSEO already answered this question for us, and the answer is instructive. They did not build a search index either. A team good enough to build an adversarial regression fixture for their crawler still concluded that renting wholesale data was the only sane path. Nobody in this category builds the index. Everybody rents one.

So the build or buy question was never about data access. We already rent data, through a provider that is more deeply integrated with our delivery than DataForSEO is. The thing worth building is the layer OpenSEO does not have: the deploy path, the local and listings layer, and the client reporting. We are already building exactly that, which means the correct read of this repository is confirmation of our direction rather than a reason to change it.

Waiting
What to take

It is MIT licensed. Three ideas here are free and worth having.

Not adopting the platform does not mean walking away empty handed. The license permits us to read, copy, and adapt anything in the repository. These three are the ones that would actually change how we work.

1

Build our own badseo

A deliberately broken site that declares which issues each page should trigger, wired to an automated harness. Point it at our own audit and clone tooling and we get a hard pass or fail gate on quality instead of a judgment call. This is the single most valuable idea in the repository, and it is a methodology rather than code, so there is nothing to install. It would also give us something to show a skeptical prospect that no competitor can match.

2

Copy the MCP and skills separation

Their architecture keeps the MCP server as the data access layer and ships agent skills as separate instruction files that use it. Data access and workflow stay decoupled, so a new workflow does not require touching the tools. It is a clean reference implementation of the pattern we are already moving toward, and reading 24 well made tool definitions is a cheap way to sharpen ours.

3

Adopt the public defect log

They publish their own counting errors in plain language before anyone catches them. Applied to our client reporting, a visible log of what we found wrong in our own numbers and when we fixed it is a trust asset, not a liability. It fits the transparency first positioning better than anything on our site does today.

The one place adoption might make sense

There is a narrow case worth naming. At roughly $0.05 per keyword lookup and $0.08 per backlink overview, raw DataForSEO pulls are cheap. If we are ever doing volume research that our current plan meters or bills separately, going direct to DataForSEO would be less expensive.

But note what that argument actually concludes. It is an argument for a DataForSEO key, not for OpenSEO. We would be buying the data layer and skipping the interface, because the interface is the part we do not need.

Cost of testing this properly: the $0.50 trial credit, which buys roughly twenty keyword lookups. Enough to check whether the data holds up in home services before anyone commits further.
Waiting
The call

Borrow the ideas. Do not move the business onto it.

Do not

Adopt it as a platform

Two AI surfaces against the seven we sell, no deploy path, no listings management, no citations, no content engine, no client reporting. It cannot carry our delivery model, and the fit gets worse as the client book grows.

Do not

Build our own version of it

OpenSEO did not build the index and neither should we. The category rents wholesale data. Our advantage is the fulfillment layer above it, which is where the effort belongs.

Do

Take the test fixture idea

A broken site that proves our audit and clone tooling catches what it claims to catch. Free, methodology only, and it produces a proof asset no competitor in home services can currently show a prospect.

The honest summary in four lines

Is it real? Yes. The code is serious, the audit engine is provably tested, and the agent layer is the best in the category.

Is the proof there that it works? For site audits, yes, and better than the paid incumbents can show. For data accuracy, no. There is no published comparison against anyone, and the reporting math has been visibly wrong within the last week.

Does the model make sense versus building our own? The model makes sense and we should not build our own. But that conclusion points at renting data, which we already do, through a provider wired more deeply into how we actually deliver.

Should we use it? No, not as a platform. Spend the $0.50 trial to sanity check DataForSEO's home services data, take the three ideas, and keep building the layer OpenSEO does not have.

SELF CHECK: 0 tokens · 0 em dashes · 0 console errors · 0 sources · PENDING