The International Committee of the Red Cross faced a persistent operational bottleneck: locating relevant passages within UN resolutions required tedious manual searches through PDF archives. "We have a problem. Our current search method for sifting through PDFs is extremely manual and time consuming. Is there an easier way?" This challenge prompted the development of a natural language search platform designed to streamline access to decades of UN documentation and accelerate humanitarian diplomacy.
Unlocking the United Nations' legacy for rapid action
Since its founding in 1945, the United Nations has accumulated a vast repository of resolutions and policy documents shaping international peace and security. Organizations like the ICRC rely on this institutional knowledge when advising member states on international humanitarian law, yet the archival nature of these materials has made rapid retrieval difficult. Delegates working on humanitarian negotiations often need to reference precedent-setting language from previous resolutions, a task that traditionally demands hours of document review unsuited to the urgency of modern diplomatic engagement.
A live, accessible, and scalable search platform
The solution takes the form of a single-page application allowing users to submit natural language queries and receive instant results from UN resolution databases. The platform is now operational at resolutions.projectrefuge.io, demonstrating how targeted technology can democratize access to critical policy information.
How it works
- Text extraction and structuring: Amazon Textract processed decades of UN Security Council Resolutions, Presidential Statements, and six years of UN General Assembly Resolutions. A Go-based script then applied Regex pattern matching to segment the extracted text into individual resolutions, preparing them for database indexing.
- Search-ready database with MongoDB Atlas: A Node.js script adapted from MongoDB templates uploaded the parsed resolutions as embeddings into MongoDB Atlas, structuring the content to enable rapid semantic retrieval.
- User interface built with Vue.js: The front end presents an intuitive single-page application where users enter semantic queries—for example, "resolutions on humanitarian access in armed conflicts"—and retrieve relevant documents within seconds.
- Backend hosted on AWS: AWS Lambda and API Gateway provide the backend infrastructure, delivering scalability and consistent performance. The entire application runs as a subdomain on AWS Amplify.

The codebase is publicly accessible at projectrefuge/resolutions-search-template, enabling other organizations to customize and extend the tool for their own document repositories.
Broader implications: a blueprint for impact
The architecture extends well beyond UN resolutions. With minimal adjustments, the same approach can index and search legal codes, policy frameworks, regulatory documents, and other text-heavy collections. For nonprofits, the project illustrates the strategic advantage of maintaining proprietary code and developing purpose-built solutions. For developers, it underscores how open-source contributions can drive meaningful progress in humanitarian and public policy domains.
Build together with open source
Initiatives like resolutions.projectrefuge.io showcase open source's capacity to reshape information access and utilization. Nonprofit organizations can explore GitHub for Nonprofits to identify tools and resources for building custom solutions. Developers interested in humanitarian technology can review the For Good First Issue program to locate projects matching their expertise and professional values.
As collaboration between technology teams and humanitarian organizations continues, additional opportunities to bridge the gap between software development and humanitarian action will emerge. By combining open-source principles with collaborative development practices, the sector can ensure that humanitarian initiatives benefit from modern technological capabilities and that knowledge becomes genuinely accessible to those who need it most.
Source: GitHub Blog