# GitHub Skill Finder — Full SKILL.md, CLAUDE.md & AGENTS.md (`themineworks/github-skill-discovery`) Actor

Find every Claude/AI agent skill, memory, or agent config repo for a given domain on GitHub, and extract full text of every SKILL.md, CLAUDE.md, AGENTS.md file plus stars & last commit. Compare candidate skills side by side. MCP ready.

- **URL**: https://apify.com/themineworks/github-skill-discovery.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Developer tools, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 skill repo extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🧠 GitHub Skill & Memory Discovery: Full Content for Comparison

### Overview

GitHub Skill & Memory Discovery finds every Claude, AI agent, and coding-agent skill or memory repo for a given domain on GitHub, and extracts the full text of each skill-defining file (`SKILL.md`, `CLAUDE.md`, `AGENTS.md`, `.cursorrules`, `mcp.json`), plus maturity signals (stars, last commit). Give it `"sales outreach"` or `"graphic design for brands"` and get back the actual content, not just metadata, so a human or an LLM can compare candidate skills side by side and pick or synthesise the best one.

Built lean and HTTP-only against GitHub's official Search, REST, and raw-content APIs. Ideal for AI agent builders, skill authors, prompt engineers, and Claude teams that need to survey the state of the art on a topic before writing their own skill.

Reliability posture: blocked, empty, or failed extractions are never charged. Charging only happens after a repo's metadata, skill files, and README have been fetched successfully and the record is on its way to your dataset.

✅ No browser | ✅ Two search modes | ✅ Full file content | ✅ MCP-ready for AI agents

### Features

Discovery + extraction in one run, both repo search and code search.
Full text of every skill file, not just metadata, for real comparison.
Repo maturity signals: stars, last commit date, and match technique.
Optional `githubToken` unlocks precise code search across skill files.
Same output whether you consume it via CSV, JSON, Excel, API, or MCP tool call.

### How it works

Finding the right skill or agent config for a domain is a survey problem. There are usually a dozen or more candidate repos on GitHub, and reading each one manually is slow. This actor combines two GitHub search modes: code search (finds repos whose skill files actually mention your topic, requires a token) and repository search (finds repos whose name, description, or README mention your topic, works without a token). Code search results are ranked first because they are more precise.

For every match, the actor pulls the full text of any file matching the skill patterns above, plus the README as fallback context, plus the maturity signals a reviewer would look at first. Deciding which repo is best or synthesising a new skill from the strongest pieces is a judgment call, and that is exactly what your downstream LLM or reviewer is set up to do with this data.

### 🧾 Input configuration

```json
{
  "query": "sales outreach",
  "maxRepos": 15,
  "githubToken": null
}
```

### 📤 Output format

This is a real record captured from a live run (`query: "claude code skill"`), with the `readme` field shortened for space (the actual dataset row carries the full text):

```json
{
  "owner": "vinta",
  "repo": "awesome-python",
  "fullName": "vinta/awesome-python",
  "url": "https://github.com/vinta/awesome-python",
  "description": "An opinionated list of Python frameworks, libraries, tools, and resources",
  "matchedVia": "repo-search",
  "stars": 308221,
  "updatedAt": "2026-07-15T04:01:20Z",
  "lastCommitAt": "2026-07-14T07:27:15Z",
  "skillFiles": [
    {
      "path": "CLAUDE.md",
      "content": "# CLAUDE.md\n\n## Repository Overview\n\nAn opinionated list of Python frameworks, libraries, tools, and resources. Published at [awesome-python.com](https://awesome-python.com/).\n\n## Entry Guidelines\n\n**Refer to [CONTRIBUTING.md](CONTRIBUTING.md)** for acceptance criteria, quality requirements, rejection rules, and entry format...\n\n## Key Rules\n\n- Alphabetical ordering within categories is mandatory.\n- Quality over quantity. Only \"awesome\" projects.\n- One project per PR.\n- README.md is the single source of content truth."
    },
    {
      "path": "AGENTS.md",
      "content": "# AGENTS.md\n\n## Repository Overview\n\nAn opinionated list of Python frameworks, libraries, tools, and resources. Published at [awesome-python.com](https://awesome-python.com/).\n\n## Entry Guidelines\n\n**Refer to [CONTRIBUTING.md](CONTRIBUTING.md)** for acceptance criteria, quality requirements, rejection rules, and entry format...\n\n## Key Rules\n\n- Alphabetical ordering within categories is mandatory.\n- Quality over quantity. Only \"awesome\" projects.\n- One project per PR."
    }
  ],
  "readme": "# [Awesome Python](https://awesome-python.com/)\n\nAn opinionated guide to the best Python frameworks, libraries, tools, and resources.\n\n**Visit the [website](https://awesome-python.com/) to search and filter projects more easily.**\n\n## Categories\n\n**AI & ML**\n\n- [AI and Agents](#ai-and-agents)\n- [Deep Learning](#deep-learning)... (truncated here, full README text is delivered in the dataset row)",
  "charged": false,
  "scraped_at": "2026-07-15T04:15:58.085Z"
}
```

