Morning Briefing & Change Watch
The things you check by hand every morning (industry news, market numbers, competitor prices), handled by an AI employee. The briefing arrives daily; change alerts arrive only when something changed.
Both go to one employee because they share the same raw material: while it’s sweeping the web each morning, it can also check what moved since yesterday.
What you get
- A push notification at a fixed time each morning.
- Open it and today’s must-knows are on one page.
- If something you’re watching (a competitor’s price, say) moves meaningfully, you hear about it then, not the next morning.
- If nothing moved, silence. “No change” every run makes notifications meaningless.
What to turn on
| Kind | Item | What it does here |
|---|---|---|
| Tool | Web Search | Find news and market moves |
| Tool | HTTP Request | Read competitor prices and stock wording (enough for most pages) |
| Tool | File Read / File Write | Store yesterday’s values and compare against today’s |
| Tool | Create scheduled run | Let the employee register its own morning run |
| Tool | Web Browser | Only for pages behind a login or rendered by JavaScript |
Nothing extra is needed for notifications. When the employee replies, that reply goes to the chat, and if it was running on its own, a push goes with it.
Step 1: Decide what to watch
Hire the employee, then open Settings → Behavior instructions:
Role: morning briefing.
Daily reading:
- Our industry (e.g. wholesale distribution, raw material prices)
- FX and fuel prices, or anything else that moves our costs
Watch for changes:
- https://competitor-a.com/product/123 (list price)
- https://competitor-b.com/product/456 (list price, sold-out wording)
Every morning run:
1. Web-search yesterday's notable news in the areas above.
2. Check the price and sold-out wording on each watched page.
3. Read watch/last_seen.md and compare against the previous values.
- If the file doesn't exist, save this run's values as the baseline
and leave the change section empty.
4. Send the briefing as a single message:
- One line for today (the single most important thing)
- 3-5 lines of industry news (merge duplicates, attach source links)
- Changes on watched pages (one line saying "no change" if none)
5. Overwrite watch/last_seen.md with this run's values.
Keep it short enough to skim on a phone in a minute.Step 2: Set up the morning scheduled run
One line in the chat:
Register a scheduled run to send the briefing every day at 8 AM.The employee creates its own scheduled run. Tap the approval card once. Times are computed in your account’s time zone.
Note: the
Automatic runstab in the UI is for recurring intervals (“every N hours”). “Once a day at a fixed time” is only supported by asking the employee, as above.
Note: to avoid many employees firing at the same instant, daily scheduled runs may fire up to about 3 minutes after the requested time. Not landing on the exact minute every day is normal.
Step 3: Watch urgent things separately
If waiting until morning is too late for something, give it its own interval.
Check competitor prices every 3 hours separately, and tell me immediately
only if they moved by 5% or more.The threshold (“5% or more”) is the important part. Without one, rounding-level movements trigger alerts and you stop noticing the real ones.
An employee can hold at most 5 active scheduled runs at once.
Step 4: Get ready for push
- Go to
Settings → Notificationson the web. - Confirm both the master push toggle and the
Employee response pushtoggle are on. - Install the mobile app and sign in (App Store for iPhone, Google Play for Android), and allow notifications on first launch.
Details in Notifications.
Step 5: Try it now
Don’t wait for tomorrow morning:
Build the briefing once now.On the first run there’s nothing to compare against, so an empty change section is correct. Comparison starts on the second run.
Fix anything you don’t like in plain language: “collect the source links at the end,” “drop politics,” “cut it to 5 headlines.”
Tuning
- Restrict sources: “search reuters.com and AP mainly” narrows the search domains. “Skip this site” works too.
- Vary by weekday: “Mondays, lead with the weekend’s arc; Fridays, add a week-in-review.”
- Suppress repeats: “don’t report the same change twice within 12 hours.”
- Tone: “urgent for sharp price cuts, quiet for simple wording changes.”
Next steps
- Scheduled runs: intervals and time windows in detail
- Notifications: what to check when push doesn’t arrive
- Repetitive Document Review: making verdicts consistent every time
Advanced
Avoiding a false alarm on the first run
The “if the file doesn’t exist, save the baseline only” rule in the behavior instructions handles this. Without it, everything reads as “new” on the first run and the alerts flood in.
To set the baseline yourself, just say “save the current prices as the baseline” once in the chat.
Where previous values are stored
A file saved at a relative path like watch/last_seen.md lands in that employee’s private memory area, is readable at the same path on the next run, and is invisible to other employees on the same team.
The memory index file has a length limit, so accumulating data is safer under a subpath like watch/.
When notifications pile up
If you set quiet hours under Settings → Notifications, a change found outside those hours still runs the scheduled run; only the notification is held until the next allowed window. Execution is never blocked.
Once 3 or more unread responses for the same employee pile up, the server replaces the individual entries with a single grouped notification carrying the count.
When a page is noisy
- Narrow the extraction: target “the price number” instead of the whole page.
- Raise the threshold: 5% → 10%, once per 12 hours, and so on.
- Lengthen the interval: 3 hours → 6 hours merges the small wobbles naturally.
- Narrow the time window: check during business hours on weekdays instead of around the clock.
If the same scheduled run fails 3 times in a row (a site persistently blocking access, for instance), the system sends one failure notification. The scheduled run itself stays on and keeps retrying.
Cost notes
- Shorter intervals mean more autonomous runs, and SU scale with them.
- Web Browser costs more per call than HTTP Request. If a page needs no login, use HTTP request.
- Telling it not to reply when nothing changed cuts the per-run response cost.
- The default Standard tier is plenty for writing the briefing. Since this runs every day, moving it to
Ultrapiles up SU fast.