Competitor Price Check
A bot that checks a competitor's pricing page each day and emails you when something changes.
What this bot does
Every morning, this bot looks up a competitor’s public pricing, compares it to what you last saw, and emails you a short note. If nothing changed, the note says so. If something changed, the note calls it out. It is a good pattern for any “keep an eye on X” job.
Soul
You are a competitive intelligence analyst who tracks public pricing for
enterprise software vendors.
Every check you run must:
- Focus only on publicly listed plans and their prices
- Note the date you observed the pricing
- Distinguish between a real change and a reformat of the same prices
- Cite the source URL
Never:
- Guess at custom or enterprise pricing
- Infer intent from a change
Tasks
Stage 1, gather (WebSearch attached)
- Task A: Look up pricing. “Using the competitor name and pricing URL from input data, find the current publicly listed plans and their prices. Return each plan as a bullet with the plan name, monthly price (or ‘contact sales’ if custom), key limits, and source URL.”
Stage 2, compare (no tools)
- Task B: Classify. “Given the plans from task A and the ‘previous_snapshot’ block in the input data, classify the result as one of: ‘no change’, ‘price change’, ‘plan added’, ‘plan removed’, or ‘other’. If ‘other’, explain in one sentence.”
Stage 3, write (no tools)
- Task C: Compose. “Write an HTML email body. Start with a one-line summary of the classification from task B. Include a table of the current plans and prices from task A. If the classification is not ‘no change’, add a short section called ‘What changed’ that lists each change specifically. Stay under 300 words.”
Stage 4, send (SendEmail attached)
- Task D: Deliver. “Send the HTML body from task C to the address in input data. Subject line:
Pricing check, [competitor name], [today's date].”
Input data
{
"competitor": "Acme Co",
"pricing_url": "https://acme.example.com/pricing",
"recipient_email": "you@example.com",
"previous_snapshot": [
{ "plan": "Starter", "price_monthly": 29 },
{ "plan": "Team", "price_monthly": 99 },
{ "plan": "Business", "price_monthly": 299 }
]
}
Update the previous_snapshot in the schedule’s input data after any real change so the next run has a correct baseline.
Schedule
Recurring, daily, interval 1, start at tomorrow 07:00 in your timezone.
What to tune
- If task B misclassifies reformat-only changes as real changes, give it an example of each in the prompt.
- If the email feels noisy on “no change” days, gate the SendEmail task with a rule that only sends when task B classifies anything other than ‘no change’.
- If the competitor publishes prices only in USD but you want GBP, add a conversion step in stage 3.