Every skill-repo record contains these fields:

| Field | Description |
| --- | --- |
| 👤 `owner` | Repo owner |
| 📦 `repo` | Repo name |
| 🏷️ `fullName` | `owner/repo` |
| 🔗 `url` | Canonical GitHub URL |
| 📝 `description` | Repo description |
| 🎯 `matchedVia` | `code-search` or `repo-search` |
| ⭐ `stars` | Star count |
| 🔄 `updatedAt` | Last update datetime |
| ⏰ `lastCommitAt` | Last commit datetime on default branch |
| 📄 `skillFiles` | Array of `{ path, content }` for every matched skill file |
| 📖 `readme` | Full decoded README text |
| 💰 `charged` | Whether the pay-per-event charge for this record went through |
| 🕒 `scraped_at` | ISO timestamp of capture |

### 💼 Common use cases

**Building a new Claude or AI agent skill**
Survey the state of the art on your topic in ten minutes instead of a week.
Feed the extracted content into an LLM to synthesise a stronger skill.

**Prompt engineering research**
Compare how different authors structure a skill file for the same problem.
Reuse tested patterns and avoid known bad structures.

**Team standardisation**
Benchmark your team's SKILL.md and AGENTS.md conventions against public best practice.
Build a private catalog of vetted skills for your organisation.

**Landscape and market intelligence**
Map every public AI agent skill in a category with maturity signals.
Track which skill topics are gaining author attention over time.

### 🚀 Getting started

1. Open the actor and set `query` to your domain in plain words (e.g. `"graphic design for brands"`).
2. Optionally paste a `githubToken` to unlock precise code search.
3. Set `maxRepos` to cap how many candidates you extract (default 15).
4. Click Start, then download the dataset as JSON, CSV, or Excel, or pull it via API or MCP.
5. Feed the result to Claude or ChatGPT for side-by-side comparison and synthesis.

### FAQ

**Do I need a GitHub token?**
Not required. Without a token you get repo-search results (README and name matches). With a token you also get code-search results (matches inside skill files themselves), which is a much stronger signal.

**How is this different from GitHub's own search?**
GitHub search returns links to repos. This actor returns the actual content of every matched skill file, ready for an LLM to read and compare.

**Why not score and rank the results here?**
Judging which skill is best depends on the exact use case and taste. Raw extracted content lets an LLM reviewer make the call in context, which is more useful than a rigid formula baked into the actor.

**How much does it cost?**
$5 per 1,000 repos extracted. You pay only for repos actually extracted and returned. There is no free tier.

**Can I use it inside an AI agent?**
Yes. It is exposed as an MCP tool. See below.

### Use in Claude, ChatGPT & any MCP agent

```
https://mcp.apify.com/?tools=themineworks/github-skill-discovery
```

Or call it programmatically with the Apify client:

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('themineworks/github-skill-discovery').call({
  query: 'sales outreach',
  maxRepos: 15,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### 🛠️ Complete your OSS intelligence pipeline

Pair this actor with the rest of the themineworks GitHub suite:

- **[GitHub Repo Intelligence](https://apify.com/themineworks/github-repo-intelligence)**: pull deep metadata for the repos you shortlist.
- **[GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)**: discover new skill-authoring projects gaining momentum.
- **[RAG Website Crawler](https://apify.com/themineworks/rag-crawler)**: turn any project's docs site into embedding-ready Markdown.

Typical flow: github-skill-discovery gathers the candidate skills, github-repo-intelligence checks their maturity, and an LLM does the synthesis into your own tuned version.

Questions or need a custom field set? Reach out through the Apify profile.

# Actor input Schema

## `query` (type: `string`):

What you're looking for, in plain words. Example: "graphic design for brands", "sales outreach", "data analysis".

## `maxRepos` (type: `integer`):

Maximum number of matching repos to fetch full content for.

## `githubToken` (type: `string`):

GitHub's code-search API (the most precise way to find actual skill files) requires authentication — without a token, this actor falls back to repository-search only, which is less precise. A token also raises the metadata rate limit from 60/hr to 5000/hr.

## Actor input object example

```json
{
  "query": "graphic design for brands",
  "maxRepos": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "graphic design for brands",
    "maxRepos": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/github-skill-discovery").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "graphic design for brands",
    "maxRepos": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/github-skill-discovery").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "graphic design for brands",
  "maxRepos": 10
}' |
apify call themineworks/github-skill-discovery --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=themineworks/github-skill-discovery",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ThhzUKJ3If0sgPQ5u/builds/ycU3ieSdaIUujvWRU/openapi.json
