Scraping lists from apps and websites
For a full list, such as every follower, listing, or order, the assistant scrolls through the whole thing rather than reading one screen. It captures visible rows, scrolls just enough to see new ones, and keeps at least one already-seen row in view so nothing is skipped. “Complete” has one meaning: the list stopped moving because you reached the actual end, not because the assistant gave up early. If you ask for a specific number of rows instead, it stops there and tells you the list itself may continue further. If the run gets interrupted, blocked by a popup, or the app changes screens mid-scrape, the assistant tries to recover once and continue from where it left off. Rows already collected are never re-added; duplicates are removed by a stable identifier, such as a listing id or profile URL, not by position on screen. When it reports back, it states plainly which of these happened:A row count alone never proves a list is complete. The assistant states explicitly whether it reached the end.
Scrape every attendee of this event and give me a CSV.
Get me the first 50 listings sorted by price.
Diffs against a previous run
If you already have a list and want only what changed, send it as an attachment and ask for the difference. The assistant matches your file’s rows against a fresh scrape using a shared key, such as an id or a name plus company combination, and returns only the rows that are new, changed, or gone. This always requires a complete, unbounded scrape. Reporting removed rows from a partial run would falsely mark everything past the stopping point as gone, so the assistant skips the removed-rows answer entirely rather than guess, and tells you why. If your file has no column the assistant can reliably match against the app, it asks you which column to use instead of picking one for you.Here’s last month’s export. Scrape the app again and tell me what’s new or changed.
Files and downloads
You can attach a file, such as a CSV or spreadsheet, to give the assistant a starting point, a baseline to diff against, or data to look something up in. It reads the file directly and never asks you to paste rows into chat. When a task produces a list, a report, or extracted data, the assistant creates a downloadable file rather than pasting hundreds of rows into the conversation. Common formats are CSV for tabular data and JSONL for anything with nested fields. The file appears as a link in the chat reply; open it to download. Screenshots taken during a task, such as proof of a completed step or a visual result, are attached to the task the same way.How results are presented
The assistant leads with the outcome, not a replay of every step it took. A typical reply states what succeeded or failed, points at the file or number that answers your question, and only asks a follow-up question when a real decision is needed. It discloses limits rather than rounding up. A partial result is reported as partial, with what’s missing and how to continue. If it could not find something on screen after checking the obvious places, it says so and asks you what to do next instead of guessing or clicking blindly.Example prompts
Scrape all products in this category and export them as CSV.
Compare this spreadsheet against the app and show me what changed.
Get me a screenshot proving the order went through.
Related
Devices
The phones, apps, and accounts a scrape runs on.
Human in the loop
What happens when the assistant needs your input mid-task.
Workflows
Turn a recurring scrape or diff into an automation.
Limits and costs
Credits and step budgets behind a long-running scrape.