# IRIS Hacker Kit

Build something real in one weekend on live startup data: who's raising (SEC Form D), what shipped (Product Hunt, Show HN), the tech wire, startup attention, early-career jobs and agent-readiness scores.

No key, no sign-up, no dependencies. You need Node 18 or newer.

## Start in 60 seconds

```bash
mkdir iris-kit && cd iris-kit
for f in iris.mjs package.json README.md \
  recipes/01-whos-raising.mjs recipes/02-should-we-build.mjs \
  recipes/03-competitor-watch.mjs recipes/04-readiness-fixer.mjs \
  recipes/05-job-radar.mjs; do
  mkdir -p "$(dirname "$f")"; curl -fsSL -o "$f" "https://iris-media.xyz/examples/hacker-kit/$f"
done
node recipes/01-whos-raising.mjs CA "San Francisco"
```

Or plug IRIS straight into your coding agent:

```bash
claude mcp add --transport http iris https://iris-media.xyz/api/mcp
```

## Python

Zero dependencies, Python 3.9+:

```bash
mkdir -p iris-py && cd iris-py
for f in iris.py whos_raising.py agent.py; do curl -fsSL -o "$f" "https://iris-media.xyz/examples/hacker-kit/python/$f"; done
python3 whos_raising.py CA "San Francisco"
```

`iris.py` gives you `tool(name, args)`, `tools()` and `rest(path, **params)`. `agent.py` is a research agent in about 30 lines: Claude with the IRIS MCP server through the Claude API's MCP connector. It needs `pip install anthropic` and your own `ANTHROPIC_API_KEY`, and it is billed to your Anthropic account. IRIS itself needs no key.

## API and discovery

- OpenAPI 3.1 spec: https://iris-media.xyz/openapi.json (import it into Postman, or generate a client in any language)
- MCP server: https://iris-media.xyz/api/mcp, listed in the official MCP registry as `xyz.iris-media/iris`
- MCP discovery: https://iris-media.xyz/.well-known/mcp/server.json

## The five recipes

| # | Recipe | Try it | Uses |
|---|---|---|---|
| 01 | **Who's raising**: the biggest Form D filings near you, ready for Slack or Discord | `node recipes/01-whos-raising.mjs NY "New York"` | MCP `get_rounds` |
| 02 | **Should we build this?** Before you start, see what shipped and what the news says | `node recipes/02-should-we-build.mjs mcp payments` | MCP `get_launches`, `get_wire` |
| 03 | **Competitor watch**: 8-week attention sparklines for the startups you follow | `node recipes/03-competitor-watch.mjs ANTH,PPLX` | REST `/api/v1/market` |
| 04 | **Agent Readiness fixer**: score a site and write the files it is missing (llms.txt, sitemap, robots, JSON-LD) | `node recipes/04-readiness-fixer.mjs yourstartup.com` | REST `/api/v1/readiness` |
| 05 | **Job radar**: early-career roles at startups, by keyword | `node recipes/05-job-radar.mjs "machine learning" remote` | REST `/api/v1/jobs` |

Set `WEBHOOK_URL` to a Slack or Discord incoming webhook and recipes 01, 03 and 05 post there instead of printing.

`iris.mjs` is the whole client: `tool(name, args)` calls any MCP tool over plain HTTP, and `rest(path, params)` calls the REST API. Read it in two minutes and build your own.

## Offline or on bad Wi-Fi

```bash
npm run hackpack     # saves hackpack.json: rounds, 72h wire, market, readiness 100, tool list
```

One file holds the whole dataset. Build on it offline without worrying about rate limits.

## Ideas that win

- **Who's-raising bot** for your city or campus Discord, posted every morning.
- **Founder CRM enrichment**: a name goes in, and recent filings, launches and jobs come out.
- **Investor desk**: a thesis (AI + devtools, San Francisco) goes in, and a weekly memo comes out (MCP `thesis_report`).
- **Roadmap from the news**: point your coding agent at your repo plus `plan_for_project`.
- **Readiness PR bot**: scan a list of startup sites and open PRs that make them readable by agents.
- **Talent matcher**: match a student's skills to the job radar and to who just raised (newly funded teams hire).

## Rules of the data

- Every fact carries its source link. Keep the links in what you show users.
- A Form D filing discloses the amount sold and the number of investors, not valuations. "Still raising" means the filing reports an amount not yet sold.
- Attention is a public-signal index, not revenue or traffic.
- Jobs come from the companies' own boards. Always send people to apply on the employer's page.

## Show us what you built

Send it through https://iris-media.xyz/builders/challenge. We read every submission and reply personally. Full docs: https://iris-media.xyz/docs
