πŸ† Start Here: Register & Get Aura Credits: Aura Agent Hackathon

65 years of global health data, one graph, five tools β€” ask anything about why some countries live longer than others.

  • Agent Name:

    Aura-Health-Bot β€” Life Pulse: Global Health Intelligence

  • What it does:

Aura-Health-Bot answers questions about 65+ years of global health data in plain English β€” instantly, accurately, and with supporting data.

Ask it something like "Which high-income countries have the worst infant mortality?" or "Find countries with a health profile similar to Japan" and it traverses a richly connected Neo4j graph, picks the right tool, and responds with a clear answer and a formatted data table.

It is built for five audiences: healthcare professionals, policymakers, researchers, students, and the general public β€” anyone who has ever wondered whether spending more on healthcare actually leads to longer lives.

Five specialised tools power the agent:

Tool Type Purpose
Country Health Overview Cypher Template Full health profile for any country and year
Top Efficiency Countries Cypher Template Countries achieving the most health per dollar spent
Country Health Spending Trend Cypher Template Year-by-year spending evolution for any country
Search Snapshot Context Similarity Search (Vertex AI Β· gemini-embedding-001 Β· 768D) Find countries with a similar health fingerprint using vector search
Natural Language to Cypher Text2Cypher Handles any free-form question the templates cannot

The combination of deterministic Cypher Templates, flexible Text2Cypher, and semantic vector search means the agent handles simple factual queries, complex analytical questions, and fuzzy similarity questions equally well β€” no prompt engineering required from the user.

Live app: sbb-neo4j-auradb-agent-hackathon-life-pulse-aura-health-bot.streamlit.app

Dataset and Why a Graph Fits

The question this dataset asks: Does spending more money on healthcare always lead to longer lives?

The dataset spans 1960 to 2024 β€” over 65 years β€” sourced from three authoritative global institutions:

  • World Bank Open Data (GDP, population, expenditure)

  • WHO Global Health Observatory (life expectancy, mortality)

  • OECD Health Statistics (workforce, spending, outcomes)

It covers every country in the world across 8 key indicator domains: life expectancy, health spending, hospital capacity, infant mortality, maternal mortality, economic context, workforce density, and efficiency.

Why a graph β€” not a relational database β€” is the right choice:

A flat table can store this data. A graph can think with it.

  1. Relationships are the insight. The question "Which low-income countries achieve high life expectancy despite low spending?" requires traversing Country β†’ Snapshot β†’ LifeExpectancy + HealthSpending + IncomeGroup simultaneously. In SQL that's four JOINs. In Neo4j it's a natural path query.

  2. Time is a first-class citizen. Each country's annual snapshots are chained with [:NEXT_YEAR] relationships, making 60-year trend queries as simple as traversing a linked list β€” no date arithmetic or self-joins.

  3. Peer comparison is native. "Compare India to countries in the same income group" is a two-hop traversal: Country β†’ IncomeGroup ← Country. In a graph it reads like a sentence.

  4. Vector search lives in the same store. Each :Snapshot node carries a contextText embedding (768D, Vertex AI Gemini). Finding "countries that feel like Japan" is a single vector similarity query over the same graph, no separate vector database needed.

  5. The schema grows with the problem. Adding pandemic data, mental health indicators, or air quality metrics requires adding nodes β€” no table migrations, no foreign key rewiring.

The graph model in one picture:

(:Country)-[:IN_REGION]->(:Region)
(:Country)-[:IN_INCOME_GROUP]->(:IncomeGroup)
(:Country)-[:HAS_SNAPSHOT]->(:Snapshot)-[:NEXT_YEAR]->(:Snapshot)
(:Snapshot)-[:HAS_LIFE_EXPECTANCY]->(:LifeExpectancy)
(:Snapshot)-[:HAS_SPENDING]->(:HealthSpending)
(:Snapshot)-[:HAS_CAPACITY]->(:HospitalCapacity)
(:Snapshot)-[:HAS_MORTALITY]->(:InfantMortality)
(:Snapshot)-[:HAS_ECONOMY]->(:EconomicContext)
(:Snapshot)-[:HAS_EFFICIENCY]->(:EfficiencyMetrics)

10 node types. 10 relationship types. Every query is a traversal that would have been a multi-page SQL stored procedure.

Screenshot β€” Agent in the Aura Console

Agent in Action:

The agent using the Cypher Template tool to retrieve a precise country health profile β€” shows structured, deterministic retrieval

The agent performing vector similarity search to find countries matching a health profile β€” shows the semantic intelligence layer.

The agent using the text 2 cypher tool to retrieve a precise country efficiency score.

Dashboards:

Explorer:

Nodes & Relationships:

Agent Link

[Launch Live App](https://sbb-neo4j-auradb-agent-hackathon-life-pulse-aura-health-bot.streamlit.app/)

[MCP Server](https://mcp.neo4j.io/agent?project_id=d0b38bd0-7dc4-4136-9d36-a8a863db33ea&agent_id=21b70856-0c04-4e62-9383-681f9cc0cb66)

[GitHub Repository]( GitHub - shrikantbhadane/SBB-Neo4j-AuraDB-Agent-Hackathon-Life-Pulse: This repository is part of Neo4j AuraDB Agent hackathon, this is using Kaggle dataset for life expectancy and health spending for the period of 1960 till today from World Bank Open Data, the World Health Organization (WHO) Global Health Observatory, and OECD Health Statistics Β· GitHub )