# Yanli

- **Event:** [Agents in Context Toronto: a MongoDB Hackathon](https://cerebralvalley.ai/e/mongodb-toronto-hackathon)
- **When:** Sat, Nov 14 at 9:00 AM – 9:00 PM (EST)
- **Where:** Toronto, Canada
- **Team:** [Mariia Yanbergs](https://cerebralvalley.ai/u/maryyanbergs), [Ellie Litvin](https://cerebralvalley.ai/u/EllieMarketing)
- **GitHub:** https://github.com/litvinellie-cmyk/MongoDBLitvin-Yanbergs
- **Demo video:** https://youtu.be/ZcaJ-MFsQAE
- **Gallery:** https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/34

Yanli is an AI marketing agent that manages ad budgets for small and medium business owners, marketers and agencies across Facebook, Instagram, Google, TikTok and Reddit, with Shopify sales as the source of truth.

The problem: AI ad tools change budgets on their own and can't explain why or who allowed it. Agencies can't hand client money to something they can't audit, and one bad night can cost thousands.

How it works: every 15 minutes the agent reads real campaign data and decides where money should go, based on cost per result against each client's goal, statistical confidence and how similar past moves turned out. Every action passes one policy gate stored in MongoDB Atlas before it runs. Small safe moves run on their own, bigger ones go to the right person, and anything against the rules is blocked (for example housing ad age targeting, or protected campaigns). After acting, it reads the platform again to verify the change really happened.

What makes it auditable: every action is tied to an identity (agent, owner, senior strategist with a $25 per day limit, junior who can't approve, clients who only see reports). Every policy check, approval with its reason, send and verified result is recorded, and any change can be explained step by step, undone, or viewed as it was at any past moment. A kill switch stops everything, one client or one account, and a circuit breaker halts a client by itself when spend runs away. Only a human can restart it.

It also learns: measured outcomes become client scoped memory, and the agent earns more freedom when its moves helped and loses it when they didn't. Approvals become real GitHub issues: staff can comment /approve or /reject there, and the agent applies the same policy, executes, verifies and closes the ticket. An ElevenLabs voice briefing explains the day's decisions out loud.

Everything was built today at the hackathon. Ad platforms are simulated so no real money moves; GitHub actions and the website audit are real.

## More from Agents in Context Toronto: a MongoDB Hackathon

- [ClusterX](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/31)
- [keepsake](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/32)
- [JQ](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/33)
- [Strata](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/35)
- [AuditGate](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/36)
- [mongogov](https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/37)

---

Markdown version of https://cerebralvalley.ai/e/mongodb-toronto-hackathon/hackathon/gallery/34. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
