PAPERBOYan agent that watches vendor portals for invoices and price changes
A read-only agent meant to download distributor invoices on a schedule and flag price jumps. Paused: sign-ins were the whole fight.
- State
- Paused. Last attempt 2026-09-23 downloaded 0 invoices.
- Written
- Time to build
- Not recorded
- For
- A two-business restaurant group: a pizza and watch-bar concept and a late-night bar
Numbers come from the owning agent’s build summary and its corrections, 2026-10-28. Not independently verified. This build is paused. No run has downloaded invoices since the pause, and the last attempt (2026-09-23) downloaded zero invoices and wrote zero price-log rows. Read every step below as how it is designed to work, not as results.
PAPERBOY is read-only. It collects invoices and tracks prices. It never places or changes an order.
Problem
A two-business restaurant group buys from many liquor and food distributors. Each has its own web portal. Invoices sit there, nobody downloads them on a schedule, and unit prices creep up unnoticed. Bookkeeping needs clean, consistently named PDFs, and the owner wants to know when a price jumps.
Stack
- A scheduled AI agent: weekday routine, 6:00 AM Eastern, flexible plus or minus 15 minutes.
- A browser the agent drives on its own computer, with saved logins.
- A single sign-on app hub that links the distributor portals.
- Google Drive (one folder per month for invoice PDFs) and Google Sheets (price log).
- Agent-to-agent messaging, so one front-door agent reports to the owner.
Steps
- Read the shared house rules and escalation format first.
- Open the app hub, then each portal one at a time, signing out before the next.
- Download invoice PDFs that are new since the last successful run.
- Rename each file
YYYY-MM-DD_VENDOR_INVOICE-NUMBER.pdfand upload it to the matchingYYYY-MMfolder in Drive. - Compare each line’s unit price with the most recent prior price. Add a row to the price log only when the move is 3% or more.
- Tag any invoice more than 25% above that vendor’s trailing average as REVIEW.
- Check for past-due balances and credit holds.
- Report. A clean run stays silent. Anything material goes to the front-door agent, never straight to the owner.
Escalation levels: immediate for a failed portal or a REVIEW invoice, today for a past-due balance or credit hold, brief for price moves under 3%.
Real numbers
Source: the owning agent, not independently verified.
- 4 distributor portals reached through one hub, plus an inventory app checked read-only.
- Thresholds: 3% price move, 25% REVIEW, 2 login attempts per portal at most.
- Vendor research: a vendor list, a weekly cutoff calendar, and a list of open questions.
- One read-only inventory snapshot was taken to test access. Its figures are not published.
- Invoices downloaded by the routine: 0. Price-log rows: 0. Last attempt: 2026-09-23.
Time
- Before: downloading, filing and price watching were done by hand. Nobody timed it, so no figure is given.
- After: not measurable yet. No run has downloaded invoices, so there is no real “after”. Goal, not a result: a short weekly review of the REVIEW flags and the price-move log. No hours-saved claim until a first full run lands.
Misfires
- Portal sign-ins were the whole fight. Sessions expired and every distributor landed on a login wall. The agent correctly refused to guess passwords, bypass verification, or retry more than twice, so zero invoices came down on those runs.
- The routine was paused after repeated auth failures; the last attempt was 2026-09-23 and downloaded nothing. Resuming would only create a failed-portal alert every morning.
- The fix needs a human. Sign in once with “remember me” checked, then the agent checks the sessions read-only before resuming. The agent can’t do this itself, by design.
- Reporting was rerouted mid-build. It first emailed the owner directly, then moved to one front-door agent that bundles everything into a single brief.
- Login ownership. One portal uses a legacy login on a separate address, and one distributor login is tied to an individual’s personal email rather than a shared company address. Check who owns each login before you automate.
- Empty price log. The first successful run only seeds baselines. Price moves appear from the second pull.
Copy-paste template
Routine prompt:
Every weekday at [TIME], collect new invoices from the approved vendor portals. Read and download only. Never place, change, submit or cancel an order, never enter payment details, pay an invoice, accept terms, or delete anything. If a portal asks for a verification code, a password change, or the login fails, stop that portal and escalate. Never try a login more than twice. Rename and file the PDFs, log price moves of [PRICE MOVE THRESHOLD] or more, flag invoices over [REVIEW THRESHOLD] above the vendor average as REVIEW, and report in this format: DATE, INVOICES, PRICE MOVES, TOP MOVES (up to five, largest first), FAILED. All caps, no exclamation points.
Swap in your own [VENDOR LIST], [TIME], thresholds and report format. Rules to keep: read-only, escalate don’t guess, a rigid report format so a clean run is silent.
What’s next
- A human sign-in with “remember me” checked, then a read-only session check, then resume the routine and capture a first real run.
- After the first run: real invoice and price-move counts, and a measured before-and-after time.
- Turn the cutoff calendar into ordering reminders.
- Move the login tied to a personal email onto a shared company address.
Live link or demo
No public live link. The recorded demo at the top of this page shows it end to end. A simulated run with made-up sample portals and prices, built to show how the agent is designed to work. The real routine is paused. 34 seconds, no sound.