Automate typing
Typing the same things into the browser is some of the dullest work there is. Names, emails, codes, notes, the same fields filled over and over. A bot can type it all for you, pulling each value from a sheet and working through every row, so you fill a form once and never again. There are three ways to start, with no code, with code, or with a Claude skill.
What I mean by automating typing
Automating typing means a bot enters text into a page for you. It clicks into a field, types the value, moves to the next field with Tab or a click, and repeats. The value can be fixed, or it can come from your data, a name from one column, an email from another. That is the difference between typing once and typing a thousand rows without lifting a finger.
Typing is about the data behind it
Pressing keys is the easy part. What makes automated typing worth it is where the text comes from. Pull it from a Google Sheet, an Excel file, or a webhook, and the same form fills with a different row every time. Map each column to a field once, then loop. A name lands in the name field, an order number in the order field, a note in the note field, row after row.
Without data behind it, typing is just a macro that types the same thing. With data, it clears a backlog. So the first question is not how to type, it is where the values live and how each one maps to a field.
Who this is for
This is for anyone who keys the same data into the browser all day. Entering orders, updating records, copying values from a spreadsheet into a web app one field at a time. And for anyone holding a list that has to go into a form, field by field, row by row. No-coders and coders both, since you can build it without code and drop into code when you want.
How I'd approach it
Start with the data. Get your values into a Google Sheet or Excel with one column per field. Then map them, point each typing step at a field and pull its value from the matching column. Run one row and read it back to check every value landed in the right place. Then loop the rest.
Data first, map second, test one, then run. That order keeps it honest. I would lay out the first draft with Build with description.
Automate typing from a description
Describe the fields and where each value comes from in the Chrome extension and it builds the steps for you. Give it a few short lines, check what it made, and run it. Explore no-code.
To the right is an example. Describe the fields and where each value comes from, and the AI lays out the steps.
Chrome extensionInstructions
- Open the form13 / 500
- Read each row from a Google Sheet33 / 500
- Type the name and email into their fields41 / 500
- Tab to the notes field and type the note40 / 500
- Submit, then take the next row30 / 500
Automate typing 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.
Code toolimport { 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();
// Each row would come from your Google Sheet
const rows = [
{ name: "Ada Lovelace", email: "ada@example.com", note: "VIP" },
{ name: "Alan Turing", email: "alan@example.com", note: "Follow up" },
];
for (const row of rows) {
await page.goto("https://example.com/new");
// Set the value straight into each field
await page.fill("#name", row.name);
await page.fill("#email", row.email);
// Some fields only register text typed key by key
await page.locator("#note").pressSequentially(row.note, { delay: 20 });
await page.click("button[type=submit]");
await page.waitForSelector(".saved");
}
} 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 fields and your data. It builds the bot for you, no-code or code, mapping each column to a field and typing every row.

What can you automate?
Most text fields. A couple of cases worth knowing first.
Works well
- Typing names, emails, and codes from a sheet
- Filling notes and descriptions
- Moving between fields with Tab
- Clearing a field before typing
- Filling the same form across many rows
Harder
- Autocomplete fields that filter as you type
- Rich text and contenteditable boxes
- Masked inputs like phone or card numbers
Don't try
- Posting spam or fake content
- Anything against a site's terms
- Filling a form with data you are not allowed to use
What I'd watch out for
Typing looks simple until a field refuses the text. Here is what I would watch for.
Fields that ignore set text
Some fields, often React or custom widgets, ignore text that is set in one go and only react to real keystrokes. If a value does not stick, type it key by key, or click the field first so it is focused.
Autocomplete and dropdowns
A field that filters as you type needs a pause, then a click on the option. Typing the full value and moving on often leaves nothing selected. Type, wait for the list, then pick.
Clear before you type
Typing into a field that already holds text appends or jams the values together. Clear the field first, then type the new value.
Tabbing between fields
Moving with Tab is faster than clicking each field, but only if the page tabs in the order you expect. Check the tab order once, or click each field to be safe.