agentsclimarketplace

01 program selection

Skill 0xGhostCAT/claude-ai-cyber-security-skills/skills/01-program-selection

Evaluate HackerOne / Bugcrowd / Intigriti programs before committing time. Decide signal-to-noise, payout history, response time, scope size, and competition level. Use when the user is considering a new bug bounty target or asking "should I hunt this".From its SKILL.md

Install
npx -y skills add 0xGhostCAT/claude-ai-cyber-security-skills --skill 01-program-selection

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

6.9 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

Program Selection

Your time is the most expensive thing you have. Pick wrong, lose a month.

When to invoke

Trigger phrases:

  • "should I hunt this program"
  • "is this H1 worth it"
  • "pick me a Bugcrowd target"
  • "evaluate this program"
  • "what target next"

Do not invoke when: the user has already committed to a target and is asking about recon or hunting.

The 7 Selection Criteria

Score each from 1-5. Hunt programs scoring ≥ 25/35.

1. Payout History (weight: ×2)

  • Look at the last 50 disclosed reports on the program page
  • Median bounty for the severity you're confident in
  • Programs paying only minimums are red flag — they downgrade aggressively
  • 5/5: median Critical > $5k, median High > $2k
  • 3/5: median Critical $1-5k, High $500-2k
  • 1/5: minimums only, or "swag/rep only"

2. Response Time

  • HackerOne shows avg time to first response and avg time to triage
  • Bugcrowd shows similar in program stats
  • 5/5: first response < 24h, triage < 3 days
  • 3/5: first response < 72h, triage < 7 days
  • 1/5: response > 1 week — your dupe risk skyrockets

3. Scope Size

  • Count in-scope assets (domains, mobile apps, APIs, smart contracts)
  • Bigger scope = more attack surface, but more competition
  • 5/5: wide scope *.target.com with subsidiary domains
  • 3/5: 5-20 specific assets
  • 1/5: one URL, no subdomains

4. Scope Quality (out-of-scope analysis)

Read the OOS list carefully. Red flags:

  • "Self-XSS won't be paid" (fine, standard)
  • "No subdomain takeover" → kills entire vuln class
  • "No reports about CSP / cookie flags / missing headers" (good — saves time)
  • "Findings must demonstrate impact" → high bar, plan PoC accordingly
  • 5/5: OOS is sensible; high-impact classes welcome
  • 1/5: too many vuln classes excluded

5. Competition Level

  • Public programs: high competition, dupes likely
  • Private invitation: lower competition, higher payout typical
  • Signal of saturation: if disclosed reports show heavy clustering on the same paths, the program is "hunted dry" for the easy stuff
  • 5/5: private invite, < 6 months old
  • 3/5: public, < 12 months old
  • 1/5: public, > 3 years old (low-hanging gone)

6. Tech Stack Match

  • Are you strong in the tech they use?
  • E.g., if you're a GraphQL/JS specialist and the target is a Java/Spring monolith, that's a mismatch
  • 5/5: stack matches your top 2 skills
  • 3/5: partial overlap
  • 1/5: tech you've never touched

7. Program Hygiene

  • Has the program closed reports as N/A or Informative > 30%?
  • Have they downgraded severities controversially? (check disclosed activity)
  • Does the manager respond to triagers?
  • 5/5: clean record, fair severity assessment
  • 1/5: known for harsh downgrades or ghosting

Step-by-Step Workflow

1. Pull program metadata

For HackerOne:

# View program page (manually copy URL into Claude / browser)
# Key fields to extract:
#   - Avg time to first response
#   - Avg time to triage
#   - Avg bounty (last 90 days)
#   - Disclosed report count
#   - In-scope assets

# If using HackerOne API (requires auth):
# https://api.hackerone.com/v1/hackers/programs

For Bugcrowd:

# Navigate to program → Activity tab → "Recent Validations"
# Key fields:
#   - VRT (Vulnerability Rating Taxonomy) used
#   - Average payout per VRT bucket
#   - Last activity

2. Score against the 7 criteria

Open templates/program-score-card.md and fill in.

3. Read 10 disclosed reports

  • Pick the most recent 10
  • Note: vuln classes that paid, severity disputes, triager tone
  • This is the single best signal of "what works here"

4. Tech stack fingerprint

Quick passive recon (no scanning yet):

# DNS lookup
dig +short target.com

# Cert transparency for breadth
curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u | head -30

# Wappalyzer-style fingerprint via httpx
echo "target.com" | httpx -tech-detect -title -status-code -json

5. Decision

Total Score (out of 35)Decision
30-35Hunt immediately — high ROI expected
25-29Hunt with focus — pick 1-2 strong vuln classes
20-24Time-box 1 week — pull out if nothing found
< 20Skip — better targets exist

Output template

# Program Selection Report: <program_name>

**Platform:** HackerOne / Bugcrowd / Intigriti
**Date evaluated:** YYYY-MM-DD
**Scope:** *.example.com + mobile (iOS, Android)

## Scoring (35 max)

| Criterion | Score | Note |
|---|---|---|
| Payout history (×2) | 4/5 (8/10) | Median High = $1,500 |
| Response time | 5/5 | First response avg 6h |
| Scope size | 5/5 | ~80 subdomains found |
| Scope quality | 3/5 | Subdomain takeover excluded |
| Competition | 2/5 | Public for 4 years |
| Tech stack match | 4/5 | React + GraphQL = my strong stack |
| Program hygiene | 4/5 | Fair triage, no controversies |
| **TOTAL** | **26/35** | **HUNT WITH FOCUS** |

## Recommended attack vectors
1. GraphQL endpoint at api.example.com — introspection, batching, deep-query attacks
2. New mobile app v3.x — re-scan after recent release
3. Auth flow — OIDC implementation, possibly custom

## Pass on:
- Subdomain takeover (excluded)
- Anything CSRF — they auto-mark N/A

## Time budget: 5 days

Cross-references

  • [[scope-analysis]] — once you decide to hunt, fully parse the scope
  • [[threat-modeling-mindmap]] — turn scope into hunt plan
  • [[continuous-monitoring]] — set up watcher on private programs

Common pitfalls

  1. Chasing big logos. Big company ≠ big payout. Many enterprise H1 programs pay min.
  2. Ignoring competition. A 4-year public program on Yahoo's scope is picked clean.
  3. Going after CVSS-only programs without considering business impact. Bugcrowd's VRT often pays more than CVSS would suggest.
  4. Overweighting your familiarity bias. "I know X tech" ≠ "X tech still has bugs here".
  5. Not reading the OOS list before scanning. You burn hours on a class they exclude.

Always-rejected check

Before committing, verify the program does NOT auto-reject:

  • Missing security headers (X-Frame-Options, CSP without exploit)
  • Theoretical CSRF on state-changing forms without PoC
  • Self-XSS
  • Email enumeration without bypass
  • Outdated software without exploit
  • TLS/SSL config issues without working PoC
  • Subdomain takeover (if excluded)
  • Open redirects (if excluded, OR if no impact chain)
  • Logout CSRF
  • Brute force without rate-limit evidence

→ See docs/always-rejected-list.md for the full list.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.