Data cleanup · List building · PDF extraction
I clean up the data
nobody wants to touch.
Spreadsheets, PDFs, and messy exports — done to spec, on time. When the job repeats, I automate it, and you get the script along with the file.
Two of the three examples below run on public data. You can download the source and check my output against it.
- Business name
- JAMES ROBINSON, INC.James Robinson, Inc.Rebuilt from all caps, keeping Inc., initials and Mc- names intact
- Phone
- 2127526166(212) 752-6166One of eight phone formats found in the file, normalised to one
- Address
- 480 PARK AVENUE480 Park AvenueCased to match the rest of the file; doubled spaces collapsed
- Licensed since
- 2003-10-31T00:00:00.0002003-10-31Time component dropped — the export added it, the data never had it
Worked examples
Three jobs, start to finish
- Live data
Cleaning a 6,000-row business list
Eight phone formats, 158 duplicate records, ZIP codes that lost their leading zero, and dates set to the year 1900. Repaired, or flagged and left alone.
Read the case- rows in
- 6,000
- duplicates removed
- 158
- runtime
- 0.23s
- Live data
Pulling 7,760 numbers out of a printed PDF
Eleven pages of three-up printed tables into one spreadsheet — then checked against the structure the document guarantees, so the result can be signed off without hand-counting.
Read the case- rows out
- 1,940
- gaps found
- 0
- verification
- PASS
- Sample project
A product catalogue built to survive being handed over
Forty products with validation on every column, a re-order rule in the conditional formatting, a summary made of live formulas, and a data dictionary for whoever maintains it next.
Read the case- products
- 40
- validation rules
- 6
- sheets
- 3
Scope
What a project looks like
- Typical size
- 1,000 to 20,000 rows, or 10 to 200 pages of PDF
- Turnaround
- Two to three working days. Same day under 1,000 rows
- Revisions
- One round included, against the agreed format spec
- You receive
- The clean file, a separate file of flagged rows with reasons, and the script that produced both
- Delivered in
- Google Sheets, Docs and Slides, or Excel, Word and PowerPoint — whichever your team already opens. CSV in the encoding and delimiter you specify
- Before I start
- One filled-in example row from you, so the format is agreed rather than assumed
Formats
The files you already work in
Google Workspace
Sheets · Docs · Slides
Shared straight to your Drive at whatever access level you want, so there is no download-and-reupload round trip and only ever one live copy of the file.
Microsoft Office
Excel · Word · PowerPoint
Delivered as .xlsx, .docx and .pptx, each one opened and checked after export rather than sent straight out of a script.
Either way the file arrives the same: validation rules and conditional formatting intact, formulas left live rather than flattened into pasted values, named to a stated convention, and documented well enough to hand to the next person. The sample workbook shows exactly that, and you can download it and check.
Method
How the work runs
- 01
Agree the format first
One example row you have already filled in, and a note of which columns may be empty. Most rework on this kind of job comes from guessing this instead of asking.
- 02
Send a sample back early
The first 50 rows, delivered before the rest is touched. If the format is wrong, it is wrong 50 rows in, not 6,000.
- 03
Never invent a value
A missing phone number stays missing and lands in the flagged file with the reason. A blank cell you can act on beats a confident guess you cannot check.
- 04
Prove it before delivery
Row counts, duplicate checks, and — where the source has a structure to check against — a completeness pass. The numbers on this site come from that step.
Straight answer
Why a software engineer takes this work
Because most of it is repetitive, and repetition is what code is for. A list that would take two days by hand takes an afternoon when the rules are written once and run 6,000 times — and the rules can then be re-run when you send the next batch.
The practical difference for you: the work does not get slower as the file gets bigger, every change is applied consistently rather than mostly consistently, and I can tell you exactly what was changed and what was left alone. That last part is the whole job.
Contact
Send me the file
A sample of the data and a sentence about what you need it to look like is enough for a quote. If the file is sensitive, send twenty rows with the names changed — the format is what I need to see.
