domain-expired-opportunity-finder
Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.
npx skills add Varnan-Tech/opendirectory --skill domain-expired-opportunity-finder --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Evaluate expired domain candidates for a specific niche. Score them on topical fit, historical activity level, history cleanliness, and redirect suitability. Output a conservative, explainable shortlist for human review.
How it works
- Step 1: Setup Check
- Verifies curl and python3 are available. If missing, stops with a message. Checks for an optional LLM API key. If not set, uses rule-based scoring only; if set, enables LLM-enhanced scoring.
- Step 2: Input Collection
- Requires target_niche. Optionally accepts seed_keywords, candidate_domains, discovery_source, min_snapshots, max_risk_level, intended_use. If no candidate_domains, prompts user and may offer an example demo set. After inputs, confirms a summary line with niche, number of candidates, scoring mode, and intended use.
- Step 3: Candidate Normalization
- Normalizes domain list by removing protocols, paths, lowercasing, deduplication, and basic TLD validation. Reports counts of valid and removed candidates. If zero valid candidates remain, stops with a specific instruction to provide properly formatted domains.
- Step 4: Signal Collection
- For each valid candidate, performs signals including Wayback history (snapshots, first/last captures, years active, status codes), page title/description sampling from latest snapshot, RDAP lookup for registration status, and domain keyword analysis against the niche and seeds. If LLM is configured, can batch and query Gemini for niche-relevance assessment. Reports a summary line: the number of candidates, Wayback hits, and RDAP lookups that succeeded.
- Step 5: Scoring & Classification
- Uses a 6-dimension scoring framework: Topical Relevance (0–30), Historical Activity Level (0–25), Historical Content Quality (0–15), History Cleanliness (0–15), Redirect Suitability (0–10), Signal Completeness (0–5). Computes opportunity_score (0–100), confidence, and recommended_action based on scoring and risk flags as documented.
- Step 6: Risk Flagging & Filtering
- Applies risk flags per the anti-abuse and scoring policies. Filters by max_risk_level (low/medium/high) as configured. Uses a table to map Score and Flags to recommended actions (high-priority-review, review, rebuild-only-review, reject).
- Step 7: Output & Save
- Follows references/output-format.md and guardrails.md for JSON schema and required disclaimer. Default behavior is Shortlist mode (show only high-priority-review, review, or rebuild-only-review). Can switch to audit mode to show all candidates with full breakdowns.
The skill is designed to run with either rule-based scoring or LLM-enhanced scoring, depending on whether LLM_API_KEY is set. It uses tools including curl, Python, and potentially Gemini API for niche relevance. It outputs a structured shortlist with explainable reasoning and risk flags for human review.
# Expired Domain Opportunity Finder Evaluate expired domain candidates for a specific niche. Score them on topical fit, historical activity level, history cleanliness, and redirect suitability. Output a conservative, explainable shortlist for human review. --- **Critical rule:** Every recommendation must include BOTH a positive rationale (`why_selected`) AND a caution rationale (`why_risky`). Never output a bare score without explanation. **Conservative-by-default rule:** When signals are incomplete or contradictory, lower the confidence level. Do not surface ambiguous candidates as strong opportunities. Missing data reduces confidence, never inflates it. **Anti-abuse rule:** Never encourage unrelated redirects, PBN construction, or domain repurposing where the historical topic does not match the target niche. Read `references/guardrails.md` for the full anti-abuse policy. --- ## Step 1: Setup Check Check the environment before doing anything else. Verify that `curl` and `python3` (or `python`) are available: ```bash curl --version > /dev/null 2>&1 && echo "curl: available" || echo "curl: MISSING" python3 --version 2>/dev/null || python --version 2>/dev/null || echo "python: MISSIN
- Step 1: Setup Check
- Step 2: Input Collection
- Step 3: Candidate Normalization
- Step 4: Signal Collection
- 4a: Wayback CDX API — History Snapshots
- 4b: Wayback Content Sampling — Historical Page Titles
- 4c: RDAP Lookup — Registration Status
- 4d: Domain String Analysis — Keyword Matching
- 4e: Gemini LLM Niche-Relevance Assessment (if LLMAPIKEY is set)
- Step 5: Scoring & Classification
- Step 6: Risk Flagging & Filtering
- Step 7: Output & Save
- Present the output:
- Self-QA Checklist
curl --version > /dev/null 2>&1 && echo "curl: available" || echo "curl: MISSING"
python3 --version 2>/dev/null || python --version 2>/dev/null || echo "python: MISSING"
echo "LLM_API_KEY: ${LLM_API_KEY:+set}"
python3 -c "
import sys, re
domains = '''CANDIDATE_LIST_HERE'''.strip().split('\n')
seen = set()
valid = []
invalid = []
for d in domains:What does the domain-expired-opportunity-finder skill do?
Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.
How do I install it?
Run `npx skills add Varnan-Tech/opendirectory --skill domain-expired-opportunity-finder --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From Varnan-Tech/opendirectory, a repository with 571 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
