⏳ This skill is pending AI review.

Scores will appear once the review pipeline completes.

v1.0.0

claw-screener

@rsoutar⭐ 10 stars

Path to the claw-screener repository root (directory containing package.json)

Choose how to use this skill

You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.

1. Native installer

This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.

Do not guess an installer command or replace an existing version without reviewing the diff.

2. Complete package recommended

Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.

No complete ProSkills package is published for this listing yet.

3. Prompt-only

Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.

Need only the instruction file?

Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.

No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.

—/10

// RATINGS

⭐GitHub Stars
⭐ 10 on GitHubGitHub ↗

Growing

🟢ProSkills Score
—
📍

Not yet listed on ClawHub or SkillsMP

// README

Claw-Screener

Stock screener combining technical analysis (Williams %R oversold signals) with Warren Buffett-style fundamental analysis using SEC data. Supports US (S&P 500) and Thai (SET) markets.

Installation

npm install

Agent Skills

This repo includes a Agent Skills-compatible SKILL.md for AI agents.

OpenClaw / Clawdbot

openclaw skills install git:rsoutar/claw-screener@main
cd <skill-dir> && npm install

Hermes Agent

Clone the full repo (the skill needs the TypeScript sources, not just SKILL.md):

git clone https://github.com/rsoutar/claw-screener.git ~/.hermes/skills/finance/claw-screener
cd ~/.hermes/skills/finance/claw-screener && npm install

Or add an existing clone to ~/.hermes/config.yaml:

skills:
  external_dirs:
    - ~/Projects/claw-screener

Then use /claw-screener in chat, or ask Hermes to screen or analyze stocks. See SKILL.md for full command reference.

Scripts

1. Combined Screening (screening.ts)

Runs both technical and fundamental analysis to find quality oversold stocks.

npm run screening [options]

Options:

FlagDescriptionDefault
--marketMarket: us or bkus
--min-scoreMinimum Buffett score (0-10)5
--top-nNumber of results to show10
--formatOutput: text, json, telegramtext

Examples:

# US market, default settings
npm run screening

# US market, stricter fundamental requirements
npm run screening -- --market us --min-score 7 --top-n 5

# Thai market (technical only, no SEC data)
npm run screening -- --market bk

# JSON output for automation
npm run screening -- --format json

# Telegram format for messaging apps
npm run screening -- --format telegram

2. Technical Only (technicalOnly.ts)

Fast oversold scan using Williams %R indicator only. No SEC data required.

npm run technical [options]

Options:

FlagDescriptionDefault
--marketMarket: us or bkus
--thresholdWilliams %R threshold (e.g., -80)-80
--top-nNumber of results to show20
--formatOutput: text, json, telegramtext

Examples:

# Default scan
npm run technical

# More oversold stocks
npm run technical -- --threshold -70 --top-n 50

# Thai market
npm run technical -- --market bk

3. Analyze Stock (analyze.ts)

Deep analysis of a single stock using Buffett's 10 formulas.

npm run analyze -- <ticker> [options]

Options:

FlagDescriptionDefault
--formatOutput: text, json, telegramtext

Examples:

# Analyze a US stock
npm run analyze -- AAPL

# Analyze with Telegram format
npm run analyze -- MSFT --format telegram

# JSON for programmatic use
npm run analyze -- GOOGL --format json

# Analyze a Thai stock (uses Yahoo Finance)
npm run analyze -- PTT.BK

4. Compounding Machine (compoundingMachine.ts)

Screens for high-quality compounders using Carlson filters:

  • Revenue and net income YoY growth trend
  • ROIC > 15%
  • Shares outstanding shrinking over 3 years (buybacks)
  • Operating margin > 20%
  • Includes yield-vs-5y and simple 10-year DCF valuation context
npm run compounder [options]

Options:

FlagDescriptionDefault
--marketMarket universe: us or bkus
--tickersComma-separated tickers (overrides market universe)-
--max-tickersLimit number of tickers scannedall
--top-nNumber of passing stocks to print25
--concurrencyParallel fetch workers4
--formatOutput: text or jsontext
--db-pathSQLite cache pathsec_cache.db
--ttl-daysCache TTL in days7
--min-roicROIC threshold (%)15
--min-op-marginOperating margin threshold (%)20
--min-buybackRequired 3Y share reduction (%)2
--show-rejectedInclude failed tickers with reasons in outputoff

