wellsfargo/bank-statement-processing/SKILL.md
Wells Fargo bank statement retrieval skill for Seren Desktop: runtime-authenticated PDF download, transaction parsing, and masked SerenDB sync.
npx skillsauth add serenorg/seren-skills bank-statement-processingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Skill instructions are preloaded in context when this skill is active. Do not perform filesystem searches or tool-driven exploration to rediscover them; use the guidance below directly.
--browser-app / --browser-type are provided.https://wellsfargo.com/ automatically before handoff.Accounts -> View Statements & Documents.auth_prompted asks for username/password at runtime.playwright_browser captures selected browser target (prompted in manual mode).otp_waiting pauses and prompts for OTP if challenge appears.authenticated confirms dashboard/session access.statement_indexed discovers statement rows.pdf_downloaded downloads PDFs to local artifacts.pdf_parsed extracts normalized transaction rows.classified applies rules-first + LLM-fallback categorization.serendb_synced upserts masked metadata and transaction rows.complete writes a user-facing success report.SerenDB URL resolution order:
WF_SERENDB_URL if explicitly provided.seren env init with resolved project/branch).seren list-all-databases using
serendb.project_name, serendb.branch_name, and serendb.database_name (default serendb).Before running this skill, check for an existing Seren API key in this order:
API_KEY automatically. Check: echo $API_KEY. If set, no further action is needed..env file — check if SEREN_API_KEY is already set in the skill's .env file. If set, no further action is needed.SEREN_API_KEY is exported in the current shell. If set, no further action is needed.Only if none of the above are set, register a new agent account:
curl -sS -X POST "https://api.serendb.com/auth/agent" \
-H "Content-Type: application/json" \
-d '{"name":"bank-statement-processing"}'
Extract the API key from the response at .data.agent.api_key — this key is shown only once. Write it to the skill's .env file:
SEREN_API_KEY=<the-returned-key>
Verify:
curl -sS "https://api.serendb.com/auth/me" \
-H "Authorization: Bearer $SEREN_API_KEY"
Do not create a new account if a key already exists. Creating a duplicate account results in a $0-balance key that overrides the user's funded account.
Reference: https://docs.serendb.com/skills.md
cd examples/migrations/wellsfargo-bank-statements-download
python3 -m pip install -r requirements.txt
cp .env.example .env
cp config.example.json config.json
seren auth
# alternative for non-interactive runs: export SEREN_API_KEY
# export SEREN_API_KEY=sb_...
# optional but recommended in multi-project accounts:
# set serendb.project_id (or serendb.project_name) and/or serendb.database_name in config.json
# optional: set PLAYWRIGHT_MCP_SCRIPT in .env if auto-detect is unavailable
# example: /Applications/SerenDesktop.app/Contents/Resources/embedded-runtime/mcp-servers/playwright-stealth/dist/index.js
python3 scripts/run.py --config config.json --mode read-only --months 12 --out artifacts/wellsfargo
python3 scripts/run.py --config config.json --mode read-only --resume --out artifacts/wellsfargo
# End-to-end run
python3 scripts/run.py --mode read-only --months 12 --out artifacts/wellsfargo
# End-to-end run with explicit browser override (skips browser prompt)
python3 scripts/run.py --mode read-only --auth-method manual --browser-app "Google Chrome" --browser-type chrome --months 12 --out artifacts/wellsfargo
# End-to-end run pinned to Firefox stable path
python3 scripts/run.py --mode read-only --auth-method manual --browser-app "Firefox" --browser-type moz-firefox --months 12 --out artifacts/wellsfargo
# End-to-end run with passkey auth (requires local user approval prompt)
python3 scripts/run.py --mode read-only --auth-method passkey --months 12 --out artifacts/wellsfargo
# Parse local PDFs only (skip browser)
python3 scripts/run.py --mode read-only --skip-download --out artifacts/wellsfargo
# Replay SerenDB sync from local artifacts
python3 scripts/run.py --mode read-only --skip-download --replay-serendb <run_id> --out artifacts/wellsfargo
artifacts/wellsfargo/pdfs/...artifacts/wellsfargo/state/checkpoint.jsonartifacts/wellsfargo/reports/<run_id>.jsonartifacts/wellsfargo/reports/<run_id>.mdartifacts/wellsfargo/exports/<run_id>.transactions.jsonlwf_runswf_statement_fileswf_transactionswf_txn_categorieswf_monthly_summaryv_wf_latest_statementsv_wf_transactions_cleanv_wf_monthly_cashflowtesting
Review-first outreach skill for the default Seren Bucks affiliate program. It bootstraps affiliate context via /programs/discover, mines sent-mail history and address books for candidates, persists them into a skill-owned CRM, proposes an editable daily top-10, drafts outbound and reply batches for approval, reconciles affiliate and reply signals, enforces hard DNC, and returns a manual daily digest.
data-ai
Lean partner-link distribution skill for the seren-affiliates publisher program portfolio. Operates one publisher program per run. Bootstraps the affiliate profile (registering on first run), caches joined programs in serendb, ingests contacts from a pasted list or from Gmail/Outlook address books, drafts a pitch once per run via seren-models for operator approval, sends approved copy through Gmail (preferred) or Microsoft Outlook, enforces per-program dedupe plus a global unsubscribe list, and reports local plus live conversion and commission stats from seren-affiliates.
development
Family office: Process an incoming GP capital call notice end-to-end — confirm, fund, log, reconcile.
development
Work with Seren Bounty affiliate bounties: customers create and fund verifier-backed bounties; agents join to receive a referral_code and accrue earnings as qualifying events are verified; a release sweep pays matured earnings out of escrow.