Building a Solution That Matters: My Capstone Journey with Machine Learning and NPOs
When I first heard about our capstone project — to help a Polish non-profit organization streamline their email management using machine learning — I thought, "This sounds cool!" But as we dug deeper into the problem, it became clear that this project wasn’t just about coding a solution or building a prototype. It was about making a real difference for people who dedicate their lives to helping others. This non-profit, like many small organizations, relies heavily on emails to manage their work — assigning tasks, tracking donations, coordinating events, and reporting to stakeholders. But managing all those emails manually? It’s tedious, time-consuming, and leaves too much room for things to fall through the cracks. That’s where we come in: our goal is to build a tool that automatically categorizes incoming emails, and auto-generating monthly reports, saving the staff time and making their work more efficient. The idea itself isn’t revolutionary — companies have been using email filters for years. But what makes this project special is the care we’ve put into ensuring it’s practical, ethical, and tailored to the unique needs of this NPO. We aren’t just throwing fancy AI at a problem. We’ve had countless meetings with stakeholders to understand their workflow, concerns, and ethical boundaries. We’ve carefully chosen tools that strike a balance between functionality and simplicity, ensuring the solution is something they can actually use, not something they’ll feel overwhelmed by. One of the biggest turning points in the project was when we realized that building a machine learning model from scratch wasn’t feasible. It sounds impressive, sure — "We built our own custom ML model!" — but in reality, it would have taken too much time and wouldn’t necessarily perform better than existing solutions. After a lot of internal discussions, we made a pivotal decision: integrate a pre-trained model like BERT or GPT instead of reinventing the wheel. These models are already highly accurate at understanding text, and by fine-tuning them with our own dataset, we could achieve much better results in less time. But we didn’t stop there. We also made sure the system respected privacy and ethical considerations. All data is anonymized — no names or sensitive contact details are stored. We had access to Microsoft’s API, which could give us additional email details like attachments, but we chose not to use them. Why? Because it would add unnecessary complexity and raise more ethical concerns. It’s better to keep things simple and focused. Throughout this journey, I’ve learned that building a solution isn’t just about the technical side of things. It’s about listening to the people you’re building it for. It’s about making decisions that balance innovation with practicality. And it’s about ensuring your work has a lasting impact. Looking back, I’m proud of what we’ve accomplished so far. We’ve built a working prototype that can categorize emails with a decent level of accuracy. We’ve created a backend API and a web interface that makes interacting with the model seamless. And we’ve laid the foundation for future improvements — expanding the dataset, refining the model, and integrating the tool with other parts of the NPO’s system. What excites me most is the potential impact of this project. It’s not just about saving time; it’s about enabling this NPO to do more of what they do best — helping people. Every minute saved from sorting emails is a minute they can spend on their mission. This capstone journey has been about more than just writing code or learning new tools. It’s been about learning how to solve real-world problems in a meaningful way. It’s about realizing that technology can empower people when it’s designed with empathy and purpose. And that’s what makes this project truly special.