Examples:

# Run against S&P 500 universe
npm run compounder

# Quick sample run
npm run compounder -- --tickers AAPL,MSFT,NVDA --top-n 10

# JSON output for automation
npm run compounder -- --format json --max-tickers 100

# Show filter-fail reasons
npm run compounder -- --tickers PLTR --show-rejected

Buffett's 10 Formulas

The fundamental analysis evaluates stocks against Warren Buffett's criteria:

#FormulaTargetDescription
1Cash Test> Total DebtCash covers all debt
2Debt-to-Equity< 0.5Low leverage
3Return on Equity> 15%Efficient use of capital
4Current Ratio> 1.5Short-term liquidity
5Operating Margin> 12%Operational efficiency
6Asset Turnover> 0.5Asset efficiency
7Interest Coverage> 3xAbility to pay interest
8Earnings StabilityPositiveConsistent profitability
9Free Cash Flow> 0Cash generation
10Capital Allocation> 15% ROEManagement effectiveness

Scoring: Each passing formula earns 1 point. Maximum score: 10/10.

Technical Indicator

Williams %R (Williams Percent Range)

  • Range: -100 to 0
  • Oversold: < -80 (potential buy signal)
  • Overbought: > -20 (potential sell signal)

The screener finds stocks where:

  • Williams %R < -80 (oversold)
  • Combined with Buffett score >= min-score (for US market)

Output Formats

Text (Default)

📊 Combined Quality Screening (US (S&P 500))
Technical: Oversold signals (Williams %R < -80)
Fundamental: Warren Buffett's 10 formulas on SEC data
Minimum Buffett Score: 5/10

Results:
  Total Scanned: 503
  Oversold Found: 42
  Quality Stocks: 8 (Buffett ≥5/10)

Top 10 Opportunities:

1. AAPL   — Combined: 85.2% | Buffett: 8/10 | WR: -82.3
2. MSFT   — Combined: 79.1% | Buffett: 7/10 | WR: -85.1
...

JSON

{
  "totalScanned": 503,
  "oversoldCount": 42,
  "qualityCount": 8,
  "minBuffettScore": 5,
  "market": "us",
  "topStocks": [...]
}

Telegram

📊 Combined Quality Screening (US (S&P 500))
Scanned: 503 stocks
Oversold: 42
Quality (Buffett ≥5/10): 8

🌟 Top 10 Quality Opportunities:

1. **AAPL** — Combined: 85% | Buffett: 8/10 | WR: -82.3
2. **MSFT** — Combined: 79% | Buffett: 7/10 | WR: -85.1

Data Sources

  • US Stocks: SEC EDGAR for fundamentals, Yahoo Finance for prices
  • Thai Stocks: Yahoo Finance only (no SEC data available)

Scoring Formula

Combined score = (Technical Score × 0.3) + (Fundamental Score × 0.7)

  • Technical Score: (Williams %R + 100) / 100
  • Fundamental Score: (Buffett Score / 10) × 100

npm Scripts

npm run dev          # Run screening (alias for npm run screening)
npm run screening    # Run combined screening
npm run technical    # Run technical-only scan
npm run analyze      # Analyze a stock (requires ticker argument)
npm run compounder   # Run Compounding Machine screener
npm run typecheck    # Type-check without emitting
npm run lint         # Run ESLint
npm run format       # Format with Prettier
npm test             # Run unit tests
npm run build        # Compile to dist/

Pass CLI flags after --, for example: npm run screening -- --market us --min-score 7

Configuration

All entry points accept --config <path> to load a JSON config file. Configuration is resolved in priority order:

  1. CLI flags (e.g. --config /path/to/config.json)
  2. Environment variables
  3. ~/.claw-screener/config.json (or path in CLAW_SCREENER_CONFIG)
  4. .claw-screener.json in the workin

// HOW IT'S BUILT

KEY FILES

SKILL.mdREADME.md

// REPO STATS

10 stars