The problem

Every day or two I get a message from the bank:

Subject: Mail Notification from Discount Bank (Reference: 220237434)

Hello,

You have a new message from Discount Bank Mail Service.

To view it, click [here].

We are pleased to inform you that starting from November 18, 2024, you will be able to view your mail notifications by clicking the link, which will direct you to the secure site. These notifications will be displayed there, and entering the site will be done with your bank website login credentials.

Always at your service,

Discount Bank

My manual workflow:

  1. Click the link
  2. Enter password (auto-filled by my password manager)
  3. Download the PDF to ~/Downloads
  4. Open and decipher fine-print corporate language
  5. Archive the original email

What the Bot Does Now

  1. Email arrives → trigger
  2. Headless browser logs in, downloads PDF
  3. GPT reads and summarizes the PDF
  4. Bot replies in the original thread with summary + attached PDF

I just scan the summary and archive.

image.png

How to set this up

I tried orchestrating the task with two services: Zapier and n8n. Each had their weaknesses and neither was perfect.

n8n workflow

n8n workflow

Implemented in two platforms

Step Zapier n8n
Email trigger ✅ Easy ✅ Easy
Extract link ✅ Easy ✅ Easy
Browser automation ❗ Requires self-hosted script & server
💰 axiom.ai for a no-code, $50/mo option ❗ Requires self-hosted script & server
PDF text extraction 💰 Needs pdf.co ($10/mo)
❗ Or self-hosted script & server ✅ Built-in parser
GPT summarization ✅ Easy ✅ Easy
Reply in same thread ✅ Native 🤦‍♂️ Native, but missing a critical “replyAs” option - so had to build custom payload for http email
Monthly cost $29 + optional $50 + optional $10 $27 (server is free for my needs)

Browser Automation Options

Use axiom.ai Self-hosted Puppeteer
Cost $50/mo Free (within current usage)
Setup time Minutes: click-and-go selectors Hours: write code, deploy, debug
Maintenance Minimal – axiom handles updates You manage server, handle retries
Limitations Limited action set (but sufficient here) Need retry logic for cold starts on free host

Using Render for a free-hosted server that runs the browser automation

Using Render for a free-hosted server that runs the browser automation