We were spending roughly 3 hours a week checking competitor websites, reading changelogs, scanning job boards, and comparing pricing pages. Manually. Like it was 2015.
So we built an agent that does it for us. It took about 2 hours to set up and now runs every Monday at 6am — before we're even at our desks. This is the exact tutorial for how to build it yourself.
What You're Building
The agent runs on a weekly schedule and does four things:
- Scrapes competitor "What's New" pages for recent product releases
- Checks pricing pages for tier or price changes
- Queries job boards for new engineering/product roles (a leading indicator of product direction)
- Synthesizes everything into a structured report with a competitive signal score
The output is a Markdown report saved to your ThetaZero reports dashboard, and optionally emailed to your team.
Step 1: Create the Agent
In ThetaZero, agents are defined by a system prompt, a schedule, and a tool configuration. Here's the agent config we used:
{
"name": "Competitor Research Agent",
"description": "Weekly competitive intelligence briefing",
"schedule": "0 6 * * 1",
"model": "claude-opus-4",
"tools": ["web_search", "web_fetch", "save_report"],
"system_prompt": "You are a competitive intelligence analyst. Your job is to research our competitors every week and produce a structured briefing. Be specific and factual. Flag any significant changes in bold. Rate the overall competitive threat level as LOW, MEDIUM, or HIGH based on what you find."
}
The 0 6 * * 1 cron expression means "run at 6am every Monday." The web_search and web_fetch tools give the agent internet access.
Step 2: Write the Task Prompt
The task prompt is the instruction the agent receives each time it runs. This is where most of the quality comes from. Here's ours:
Research the following competitors and produce a weekly intelligence report:
**Competitors to track:**
- CompetitorA.com
- CompetitorB.com
- CompetitorC.com
**For each competitor, check:**
1. **Product changes** — Visit their changelog, release notes, or "What's New" page. What shipped in the last 7 days? Note version numbers, feature names, and any deprecations.
2. **Pricing changes** — Visit their pricing page. Have any tiers, prices, or feature limits changed since your last check?
3. **Hiring signals** — Search LinkedIn Jobs and their careers page for new roles posted in the last 14 days. Specifically: engineering, product, sales, and ML/AI roles. New clusters of hiring indicate product direction.
4. **Public discourse** — Search Twitter/X, Reddit, and Hacker News for their brand name. Any notable complaints, feature requests, or competitor comparisons?
**Output format:**
## Weekly Competitive Intelligence Brief — [DATE]
### Threat Level: [LOW/MEDIUM/HIGH]
*One sentence rationale*
### [Competitor Name]
**What shipped:** ...
**Pricing:** [No change / Changed: ...]
**Hiring signals:** ...
**Community signals:** ...
---
### Key Takeaways
- [3-5 bullet points with the most actionable insights]
**Save this report as type "competitive_intelligence".**
Step 3: Deploy and Test
Deploy the agent via the ThetaZero CLI or dashboard. Before your Monday run, trigger it manually to validate the output:
# Install ThetaZero CLI
npm install -g thetazero
# Authenticate
thetazero login
# Create the agent from config file
thetazero agents create competitor-research.json
# Test run it immediately
thetazero agents run competitor-research --now
# Tail the execution logs
thetazero agents logs competitor-research --follow
The agent will start running. You'll see logs streaming in real time. Expect it to take 3–5 minutes on the first run (it's doing a lot of web fetching).
Reading the Output
After the run completes, the report appears in your Reports dashboard under the competitive_intelligence type. Here's an example snippet from our own run:
## Weekly Competitive Intelligence Brief — March 25, 2026
### Threat Level: MEDIUM
*CompetitorA shipped a new API gateway feature that directly overlaps with our EdgeCloud routing.*
### CompetitorA
**What shipped:** v4.2.0 — Added "SmartRoute" API gateway with automatic failover.
Targets the same latency-sensitive use case as our compute routing.
**Pricing:** Changed — Reduced Pro tier from $299/mo to $199/mo (33% reduction)
**Hiring signals:** 8 new ML Engineering roles, 3 new Platform Engineering roles (up from 0 last week)
**Community signals:** 3 threads on HN praising their new docs. 1 Reddit thread comparing them to us favorably on pricing.
### Key Takeaways
- **CompetitorA's price cut is aggressive** — worth revisiting our Pro tier positioning
- Their hiring surge suggests a major product push is 3-6 months out
- No significant moves from CompetitorB or CompetitorC this week
Improvements to Make It Better
After running this for a few weeks, here are the upgrades worth making:
Add historical context
Query the last 4 reports and include them in the prompt context. This lets the agent say things like "CompetitorA has shipped 3 pricing changes in 6 weeks — unusual cadence."
// In your task prompt preamble, inject previous reports
const previousReports = await ThetaZero.reports.query({
type: 'competitive_intelligence',
limit: 4
});
const context = previousReports.map(r =>
`PREVIOUS REPORT (${r.date}):\n${r.summary}`
).join('\n\n---\n\n');
const prompt = `${context}\n\nNow produce this week's report:\n...`;
Add email delivery
Add the send_email tool and a line at the end of your task prompt: "After saving the report, email the Key Takeaways section to team@yourcompany.com."
Track a metric
Add a structured metadata block to your report save call with a numeric competitive pressure score (1–10). Then use ThetaZero's analytics to plot it over time — you'll see patterns emerge.
The Bigger Picture
This is one agent doing one thing. The real power is chaining it. You can have a Strategy Agent that reads your competitive intelligence reports alongside your own metrics, and surfaces strategic recommendations weekly. That's a 30-minute build on top of this foundation.
The pattern is always the same: automate the boring research, keep the judgment for yourself.
| Before | After |
|---|---|
| 3 hrs/week manual research | 5 min reviewing the report |
| Inconsistent coverage | Same 4 sources checked every week |
| Subjective "feels" about threats | Quantified competitive pressure score |
| Reactive to competitor moves | 1-week early warning on signals |
Total setup time: ~2 hours. Time saved per week: ~3 hours. Payback period: 4 days.