# harvard-artifacts-collection-etl-analytics

A skill for building an ETL pipeline and analytics dashboard on Harvard Art Museums API data with Python, SQL and Streamlit.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1900 installs · ★ 5
- Author: reason-machines
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/reason-machines/data-skills/tree/HEAD/skills/harvard-artifacts-collection-etl-analytics/SKILL.md
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/skills/harvard-artifacts-collection-etl-analytics

## What it does

The skill walks the agent through the whole chain: API → ETL → SQL → analytics → visualization. The data source is the Harvard Art Museums API, extraction runs on Python with `requests` and `pandas`, the database is MySQL or TiDB Cloud, and the dashboard is Streamlit with Plotly. Inside are functions for paged artifact fetching with rate limiting, splitting nested JSON into three tables (metadata, images, colors), and creating the database schema.

You need a Harvard Art Museums API key and database access up front: `HARVARD_API_KEY`, `DB_HOST`, `DB_USER`, `DB_PASSWORD`, `DB_NAME`. Without the key the extraction never starts, because the first API call comes back as an error. Dependencies install from `requirements.txt`.

The description claims 20+ analytical queries with auto-generated charts, but the text is cut off, so don't count on a specific query set yet. The skill runs in Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-artifacts-collection-etl-analytics -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/harvard-artifacts-collection-etl-analytics/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/harvard-artifacts-collection-etl-analytics/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-artifacts-collection-etl-analytics -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/harvard-artifacts-collection-etl-analytics/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-artifacts-collection-etl-analytics -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/harvard-artifacts-collection-etl-analytics/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install reason-machines/data-skills harvard-artifacts-collection-etl-analytics
```

2. **Manually: put the files in place**
- File: `.github/skills/harvard-artifacts-collection-etl-analytics/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-artifacts-collection-etl-analytics -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/reason-machines/data-skills --path skills/harvard-artifacts-collection-etl-analytics
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/harvard-artifacts-collection-etl-analytics/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-artifacts-collection-etl-analytics -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/reason-machines/data-skills/tree/HEAD/skills/harvard-artifacts-collection-etl-analytics/SKILL.md

## When to use it
- fetch artifacts from the Harvard Art Museums API page by page
- split nested JSON into metadata, image and color tables
- create the database schema and load the data
- write SQL queries for collection analytics
- build an interactive Streamlit dashboard with Plotly charts

## Example prompts
- build an ETL pipeline for Harvard Art Museums API data
- split the artifacts into metadata, image and color tables
- create a Streamlit dashboard with collection analytics

## Similar
- [etl-connector-strategy](https://affpapa.org/en/nevibecode/skills/etl-connector-strategy.md) — skill · 8000 installs
- [ETL Pipeline](https://affpapa.org/en/nevibecode/skills/etl-pipeline.md) — skill · 4800 installs
- [pyspark-etl-best-practices-cursorrules-prompt-file](https://affpapa.org/en/nevibecode/rules/pyspark-etl-best-practices-cursorrules-prompt-file.md) — rule · ★ 41011
- [mysql](https://affpapa.org/en/nevibecode/skills/sanjay3290-mysql.md) — skill · 420 installs
- [business-analytics-reporter](https://affpapa.org/en/nevibecode/skills/business-analytics-reporter.md) — skill · 2200 installs
- [sql-pro](https://affpapa.org/en/nevibecode/skills/httpsgithubcomjeffallan-sql-pro.md) — skill · 6400 installs

From the same set: [reason-machines/data-skills](https://affpapa.org/en/nevibecode/by/reason-machines/data-skills.md) — 22 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
