Files
amexpal/AGENT.MD
T

50 lines
2.1 KiB
Markdown
Raw Normal View History

Plan
What we're building
A Python-based tool with two main capabilities:
Statement Analysis — Upload AMEX PDF statements, parse transactions, and produce spending insights (categories, trends, totals, etc.)
Automated Statement Retrieval — A web interface that can log into your AMEX account and download statements automatically.
Architecture
Component 1: PDF Statement Parser & Analyser
Python script using pdfplumber or tabula-py to extract transaction data from AMEX PDF statements
Parse out: date, description, amount, and (optionally) category
Produce summary stats: total spend, category breakdown, merchant frequency, monthly trends
Output as structured data (CSV/JSON) + summary report
Component 2: Web App with AMEX Login Automation
A lightweight Flask or FastAPI web app
File upload endpoint for manual PDF analysis
Automated login to AMEX using Playwright (headless browser) — this handles the JS-heavy AMEX site, MFA challenges, etc.
Statement download triggered from the web UI
Component 3: Dashboard / Reporting
Either a simple HTML dashboard (React artifact) or generated charts
Spending by category, merchant, time period
Key Considerations
AMEX login automation is fragile — AMEX actively blocks bots, requires MFA, and changes their UI. Playwright is the most resilient approach but you'll likely need to handle MFA interactively (e.g. pause for SMS/email code entry).
PDF parsing varies by statement format — NZ AMEX statements may differ from US ones. We'll need a sample to tune the parser.
Security — credentials should never be stored in code; we'll use environment variables or a .env file.
Proof of Concept Scope
For the POC, I'll build:
amex_parser.py — PDF statement parser that extracts transactions into structured data
amex_analyser.py — Analysis module (totals, categories, trends)
app.py — Flask web app with upload UI + results display
amex_scraper.py — Playwright-based AMEX login & statement downloader (interactive MFA)
Frontend — Clean upload + dashboard UI
Tech Stack
Python 3.11+
pdfplumber for PDF parsing
Flask for web app
Playwright for browser automation
pandas for data analysis
plotly or chart.js for visualisation