How we keep an eye on competitors
Your rivals rarely announce the small stuff. A plan gets repriced overnight. A new feature slips into a release note. The homepage headline changes its tune. If nobody on your team happened to look that week, you hear about it from a customer. And let's be honest: opening twelve tabs each morning is a habit that lasts about a fortnight.
So we handed the job to an agent on Machine. Once a day it reads the competitor websites, changelogs and pricing pages we care about, compares them with what it saw the day before, and posts a brief note in Slack covering only the real changes.
The problem
Watching the competition is everybody's job, which means it is nobody's. Anyone can read the pages, yet they live in a dozen places and change whenever they feel like it. On most mornings nothing has shifted at all, so the person checking burns their time proving a negative.
The usual fixes fall apart. Page-change alert tools ping you for every comma and font tweak, and the one change that matters drowns in the noise. A shared checklist of pages works only while someone remembers it exists. What you actually want is a check that happens every single day, remembers the last visit, and speaks up only when there is something worth your two minutes.
What we built
An agent wakes up on a schedule each day. Every run gets its own sealed-off session, pulls down the competitor pages on our list, lines them up against the copy saved last time, and sends Slack a short rundown of the differences. Styling tweaks are ignored. New prices, new features and new positioning get flagged by name.
How it works
Schedule a daily run
A cron trigger starts the project once every day. Each start creates a brand-new session: a fresh cloud computer (sandbox) that exists only for that run and can reach the web. It does the work, then it is thrown away.
Hand over the list and the rules
The agent's playbook lives in skills and memory: which competitors to follow, which exact pages to open, and what separates a real change from a cosmetic one. Memory also holds the snapshot from the previous day, so the agent compares instead of repeating news you already have. When the market changes, we edit the list.
Plug in the web and Slack
Connectors are scoped connections to your tools, and the keys stay on our servers rather than inside the model. With them the agent can:
- Read competitor pages: the websites, release notes and pricing pages on the list.
- Spot the differences: line up today's text against the saved snapshot and keep only what really changed.
- Write in Slack: a few lines in the growth channel, or silence if nothing shifted.
Keep the scope small
This agent reads public pages and posts in a single Slack channel. That is the whole job, on purpose. It cannot see internal systems and does nothing besides post. If it needs a credential, that key is stored encrypted in the Secrets Manager and only handed to the agents you grant it to, at the moment the run starts.
Read the morning note
Each run opens the pages on the list, checks them against yesterday and reports the differences: a plan that changed price, a feature that went live, a homepage with a new pitch. When it is a slow day, the note is one short line. Your team skims one message and closes zero tabs.
The pattern
Start the check with a cron trigger. Store the page list and yesterday's snapshot as skills and memory. Give the agent tightly scoped connectors for the web and Slack, then let every run compare and report. You read a summary; nobody goes clicking around.
Guardrails
A read-only agent still gets every control the rest of Machine uses:
- Isolation. Every run lives in a sandbox of its own, and the one Slack summary it is permitted to post is the only thing that leaves.
- Scoped secrets. Credentials are stored encrypted in the Secrets Manager and only handed to the agents you grant them to, injected into the sandbox when the run starts.
- Human approval gates. Posting a summary is the only outside action it takes. Anything more would need a person to say yes first.
- Everything is code. The competitor list, the pages to read and the rule for what counts as a real change sit as files in the repo. They carry a version history, and you change them through a reviewed change request, not a toggle in a dashboard.
The outcome
When a rival reprices a plan or ships a feature, we know the next morning, not whenever someone stumbles on it. Since every run compares against the one before, the channel stays quiet when the market is quiet and only lights up when something has genuinely moved.
More use cases
How we answer GDPR data-subject requests before the deadline
Our Machine agent checks each GDPR access or deletion request, finds the person's data across our product database, builds the report well within the SLA and hands it to legal before anything is sent.

How we keep our docs matching what the code does
Once a day a Machine agent reads every commit merged since its last pass, finds the doc pages those changes made wrong, rewrites them and sends you one pull request to review.

How we test every pull request without lifting a finger
Our Machine QA agent works with GitHub and our test environment. For each pull request it checks out the branch, runs the tests, tries the change for real, and posts what it found.
Put your first agentto work today.
- SSO
- RBAC
- Governed agents
- Full audit trail