Batch Prompt Runner (BYO Key)

Run one prompt against a list of inputs — download results as CSV

Paste a CSV of inputs and a prompt template with placeholders, and the tool runs your prompt against each row using your own API key, then downloads the results as a CSV. Throttled, resumable, and fully client-side. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

How are placeholders matched?

The first CSV row is treated as headers. Any double-brace token like {{column}} in your template is replaced with that row's value for the matching header. Unmatched tokens are left as-is so you can spot typos.

Batch prompt runner

When you need to run the same prompt over a list — classify a hundred tickets, summarise fifty product descriptions, extract fields from a column of text — the batch prompt runner does it in one pass. Paste a CSV of inputs and a prompt template with placeholders matching your column headers; the tool fills the template per row, sends each to the model with your own API key, and hands you back a CSV with a new output column. It throttles requests to respect rate limits and records errors per row instead of failing the whole job.

How it works

You paste a CSV with a header row and a template using double-brace placeholders like {{name}} that map to those headers. For each data row, the tool substitutes the values, sends the filled prompt to your chosen model, and collects the response. Requests run with limited concurrency and a small delay so you stay under typical rate limits; any row that errors is captured with its error message and the batch keeps going. A live progress bar shows how far along it is. When finished, you download a CSV containing your original columns plus an added response column. Everything happens in your browser — the key and all requests go directly to the provider and are never stored.

Common use cases

Classification. A CSV of support tickets with a body column; the template reads “Classify the following support ticket into one of: billing, technical, account, other. Reply with only the category label.\n\nTicket: {{body}}”. The output column becomes a label for each row, ready for analysis or routing.

Summarisation. A spreadsheet of product descriptions too long to read at scale; the template condenses each into two sentences. The summarised column becomes a short blurb for a product database.

Data extraction. A column of free-text job descriptions; the template extracts the salary range, location, and seniority level as a comma-separated triple. The structured output makes filtering and analysis possible.

Translation or rewriting. A column of English marketing copy to localise into another language, or to rewrite at a different reading level.

Sentiment scoring. A column of customer reviews; the template returns a score from 1–5 based on sentiment, converting unstructured feedback into a filterable metric.

Understanding the template syntax

Each column header in your CSV becomes a placeholder — wrap it in double braces. A CSV with headers name, company, and industry can use {{name}}, {{company}}, and {{industry}} anywhere in the prompt template. Placeholders are replaced verbatim, so if a cell contains a multi-line value the full value goes in. Unmatched placeholders (e.g. a typo like {{nme}}) are left in the prompt unchanged, which makes them easy to spot in the output.

Tips and notes

  • Match headers exactly. {{Name}} and {{name}} are different. Unmatched placeholders are left visible so typos are easy to spot.
  • Test one row first. Run a tiny CSV to confirm the template and output before launching a big, billable batch.
  • Mind the cost. Every row is a real API call billed to your account; a thousand rows is a thousand requests.
  • Split very large jobs. Browser tabs are not ideal for huge batches — chunk the CSV and run pieces.
  • Keep prompts short. Longer prompts cost more tokens per row; trim instructions to the minimum needed to get the output format you want.