Automate file downloading

The weekly report waiting on a vendor portal. The CSV export tucked behind three clicks. The PDF you log in for every Friday. axiom drives Chrome through whatever the click flow is and saves the file where you need it. Your machine, a Google Drive folder, or wherever the next step in your pipeline expects it. There are three ways to start, with no code, with code, or with a Claude skill.

What I mean by automating file downloads


Automating downloads means a bot does the click work and the wait work for you. Open the site, sign in if needed, navigate to the report or export, hit the download button, wait for the file to land, and either save it locally or push it onward. To Google Drive, S3, a webhook, or the next step in a workflow. The bot runs on a schedule (or on demand), so the file shows up where you need it without you opening Chrome.

Why bots are good at this


Download flows are uniform but tedious. The same dropdown picks, the same date range, the same "generate" then "wait for the export" then "click the link". Five minutes of clicking for a file you needed three minutes ago. A bot doesn't care that it's the fortieth Friday in a row. It waits for the export the moment it's ready, downloads, names the file consistently, and tells you when it's done.

Who this is for


This is for operations and finance teams pulling the same exports from the same vendor portals every week. Marketing teams downloading reports from ad platforms that don't have a usable API. Data teams collecting source files from sites that lack a feed. Anyone who has a calendar reminder that says "download the weekly X." If the file you need is two minutes of clicking away every time, a bot can do those two minutes on autopilot.

How I'd approach it


Start by listing the click path. "Open the portal, sign in, click Reports, choose date range, click Generate, wait for the download button, click it, file lands." Each line is a step. Build it once in the Chrome extension, run it through end-to-end, then schedule it.

The download itself is one step. Axiom waits for the file event, captures the path, and hands it off. From there, push it into a Google Drive folder, a Slack message, or a webhook for the next stage.

Automate file downloads from a description


Describe the click path in plain words in the Chrome extension and it builds the steps for you. Tell it the URL, the click sequence, and where the file should land. Explore no-code.

To the right is an example. Describe the click path and let the AI lay out the steps.

Chrome extension
Describe your automation

Instructions

  • Open the reports page on my vendor portal41 / 500
  • Pick last week's date range from the dropdown45 / 500
  • Click Generate14 / 500
  • Wait for the Download CSV button to appear42 / 500
  • Click it and capture the file path34 / 500
  • Upload the file to a Google Drive folder named "Weekly imports"63 / 500

Automate file downloads in code


Build with code. If you would rather script it yourself, this is the path. Explore code

Connect Playwright (or Puppeteer) to our cloud Chromium and write the same scripts you'd run locally, without managing the browser. The cookies for the signed-in session need to be loaded into the run.

Code tool
Code example
import { chromium } from "playwright";

const browser = await chromium.connectOverCDP(
  `wss://cdp-lb.axiom.ai/?token=${process.env.AXIOM_API_KEY}`
);

try {
  const context = browser.contexts()[0];
  const page = context.pages()[0] ?? await context.newPage();

  // Cookies for the signed-in session are loaded into the run
  await page.goto("https://example.com/reports");

  // Pick the date range and generate the export
  await page.getByLabel("Date range").selectOption("last-week");
  await page.getByRole("button", { name: "Generate" }).click();

  // Wait for the export, then capture the download
  await page.getByRole("link", { name: /Download CSV/i }).waitFor({ timeout: 60000 });
  const download = await Promise.all([
    page.waitForEvent("download"),
    page.getByRole("link", { name: /Download CSV/i }).click(),
  ]).then(([d]) => d);

  const path = await download.path();
  console.log("Downloaded to", path);
} finally {
  await browser.close();
}

Build with a Claude skill

Build no-code or code bots with a skill.

Add the Claude skill and describe the download you want automated. It builds the bot for you, no-code or code, handling the click path, the wait, and where the file lands.

Claude building a file-download automation from a description

What can you automate?


Most download flows in a browser. A couple of cases worth knowing first.

Works well

  • CSV and Excel exports from vendor and analytics portals
  • PDF reports gated behind a login
  • Image downloads from a list of URLs
  • Scheduled weekly or daily pulls
  • Files that take a few minutes to generate (the bot waits)

Harder

  • Exports that arrive by email instead of a download button (use an inbox step)
  • Captchas on the download page (use a solver step or a stored session)
  • Files locked to one specific IP (use a fixed-IP proxy)

Don't try

  • Anything against the target site's terms of service
  • Mass downloads from sites that explicitly rate-limit or forbid scraping
  • Content you don't have license to retain or redistribute

What I'd watch out for


Download flows have a couple of quirks that bite if you don't plan for them.

Wait for the file, not the button

Some portals enable the download button before the export is actually ready. Wait for the file event itself. Not the button's visibility. And the bot won't grab an incomplete file.

Session and cookies

Most useful files sit behind a login. Sign in once by hand, store the cookies in axiom, and load them on every run. The bot picks up where you left off, no password handling in the script.

File naming

Without intervention the file lands with whatever name the server gave it. Add a rename step (or a prefix-by-date step) so a folder full of downloads is sortable.

Schedule timing

If the report regenerates on a known cadence, schedule the bot just after. There's no benefit to checking five times a day when the file refreshes once.

"Axiom has completely transformed how I handle browser automation. The no-code interface is intuitive and powerful."

John Smith

"The visual builder is a dream come true. No more writing complex scripts!"

Lisa Anderson

"The best investment we've made in our automation workflow. Simple yet powerful."

Jennifer Brown

"Axiom has saved me countless hours. The automation possibilities are endless."

Robert Taylor

"The best browser automation tool I've used. The AI features are game-changing for complex workflows."

Sarah Johnson

"Finally, a tool that makes browser automation accessible without compromising on power. Highly recommended!"

Michael Chen

"The support team is amazing, and the product just keeps getting better. Worth every penny."

Emma Davis

Fast to build. Easy to run and scale. Outstanding support.

Start for free. No credit card required.