I got fired so I built a bank statement converter
I recently got fired and decided to channel my energy into something productive. Over two weeks, I spent 16-hour days building a tool that converts Australian bank PDFs into clean, reliable CSVs, tailored specifically for Aussie banks. Most Aussie banks only provide statements as a PDF, and generic converters often fail: columns drift, multi-line descriptions break parsing, headers shift. Existing tools don’t handle it well and I wanted a tool that just works. To get started, I used my own bank statements to build the initial parsers. There was a "duh" moment when I realised how hard it is…
In plain words
This tool converts Australian bank statement PDFs into clean CSV files. It addresses the common problem that generic converters struggle with Australian bank formats, where columns drift, multi-line descriptions break parsing, and headers shift. Built by someone who spent two weeks developing parsers using their own bank statements, the tool prioritizes trust and privacy by processing data securely. It's designed for Australian individuals and businesses who need reliable statement conversion without generic tools failing on their specific bank formats.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
I recently got fired and decided to channel my energy into something productive. Over two weeks, I spent 16-hour days building a tool that converts Australian bank PDFs into clean, reliable CSVs, tailored specifically for Aussie banks. Most Aussie banks only provide statements as a PDF, and generic converters often fail: columns drift, multi-line descriptions break parsing, headers shift. Existing tools don’t handle it well and I wanted a tool that just works. To get started, I used my own bank statements to build the initial parsers. There was a "duh" moment when I realised how hard it is to get more realistic test data. People don't just hand over their financial ledgers. This solidified my core principle: trust and privacy had to be the absolute top priority. I initially tried building everything client-side in JavaScript for maximum privacy, but performance and reliability were poor, and exposing the parsers on the front-end would have made them easy to copy. I settled on a middle ground: a Python and FastAPI backend on Google Cloud Run. This lets me balance reliability with a strict privacy architecture. Files are processed in real-time and the temp file is deleted immediately after the request is complete. There is no persistent storage and no logging of request bodies. My technical approach is straightforward and focused on reliability: - I use pdfplumber to extract text, avoiding complex and error-prone OCR. - I apply a set of bank-specific regex patterns to pinpoint dates, amounts, and descriptions. - A lookahead heuristic correctly merges multi-line transactions. Each parser is customised to its bank's unique PDF layout quirks. The project is deliberately focused. Instead of supporting hundreds of banks with mediocre results, I'm concentrating on a small set to get them right. It currently supports CommBank, Westpac, UBank, and ING, with ANZ and NAB next. The whole thing is deployed on Cloudflare Pages and outputs clean CSVs ready for Excel, Google Sheets, Xero, or MYOB. It was a fun challenge in reverse-engineering messy, real-world data. Try it out here: https://aussiebankstatements.com I'd love to hear feedback. If it breaks on your statement, a redacted sample would be a huge help for improving the parser. I'm also curious to hear how others here have tackled similar messy data extraction challenges.
More life & fun this month
the category →- TL
Life & fun · 10d ago · louisabraham.github.io

Photosynthesis fires two of your iPhone
Life & fun · 28d ago · photosynthesis.camera
SoloUno▲310Take control of hair pulling, nail biting & skin picking
Life & fun · 28d ago · solouno.io

Scroll through all 43,252,003,274,489,856,000 reachable Rubik's Cube permutations.
Life & fun · 26d ago · everycube.alen.is


Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums. How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies. Repo and tests:…
Life & fun · 26d ago · baselashraf81.github.io
Launched alongside, November 2025
the whole month →
- IB
Life & fun · Nov 2025 · bitsnpieces.dev



- BBoing▲782
Life & fun · Nov 2025 · boing.greg.technology