← All work

Project · Humanitarian AI · Jun–Oct 2026

OCHA-RAG

Four months on OCHA RAG, the AI system the UN OCHA Assessment & Analysis Cell uses to draft situation analyses from the evidence a crisis produces. I used it in three earthquake responses, then turned what broke in the field into tested improvements to the product.

Context
UN OCHA HPCS, Assessment & Analysis Cell, Geneva
Role
Information Management Intern
Stack
Rust · Postgres/pgvector · knowledge graph · Next.js · Python · Azure
46pull requests opened, 38 merged
77commits across 5 repositories
3earthquake responses supported
6 wksspent on the reporting module

Role and approach

I worked with the Cell's lead developer on three versions of the system: a Python command-line pipeline built per event, a web interface for it deployed on Azure, and the current Rust service with a knowledge graph, vector search and a web console.

Each emergency was a live test. During the response I ran the tool and delivered what the office needed; afterwards I fixed the root cause in the product. Three rules guided the work: reproduce a defect on real data before naming its cause, make sure every new check can actually fail, and land every change through a reviewed pull request.

Emergency responses

Jun 2026Philippines · M7.8

Official figures behind a CAPTCHA

Problem. The national disaster agency's bulletins, the source for casualty figures, sat behind Cloudflare and a CAPTCHA.

Solution. A browser-automation path with local drivers for restricted networks, then a pivot to mirror sites.

Impact: official national figures reached the report pipeline during the response.

Jun–Jul 2026Venezuela

The RAG CLI and a web UI in production

Problem. Analysts needed reports within hours from a pipeline that had to be run by hand.

Solution. Deployed a web interface on Azure, added event-anchored news search, number checking against authoritative figures, and cluster and needs-assessment templates.

Impact: 4 situation-analysis editions, 3 cluster analyses and a needs assessment in two weeks; country offices trained to run it.

Aug 2026Colombia · M7.4

Hard-to-reach rural villages

Problem. Damage counts covered towns; dispersed rural settlements were invisible. The office also needed cluster-ready analysis.

Solution. Coordination support and cluster briefs for the country office; sampled the ShakeMap intensity grid at every populated centre in six departments.

Impact: 271 rural settlements at intensity VII–VIII flagged, 34 in Chocó, for access planning.

Aug 2026Colombia · dashboard

NASA satellite fire hazard map

Problem. The response dashboard had no view of fire activity around the epicentre.

Solution. NASA FIRMS active-fire detections over the shaking bands, with a narrative where every fire figure comes from the data, never from the model.

Impact: detections rose from 47 a day before the quake to 351 on quake day.

Improvements: platform, ingestion and query

The reporting module

About six weeks of the four months went here. The goal: a report an analyst can clear, written as prose, scoped to an area, with every figure grounded and every claim cited.

The design rule behind all of it: a person decides the numbers, the engine shows its sources. Figures from different sources are never averaged or summed by a model; a verified figure settles the headline and the spread stays visible.

Where it goes next

For questions about OCHA RAG or AI in humanitarian analysis, get in touch.

This page describes my own contribution at a high level. It does not represent the official views of the United Nations, and no internal data, code or documents are shared.