Inspiration

We were playing around with personal helper agents like Meta's newly released Muse agent and Grok Bot. We really appreciated the versatility of cloud computer agents as they work autonomously on a task and then ping us while we can go about our life! However most tasks that we give to these helper agents are one-off and quite simple. Ambassador is outreach agent that can help you organize for some of the biggest moments in your or your teams life, it stemmed from our teams experience in organizing hackathon outreach which is a huge effort that requires lots of people, time and effort into making these events find the funding they need. Talking to dozens of different people in dozens of unique threads and applications makes no sense if it is for the sake of a single goal. Ambassador streamlines one to many communication for outreach campaigns. Ambassador was built from the ground up to make large events like this easier to run for local organizations/ families!

What it does

We built Ambassador with two main parts: a Next.js website for managing your workspace and a Python agent powered by Hermes for handling conversations. We use Neon Postgres to store workspace data and private S3 compatible storage for uploaded documents.

Photon connects the agent to iMessage, while Google's APIs let us connect Gmail and Calendar. We also built review widgets so users can see exactly what Ambassador proposes before approving an email or calendar event. Bringing these pieces together lets users manage their campaign on the website and continue working with it through a conversation!

How we built it

One of our biggest challenges was connecting a conversational agent to real actions while keeping the user in control. Asking for an email and approving an email are different things, so we needed to make that distinction clear throughout the system.

We also had to handle private documents, Google account permissions, and failures during sending. An agent restarting halfway through a task should not accidentally send the same email again! Building around these cases pushed us to think beyond a working demo and consider what people would need to trust Ambassador with their outreach.

Challenges we ran into

One of our biggest challenges was connecting a conversational agent to real actions while keeping the user in control. Asking for an email and approving an email are different things, so we needed to make that distinction clear throughout the system.

We also had to handle private documents, Google account permissions, and failures during sending. An agent restarting halfway through a task should not accidentally send the same email again! Building around these cases pushed us to think beyond a working demo and consider what people would need to trust Ambassador with their outreach.

Accomplishments that we're proud of:

We're proud of bringing campaign management, document context, and conversational outreach together in one project. Ambassador can prepare personalized emails for multiple recipients from a shared template, include the user's documents, and present everything for review.

We're especially excited about the iMessage experience! Being able to ask for help from a familiar messaging app makes the project feel much more approachable for small teams and community organizers.

What we learned

We learned that building a useful agent involves much more than getting a model to write a good response. The surrounding system needs to provide the right context, protect private information, handle failures, and make approval easy to understand.

We also learned how much coordination goes into outreach. Writing an email is only one step; keeping track of people, documents, meetings, and follow-ups is what turns individual messages into a campaign.

What's next for Ambassador!

Our vision is for Ambassador to become a dependable organizing partner for teams, local organizations, and families planning their biggest moments! We would like to be a widely adopted open-source framework for outreach organization wide!

Built With

Share this project:

Updates

Submission history