When someone asks an AI to recommend a business like yours, it can only put forward what it can find and verify. Herald measures whether you meet those conditions, scores the five things that decide it, and tells you exactly what to fix. Every fix is a change to your own genuine information.
There is a version of this service that buys visibility — seeded content, invented reviews, astroturfed citations, pages written to be scraped rather than read. It works for a while, and it is fraud aimed at whoever is asking the question.
We also build Corroborate, which exists to detect manufactured consensus — it scores per distinct domain precisely so syndication can't inflate agreement. Selling the disease and the test is not a business we're willing to be in. Herald only ever improves information that is already true about you.
A retrieval system recommends a business when it can find a clear statement of what that business does, corroborated by sources genuinely independent of each other, agreeing on the basics, and specific enough to match a real question.
Three of the five conditions are measured from your page alone — no third party, no model in the path, same input and same score every time. The other two need to see the wider web. When that lookup isn't available, Herald reports them as unmeasured and drops them from the score rather than assuming the worst. Every result tells you how much of the picture it actually saw, as measured_of_total. Marking you down for evidence nobody went looking for would be the same failure as inventing it.
/audit is open and stateless — point it at any public URL and it returns the score, the five dimensions, and the findings. Nothing is stored.
$ curl -s https://herald.forthecommongood.ai/audit \
-H 'content-type: application/json' \
-d '{"url":"https://example.com","name":"Example Co"}'
Findings come back worst-first, each with the concrete change that would fix it. Track a business over time and Herald reports the movement between its first audit and its latest — which is the only honest way to claim this work did anything.
POST /auditscore any public URL, statelessGET /dimensionswhat is measured and why, as dataGET /businessesthe tracked listPOST /businessestrack a business · keyPOST /businesses/{id}/scanaudit and record it · keyGET /businesses/{id}/historyevery audit, plus the movement