# harvard-art-museums-etl-analytics

This skill pulls Harvard Art Museums records through the API, stores structured data in SQL, and supports Streamlit dashboards for collection analysis.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 2000 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-art-museums-etl-analytics/SKILL.md
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/skills/harvard-art-museums-etl-analytics

## What it does

The skill lays out a data flow from the Harvard Art Museums API through extraction, transformation, SQL storage, analysis, and visualization. It handles paged requests with rate limiting, separates object metadata from media and color records, and uses relational tables for storage. A set of 20+ SQL queries supports analysis, while Streamlit and Plotly present the results.

The project uses Python with `requests`, `pandas`, `mysql-connector-python`, Streamlit, Plotly, and `python-dotenv`. Configuration belongs in `.env`, including `HARVARD_API_KEY` plus MySQL or TiDB Cloud connection values: `DB_HOST`, `DB_PORT`, `DB_USER`, `DB_PASSWORD`, and `DB_NAME`. Data extraction cannot start without `HARVARD_API_KEY`.

## Install

### Claude Code (native platform)

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

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

### Codex

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

2. **Manually: put the files in place**
- File: `.agents/skills/harvard-art-museums-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-art-museums-etl-analytics -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/harvard-art-museums-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-art-museums-etl-analytics
```

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

### Gemini CLI

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

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

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/harvard-art-museums-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-art-museums-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-art-museums-etl-analytics/SKILL.md

## When to use it
- pull Harvard Art Museums objects through the API
- split raw records into metadata, media, and color data
- store collection records in a relational MySQL schema
- run predefined SQL analysis on museum objects
- display query results in a Streamlit dashboard

## Example prompts
- Create a paginated ETL flow for Harvard Art Museums objects and load the results into MySQL.
- Turn the collection response into metadata, media, and color tables, then add SQL analysis.
- Build a Streamlit and Plotly view for the museum-object query results.

## Similar
- [indicator-setup](https://affpapa.org/en/nevibecode/skills/indicator-setup.md) — skill · 551 installs
- [indicator-dashboard](https://affpapa.org/en/nevibecode/skills/indicator-dashboard.md) — skill · 570 installs
- [mysql](https://affpapa.org/en/nevibecode/skills/sanjay3290-mysql.md) — skill · 420 installs
- [etl-connector-strategy](https://affpapa.org/en/nevibecode/skills/etl-connector-strategy.md) — skill · 8000 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) — 74 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
