BulkForge

Run one function over a whole list

Read a thousand pages. Ask a model about every row. Send one request per record. Transform a whole column. Paste the list, pick the function, take the table.

BULKFORGE // ONE FUNCTION, EVERY ROW

Run one thing. Over everything.

A list goes in. The same operation runs down every row of it.

Pages read, prompts answered, requests sent, records reshaped.

12 ready-made batches · 5,000 rows a batch

01 / GETTING THE LIST IN

Paste it. Any shape.

Drop a CSV, paste a spreadsheet column, or throw in a JSON export.

It finds the column, drops the blanks, and tells you what it dropped.

.csv · .tsv · .json · .txt · paste

02 / CHOOSING WHAT HAPPENS

Pick the function. Search for it.

Read a page, ask a model, send a request, build a query, resize an image.

Or chain them — step two reads step one, for that row.

03 / BEFORE YOU COMMIT

See the calls. Nothing runs.

Preview resolves your template against the first few rows and shows the literal call.

One wrong token costs a glance instead of five thousand failures.

04 / THEN WALK AWAY

Close the tab. It keeps going.

A queued batch survives a restart and resumes at the row it reached.

A failed row is a row — the run finishes and the table says which and why.

Ready-made batches

Call an API for each item

Send one HTTP request per item. The item can be interpolated into the URL, the headers or the body.

Read the text of each page

Fetch every URL in the list and pull its readable text out of the markup.

Get the metadata of each page

Title, description, canonical, Open Graph and Twitter cards, for every URL in the list.

Collect the links on each page

Every outbound link on every page in the list — the fastest way to turn one list into a bigger one.

Ask a model about each item

Run one prompt per item through a local model. This is the original BulkForge — a prompt template and a list of topics.

Read each page, then summarise it

Two steps per item — fetch the page, then hand THAT page to a model. This is the shape a workflow loop gets wrong: here step 2 sees step 1’s output for the same item.

See all 12 · How it works