Pull numbers from supplier, carrier and utility portals
Open one screen every Monday to refresh every portal your team logs into by hand, see the latest figures, and watch a replay when a number looks wrong.
Build me an internal app my operations team opens every Monday to pull numbers out of the supplier, carrier, utility and government portals that have no API. Everything the app knows about which portals to visit lives in a Google Sheet, and everything it pulls goes back to that sheet, so the team keeps working in a tool they already trust.
The main screen is a board with one card per portal. Each card shows the portal name, a short line describing what we pull from it, which saved browser profile it signs in with, when it was last refreshed, and the figures from the most recent pull. If the time since the last refresh is longer than that portal's configured refresh window, put a clear Stale badge on the card. Each card has its own Refresh button, and there is a Refresh all button at the top of the board that kicks off every portal at once, with per card progress so people can see which ones are still running.
Refreshing a portal calls Anchor Browser Perform Web Task against that portal's start URL, passing that portal's extraction instructions as the task and its saved profile so the browser is already signed in. Run it asynchronously and poll Get Perform Web Task Status until it reports finished or failed, keeping a live status on the card the whole time. When it completes, parse the extracted rows and render them into a sortable table on that portal's detail view. Hold on to the browser session id from the run so the recording can be played back later. If a run fails, or the saved profile is no longer signed in, show the error on the card and prompt someone to redo that portal's login rather than quietly leaving stale numbers on screen.
Every completed refresh appends a dated row to a history tab in the same Google Sheet using Append Values: one row per portal per refresh, carrying the date, the portal name and the figures pulled. The portal detail view lists that history so the team can see movement over time, and lets someone sort or filter it by date.
The portal detail view also plays the run back. Use List Session Recordings for the browser session behind a run to get the available recordings, and Get Session Recording to fetch the file, then show it in a video player inside the app. This is the whole point of using a cloud browser instead of a scraper: when a number looks wrong, someone can watch exactly what the browser did, which page it landed on, and whether it read the right field. Let people play back any run in the history list, not just the most recent one.
Read the portal list from a Google Sheets tab with Get Values. Each row is one portal: portal name, start URL, the extraction instructions for that portal, which saved profile to use, and the refresh window that drives the stale badge. Show those fields as inline editable cells in the app, and write edits back to the sheet with Update Values so the sheet stays the source of truth. Adding a row in the sheet adds a card to the board, and editing the instructions for a portal changes what the next refresh pulls.
Logins are set up once inside the app on a separate Logins screen, and no portal passwords are ever stored in the app. To add a login, call Start Browser Session and embed the returned live view so the person can drive that browser by hand and sign into the portal themselves, including any two factor step. When they click Save login, call Create Profile to persist that signed in session as a reusable named profile, then End Browser Session to close the live browser. List the saved profiles alongside the portals that use them, and give each one a Delete button that calls Delete Profile, which is what someone uses when credentials rotate.
Keep the app to three surfaces: the portal board, the portal detail view with the extracted table plus history and recording playback, and the Logins screen. Do not add Slack or email notifications of any kind, and do not build a credits or spend view for Anchor Browser.
What does this prompt do?
- A card for every portal you track, showing what you pull from it, which saved login it uses, when it was last refreshed, and the figures from the last pull, with a stale badge once it passes your refresh window
- Refresh one portal or all of them at once. A cloud browser signs in with a saved login, works through your instructions for that portal, and lays the numbers out in a sortable table
- Every refresh is recorded on video. When a figure looks off, open that portal and watch exactly what the browser did to get it, instead of guessing why a scraper broke
- Your portal list and the instructions for each portal live in a Google Sheet you can edit right inside the app, and every refresh appends a dated row so the team can see movement over time
What do I need to use this?
- An Anchor Browser account, which provides the cloud browser that signs into portals and records what it does
- A Google account and a spreadsheet with one tab for your portal list and one tab for refresh history
- A working login for each portal you want to pull from, which someone signs into by hand once inside the app
- The start URL for each portal and a short description of which figures to pull from it
How can I customize it?
- Set a different refresh window per portal so a weekly carrier report and a quarterly utility bill get their stale badges at the right time
- Rewrite the pull instructions for any portal in the spreadsheet when a site moves things around, without touching the app itself
- Add or remove portals by editing rows in the spreadsheet, and reuse one saved login across several portals from the same provider
FAQs
Does this store our portal passwords?
Will it work on portals that require two-factor authentication?
What happens if a portal changes its layout and a number comes back wrong?
Do we need a developer to add a new portal?
How many portals can we track?
Does this replace our ERP or procurement system?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Stop logging into ten portals every Monday morning.
Give your ops team one screen that signs in, pulls the numbers, and keeps the receipts on video.