Mercury Apex is Mercury Technology Solutions' competitive intelligence product. It watches competitor pages on a cadence, diffs real content changes, weaves every signal into a context graph, and delivers a morning brief with a recommended move. Lens is the console: one graph, a feed, a brief. Apex does not scrape review sites.
Competitive intelligence, competitor page watching, content diffs, context graphs, morning briefs, operator-facing CI
Mercury Technology Solutions, Mercury Apex, Mercury Lens, competitive intelligence, context graph
[ SYS: MERCURY_APEX // STATUS: LENS ]
Day 30 should be
smarter than day 1.
Mercury Apex watches your competitors on a cadence, diffs what actually changed, and weaves every signal into a context graph. The brief in the morning is not a digest. It is a recommendation — with the snapshot it came from.
Demo graph. Run the watcher to replace it with live intel.
Move: update the TCO one-pager today.
What Mercury Apex is
Mercury Apex is competitive intelligence that remembers. A watcher fetches the pages you name. A diff tells you that something moved. A graph is where the product actually starts: every signal is a node, every shared entity is an edge. Lens is the console — one graph, a feed, a brief. The gathering is easy. The connecting is expensive.
- Apex watches the pages you name, diffs real changes, and weaves every signal into a context graph.
- The morning brief is a recommended move with a citation — not a digest of everything.
- Day 30 is denser than day 1 because the graph remembers. Monday is a continuation.
- Lens is the console: one graph, a signals feed, a brief.
- We do not scrape G2 or Capterra. Apex watches properties you are allowed to fetch.
You already have the gathering. You don’t have the connecting.
Klue shipped a price. Crayon changed the hero. Someone posted five ML roles. Your stack caught all of it — as three unrelated alerts, in three tools, none of which know the others exist.
Alerts don’t remember.
AlertsYesterday’s pricing change is not linked to this week’s hiring spike.
Prompts don’t either.
PromptsA fresh chat about “what did Klue do” throws away last month’s graph.
Battlecards rot.
CardsThe page the rep is holding is three moves behind the site you could have been watching.
Fetch. Diff. Weave. Brief.
Watch the pages that matter.
Homepage, product, careers, articles — on the cadence you set. Cosmetic HTML churn is stripped so a class name does not become a “signal.”
Diff against yesterday’s snapshot.
First run is a baseline. After that, only real content changes land.
Classify and score.
Launch, pricing, hiring, messaging, weakness, and the rest — triaged, then scored for urgency. Optional model pass writes the summary and the recommended move; it only runs when something actually changed.
Weave it into the graph.
The new node attaches to a competitor you already know. Orphans are the exception, not the product.
Wake up to a brief.
Top moves, a concrete next action, and a citation back to the snapshot. Quiet nights say so. Broken URLs do not pretend to be quiet nights.
We do not scrape G2 or Capterra. Those walls block non-browser clients, and a 403 is not a strategy. Apex watches properties you are allowed to fetch.
One graph. A feed. A brief.
Lens is the console. Apex is the brand.
Context graph
Every competitor, page, and signal is a node. Clusters form around pricing, messaging, GTM, risk. Hover a node, see what it is tied to. Click through to the signal. Density is a feature: it means the watcher connected something, not that we drew a prettier hairball.
Signals feed
Urgency first. Before / after. A recommended move. Ack it when you’ve acted. Copy a link into Slack. This is the triage queue, not the memory.
Morning brief
“Watching 3 competitors · 1 new · 0 fetch errors.” Then the line that matters: what to do. If the watchlist is unhealthy, the brief says so. We would rather page you about a 404 than congratulate you on a quiet night you did not earn.
Who it’s for
Compete and product marketing
You need the move, not the raw HTML.
Sales enablement
The brief is the input to the card, not a folder of PDFs.
Founders watching a short list
Three competitors, seven pages, an hourly agent, no platform to implement.
Agencies
One watchlist per client (the product is headed there; the watcher already takes a config).
Example — not a customer quote
Two edges in 48 hours: entry price up, 15-seat floor, five ML roles posted. Repricing up-market while staffing an AI build-out. — Move: update the TCO one-pager today. Do not wait for the QBR.
Get a watch running
Put the watch on. Read the brief tomorrow.
Point Apex at the competitors you already lose sleep over. Tomorrow morning you’ll know whether they moved — and what the graph thinks you should do about it.
Watcher is stdlib Python. Console is the graph. No account required to run it locally.
Questions operators actually ask
- Does it replace Klue / Crayon / the rest?
- It replaces the part those tools are worst at: connecting this week’s move to last month’s. Use Apex as the analyst layer on top of whatever you already gather — or as the gatherer, if your list is a handful of URLs.
- Is the first run empty?
- Yes. The first sweep is a baseline. That is correct behaviour. Signals start on the second real change.
- Will it invent urgency?
- A class name on a div is not a launch. We normalise the page, hash the text, and ignore cosmetic churn. Fresh pricing is scored high; a docs tweak is not.
- Does a person still decide?
- Yes. Apex drafts the move. You ack it. The graph keeps the evidence either way.
- Where does the brief land?
- In the console, in brief.md, and optionally on a webhook or SMTP. The hourly agent is already a LaunchAgent (or cron). It does not need you to open the laptop first.