Jose Wenzel  /  Case study

Auto-recovered $24,979 in past-due invoices in 6 weeks.

Late-payment rate cut from 46% to 34% for a US-based staffing agency, with no human drafting a dunning email.

The problem

A 280-VA staffing agency was bleeding revenue through stale invoices, missed follow-ups, and manual reconciliation. One person was spending hours each week building Stripe invoices and chasing payments by hand.

What I built

  1. Invoice generation

    Pulls live VA hours from Google Sheets and finalizes Stripe invoices on a biweekly cycle.

  2. Auto-charge

    Runs cards on file when invoices age past due, with a custom decline-email step that explains what failed and how to fix it.

  3. Reply-aware Gmail dunning

    A 3-stage cadence (initial, 3-day, 7-day) inside the original Gmail thread, so customers see one growing conversation instead of repeated cold nudges.

  4. Out-of-band payment marker

    For Zelle and cash payments, keeps the Stripe books matching reality.

  5. Past-due reporting

    A twice-weekly summary email to the finance team, so nothing slips through.

Measured impact

$24,979

Past-due invoices auto-recovered in 6 weeks

46% → 34%

Late-payment rate (26% relative drop)

56

Late invoices recovered with zero manual dunning emails

Measured over the 6 weeks following rollout, compared against the prior 7-week baseline. Same client, same customer base, same biweekly billing cycle.

Stack

Claude CodePythonStripe APIGmail APIResendGoogle Sheets APImonday.com webhooklaunchd cron

Want this for your service business?

Email JW