Inspiration

Freelancers don’t lose money because PayPal is hard — they lose it in the gap between messy client chat and actually sending an invoice. Notes live in WhatsApp, amounts change mid-thread, and “I’ll invoice later” becomes weeks of overdue cash.

We wanted an agent that meets freelancers where they already talk, then uses PayPal as the payment rail — not another fake ledger.

What it does

PayPilot turns messy work notes into a local DRAFT invoice. You review a confirmation card, then Confirm. Only then do we create a PayPal sandbox invoice and share link.

After that you can:

  • Track SENT → PAID / OVERDUE (webhooks + sync)
  • See cash and client risk on an AG Grid dashboard (totals computed in code; AI explains)
  • Send capped PayPal reminders with AI-written copy
  • Optionally convert INR → USD with an explicit FX confirm before drafting

Rule we never break: the model drafts locally; a human confirms; PayPal sends.

Try it: paypilot-docker.onrender.com — unlock at /unlock with code paypilot (first hit may take ~60s).

How we built it

  • Next.js + Vercel AI SDK streaming chat with tools (proposeInvoice, cash / risk / overdue)
  • PayPal Agent Toolkit + Invoicing REST for create/send, share links, webhooks, remind
  • Drizzle + libSQL / Turso for invoice state that survives deploys
  • AG Grid on /dashboard for earnings, filters, and risk
  • Render Docker free tier + GitHub Actions for keep-alive and overdue cron
  • Postman collection for API smoke paths
  • Parser evals 40/40; HITL and prompt-injection covered in tests

Challenges we ran into

  1. Keeping the agent helpful without letting it call PayPal create/send itself
  2. Free Render: no disk, cold starts, no cron → Turso + keep-alive + Actions cron
  3. Clear UX so judges never think chat already billed the client
  4. Sanitizing untrusted names/notes/emails and capping invoice size / reminder rate

What we learned

Human-in-the-loop isn’t a demotion for AI — it’s the product. PayPal’s strength is the rail (invoice, pay, webhook, remind). AI’s job is parsing chaos, drafting carefully, and explaining cash risk — then getting out of the way until Confirm.

Links

Built With

Share this project:

Updates

Submission history