A WhatsApp AI agent that talks to real customers on the company's own number is a liability surface. It can be prompt-injected, made to promise things the business won't honour, or made to leak another customer's thread.
What I did about it
Adversarial tests are first-class — the WhatsApp agent has a dedicated suite that attacks it rather than demonstrating the happy path.
Separate systemd units for the backend, the WhatsApp worker and the notification worker, so a stuck message queue cannot take the marketing site down.
The public (site) group is server-rendered for search and link previews; the admin cockpit is client-rendered behind auth.
What I rejected, and why
The project has no committed backup strategy — an honest gap, and the next thing to fix.
There is no committed backup strategy for a database holding HR records, hiring pipelines and customer WhatsApp threads. The application code is careful; the disaster-recovery story is not, and that is the gap I would close first.