Data extraction is one of the most time-consuming steps in a systematic review or meta-analysis — manually locating and coding sample sizes, study designs, and intervention details across dozens of papers.
MetaMate uses AI to generate a first draft of your extraction, then gives you the tools to verify every value: confidence scores, evidence type indicators, page citations, and a synchronized PDF viewer — all in one interface. Define your own coding scheme, verify the results, and export to CSV. No programming required.
- Researcher-defined coding schemes — not limited to PICO; supports any variables relevant to your review
- Confidence scores and evidence type indicators (Direct Evidence vs. Inference) for each extracted value
- Synchronized PDF viewer for side-by-side verification of extracted data
- Page-level citations linking each value back to the source text
- CSV export for use with your statistical analysis software
- Batch processing across multiple PDFs
No installation needed — just open the link above and start extracting.
Run locally with Docker
Download and install Docker Desktop and make sure it's running.
You need an API key from an LLM provider. OpenAI is the default.
Open a terminal (Mac: Terminal app, Windows: PowerShell) and run:
git clone https://github.com/GaoxiangLuo/OpenMetaMate.git
cd OpenMetaMate
cp .env.example .envOpen the .env file in a text editor and replace sk-proj-your-api-key-here with your API key from step 2. Then start the application:
docker-compose up --buildOnce you see the services are running, open http://localhost:3000 in your browser.
To stop, press Ctrl+C in the terminal, then run:
docker-compose downSupported LLM providers: OpenAI, Google (Gemini), OpenRouter, or any OpenAI-compatible API (vLLM, Ollama, etc.). See .env.example for all configuration options.
Manual setup (without Docker)
# Backend
cd backend
pip install uv && uv sync
uv run uvicorn app.main:app --reload --port 8000
# Frontend (in a new terminal)
cd frontend
pnpm install && pnpm devIf you use MetaMate in your research, please cite:
@inproceedings{10.1145/3772363.3798755,
author = {Wang, Xue and Luo, Gaoxiang},
title = {MetaMate: Understanding How Educational Researchers Experience AI-Assisted Data Extraction for Systematic Reviews},
year = {2026},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3772363.3798755},
doi = {10.1145/3772363.3798755},
booktitle = {Proceedings of the Extended Abstracts of the CHI Conference on Human Factors in Computing Systems},
series = {CHI EA '26}
}| Document | Description |
|---|---|
| Contributing Guide | How to contribute, code standards, PR process |
| Cloud Deployment | Self-hosting on AWS with Terraform |
| Infrastructure | Terraform configuration reference |
Project Structure
OpenMetaMate/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/routes/ # API endpoints
│ │ ├── core/ # Configuration & exceptions
│ │ ├── models/ # Pydantic schemas
│ │ └── services/ # LLM, PDF processing, S3
│ ├── pyproject.toml
│ └── Dockerfile
├── frontend/ # Next.js frontend
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── lib/ # API client, types, utilities
│ └── Dockerfile
├── infra/ # Terraform IaC
├── docs/ # Extended documentation
├── plans/ # Architecture decision records
├── docker-compose.yml
└── .env.example
We welcome contributions! See our Contributing Guide for the development workflow, code standards, and PR process.
CC BY-NC 4.0 — see LICENSE

