Custom scriptDevelopment & Customization

A custom script in Python, JavaScript or Google Apps Script that does your routine work: files, tables, emails and reports

Usually ready in 15 minutesRevisions includedQuality check
Packages
Payment protectionDetails
  • Revisions within the package are free.
  • If you do not respond within 3 days of delivery, the work is accepted automatically.

The money is reserved when you pay and released only once you accept the work.

A custom script in Python, JavaScript or Google Apps Script that does your routine work: files, tables, emails and reports

Example result

Example for the Standard package

Merging the monthly sales files of 9 shops into one Excel report

How it is run

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN  shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO  Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")

Settings, not code

The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:

[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price

A part of the code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Reads one shop's file and gives it the report's column names."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.

Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.

The client and all details are made up.

About this service

A script that does a task you now do by hand: renames and sorts files, merges or cleans tables, turns one file format into another, sends emails from a Google Sheet, makes invoices or reports, or checks a list of web pages. Describe the task, what goes in and what should come out, and attach example files if you have them (CSV, Excel, text files, JSON or screenshots). We write the code in the language that suits the task: Python, JavaScript (Node.js), Google Apps Script for Google Sheets, Docs and Gmail, PowerShell or Bash. You get an archive with the code and a README that explains in plain words what to install and how to set it up and run it, and you can read the code on the order page too. We do not run the script on your computer or in your accounts: you run it yourself, on your own data, so it is worth trying it on a copy first. Passwords and keys stay out of the code: the script reads them from a settings file you fill in yourself. Scripts that get into accounts without permission, get around protection or collect personal data are not made.

What is included

  • What you getA ZIP archive with the code, a README with step-by-step instructions and, where needed, an example settings file; the code is also shown on the order page.
  • The language that suits the taskPython, JavaScript, Apps Script, PowerShell or Bash
  • A plain guideWhat to install and how to run it, step by step
  • Settings in one placeFolders, addresses and keys in a file you fill in
  • Works on your dataFiles on your computer, CSV, Excel or Google Sheets
  • Readable codeWith comments, easy to change later

How it works

  1. 1
    TaskYou describe what the script should do and attach example files
  2. 2
    CodeWe write the code and the guide to running it
  3. 3
    Try itYou run it on a copy of your data
  4. 4
    ChangesYou ask for changes within your package and send any error message

What we need from you

What the script should do, step by step: what it takes (files, a folder, a Google Sheet, a list of links), what it should produce and any rules it must follow. Where it will run: Windows, macOS or Linux, Google Sheets, or a server you have, and the language if you need a particular one. Example files help a lot: a few rows of your table as CSV or Excel, a sample text or JSON file, or screenshots. Never send real passwords or keys: the guide explains where you put them yourself.

We will ask you:

  • What should the script do?
  • What does it take, and what should it produce?
  • Where will it run?
  • A language or tools you need
  • Anything it must never do

Compare packages

PackagesBasicSmall script$19StandardScript with settings$39PremiumSmall tool$79
Deadline1 day2 days3 days
Revisions123
Codeup to 150 linesup to 400 linesup to 1,000 lines
Files of code1up to 3up to 8
Settings fileNoYesYes
Clear error messages and a logNoYesYes
Run options and a guide to running it on a scheduleNoNoYes
Guide to installing and running it (README)YesYesYes
Order BasicOrder StandardOrder Premium

Payment protection

You pay when you order, but the money is released only for accepted work.

  • Fixed priceThe package price does not change after you pay.
  • The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
  • Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
  • Free revisionsAsk for changes within your brief as many times as the package allows.
  • Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
  • Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
How it works →

Questions and answers

Do I need to know programming?

No. The README explains, step by step, what to install (for Python, for example, Python itself, once) and how to run the script. For Google Apps Script you paste the code into the script editor of your sheet and press Run.

Will you run the script for me?

No. You run it on your computer, server or Google account, on your own data, so your files and accounts stay with you. Try it on a copy of your data first.

Which language should I choose?

If you are not sure, leave it to us: Google Apps Script for work inside Google Sheets, Docs and Gmail, Python for files, tables and web pages on a computer, PowerShell for Windows tasks and Bash for Linux servers.

Can the script work with a service's API?

Yes, if the service has a public API and you get your own key from it: we write the code by the service's documentation, and you put your key in the settings file. We do not create accounts or keys for you.

What if it does not work on my computer?

Send us the error message or a screenshot on the order page and ask for a change within your package. Most problems are a missing library or a path in the settings, which the README covers.

Did not find your answer?

Packages