Juliana McMillan-Wilhoit
04 Personal · Automation · Always

A small problem. Automated.

2,400+ books. Two library accounts. A process that was annoying enough to fix. Not every problem is enterprise-scale — but the instinct is the same.

Personal project Home / Family Python Selenium OCR Automation
Impact
2,400+
Books in the backlog — automated across two library accounts
0
Manual holds placed since the script went live
Automatic
ILL fallback when books aren't available locally
Same instinct
Kitchen-table scale. Enterprise-level problem-solving.

My kids go through library books faster than I can place holds manually. 2,400+ books in the backlog. Two library accounts. A process that required navigating multiple systems, searching by title, switching accounts — every single book, every single week.

It was a broken process. So I automated it.

Selenium navigates the Polaris library system, OCR pulls titles from screenshots, and the script handles dual-account management with automatic ILL (interlibrary loan) fallback when a book isn't available locally. I haven't manually placed a library hold since.

Selenium-driven automation navigating the Polaris library catalog
OCR-based title extraction from screenshots
Dual-account management — switches between accounts automatically
ILL fallback — automatically triggers interlibrary loan requests when local availability fails
2,400+ book backlog processed without manual intervention
Grayslake Area Public Library catalog site header, the Polaris system the automation drives

The Grayslake Area Public Library's Polaris catalog. My script drives this same interface with Selenium to place holds across two accounts, so I haven't placed one by hand since.

"I genuinely cannot walk past a broken process. The scale changes. The instinct doesn't."

I include this because it's the same instinct I bring to enterprise work — just at kitchen-table scale. The tools are the same. The pattern is the same: find the broken step, understand why it's broken, build the fix.

Whether that's a multi-million dollar supply chain model or a library hold queue, the approach doesn't change.

Impact
I haven't manually placed a library hold since.

The backlog runs. The books arrive. The kids keep reading.

The real point isn't the automation — it's that I applied the same problem-solving instinct to my own kitchen table that I bring to enterprise-scale work. That's not a quirk. It's the methodology.

Tools & Stack
Python Selenium OCR Automation
Back to the beginning
50 interviews to find the real problem: not missing tools, missing policy.
PH360