Skip to main content
Ask the assistant to pull data out of an app or website and it collects the data, then hands it back as a clear answer, a file, or both.

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.
If a result looks off, ask the assistant to explain what it checked. It can tell you what it verified and where it stopped, rather than just asserting success.

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.

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.