Back to skills
SkillHub ClubResearch & OpsFull StackBackend

happenstance

Search your professional network and research people using the Happenstance API.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,084
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B77.6

Install command

npx @skill-hub/cli install openclaw-skills-happenstance

Repository

openclaw/skills

Skill path: skills/dgoss28/happenstance

Search your professional network and research people using the Happenstance API.

Open repository

Best for

Primary workflow: Research & Ops.

Technical facets: Full Stack, Backend.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install happenstance into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding happenstance to shared team environments
  • Use happenstance for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: happenstance
description: Search your professional network and research people using the Happenstance API.
metadata:
  openclaw:
    requires:
      env:
        - HAPPENSTANCE_API_KEY
      bins:
        - curl
    primaryEnv: HAPPENSTANCE_API_KEY
---

# Happenstance

Search your network and get detailed research profiles on people using the Happenstance API.

Documentation: https://developer.happenstance.ai

## Authentication

All requests require the `HAPPENSTANCE_API_KEY` environment variable. Pass it as a Bearer token:

```
Authorization: Bearer $HAPPENSTANCE_API_KEY
```

Base URL: `https://api.happenstance.ai`

## Billing

- **Search**: 2 credits per search (including find-more)
- **Research**: 1 credit per completed research
- Check balance with `GET /v1/usage`
- Purchase credits at https://happenstance.ai/settings/api

## Available Operations

### 1. Search Your Network

Search for people across groups and connections. Searches run asynchronously.

**Start a search:**

```bash
curl -s -X POST https://api.happenstance.ai/v1/search \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "engineers who have worked on AI infrastructure",
    "include_my_connections": true,
    "include_friends_connections": true
  }'
```

You can also search within specific groups by adding `"group_ids": ["uuid1", "uuid2"]`. Get group IDs from `GET /v1/groups`.

At least one search source is required: `group_ids`, `include_my_connections: true`, or `include_friends_connections: true`.

**Response:**

```json
{"id": "search-uuid", "url": "https://happenstance.ai/search/search-uuid"}
```

**Poll for results** (every 5-10 seconds until status is `COMPLETED` or `FAILED`):

```bash
curl -s https://api.happenstance.ai/v1/search/SEARCH_ID \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

**Completed response includes:**

- `status`: `RUNNING`, `COMPLETED`, or `FAILED`
- `results`: array of people, each with `id`, `name`, `current_title`, `current_company`, `summary`, `weighted_traits_score`, `socials` (with `happenstance_url`, `linkedin_url`, `twitter_url`), `mutuals`, and `traits`
- `has_more`: boolean indicating if more results are available
- `mutuals`: top-level array of mutual connections (results reference these by index)
- `traits`: top-level array of trait definitions (results reference these by index)

### 2. Find More Results

When `has_more` is `true` on a completed search, get additional results that exclude all previously returned people. Costs 2 credits.

```bash
curl -s -X POST https://api.happenstance.ai/v1/search/SEARCH_ID/find-more \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

**Response:**

```json
{"page_id": "page-uuid", "parent_search_id": "search-uuid"}
```

Then poll with the page_id:

```bash
curl -s "https://api.happenstance.ai/v1/search/SEARCH_ID?page_id=PAGE_ID" \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

### 3. Research a Person

Get a detailed professional profile for a specific person. Runs asynchronously.

**Start research:**

```bash
curl -s -X POST https://api.happenstance.ai/v1/research \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "Garry Tan, CEO of Y Combinator, @garrytan on Twitter"}'
```

Include as many details as possible (full name, company, title, location, social handles) for best results.

**Response:**

```json
{"id": "research-uuid"}
```

**Poll for results** (every 5-10 seconds until status is `COMPLETED`, `FAILED`, or `FAILED_AMBIGUOUS`):

```bash
curl -s https://api.happenstance.ai/v1/research/RESEARCH_ID \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

**Completed response includes a `profile` object with:**

- `person_metadata`: `full_name`, `alternate_names`, `profile_urls`, `current_locations`, `tagline`
- `employment`: array of jobs with `company_name`, `job_title`, `start_date`, `end_date`, `description`
- `education`: array with `university_name`, `degree`, `start_date`, `end_date`
- `projects`: array with `title`, `description`, `urls`
- `writings`: array of publications with `title`, `description`, `date`, `urls`
- `hobbies`: array with `description`
- `summary`: overall `text` summary with supporting `urls`

### 4. List Groups

Get the groups you can search within:

```bash
curl -s https://api.happenstance.ai/v1/groups \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

Returns `{"groups": [{"id": "uuid", "name": "Group Name"}, ...]}`.

### 5. Check Credits and Usage

```bash
curl -s https://api.happenstance.ai/v1/usage \
  -H "Authorization: Bearer $HAPPENSTANCE_API_KEY"
```

Returns `balance_credits`, `has_credits`, `purchases`, `usage` history, and `auto_reload` settings.

## Error Handling

Errors use RFC 7807 format:

```json
{"type": "about:blank", "title": "Bad Request", "status": 400, "detail": "Description must not be empty", "instance": "/v1/research"}
```

Key status codes:
- `401`: Invalid or missing API key
- `402`: Insufficient credits
- `429`: Too many concurrent requests (max 10 running searches or research requests)
- `500`/`503`: Server error, retry with backoff

## Tips

- Always check credits before starting multiple searches or research requests.
- Search typically completes in 30-60 seconds. Research takes 1-3 minutes.
- Each search returns up to 30 results. Use find-more for additional pages.
- When presenting search results, include the person's name, title, company, summary, and Happenstance profile link.
- When presenting research, summarize the profile and link to sources.
- The more data sources the user connects, the better the search results.


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### _meta.json

```json
{
  "owner": "dgoss28",
  "slug": "happenstance",
  "displayName": "Happenstance",
  "latest": {
    "version": "1.0.0",
    "publishedAt": 1771360739984,
    "commit": "https://github.com/openclaw/skills/commit/89d088f9540139dbf87bc6363dad218df6735471"
  },
  "history": []
}

```

happenstance | SkillHub