Best for
- "Find CANSLIM stocks"
- "Screen for growth stocks using O'Neil's method"
- "Which stocks have strong earnings and momentum?"
tradermonty/claude-trading-skills/skills/canslim-screener/SKILL.md
Screen US stocks using William O'Neil's CANSLIM growth stock methodology. Use when user requests CANSLIM stock screening, growth stock analysis, momentum stock identification, or wants to find stocks with strong earnings and price momentum following O'Neil's investment system.
Decision brief
Screen US stocks using William O'Neil's CANSLIM growth stock methodology.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/tradermonty/claude-trading-skills --skill "skills/canslim-screener"Inspect the Agent Skill "canslim-screener" from https://github.com/tradermonty/claude-trading-skills/blob/51c790740048c4cbc9b7cc82a7f3ddc7b12d31d0/skills/canslim-screener/SKILL.md at commit 51c790740048c4cbc9b7cc82a7f3ddc7b12d31d0. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Check if user has FMP API key configured:
Check if user has FMP API key configured:
Option A: Default Universe (Recommended) Use top 40 S&P 500 stocks by market cap (predefined in script):
Run the main screening script with appropriate parameters:
python3 screencanslim.py --rs-benchmark SPY
Permission review
The documentation asks the agent to run terminal commands or scripts.
python3 skills/canslim-screener/scripts/screen_canslim.pyThe documentation asks the agent to run terminal commands or scripts.
python3 skills/canslim-screener/scripts/screen_canslim.py \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 2,715 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
This skill screens US stocks using William O'Neil's proven CANSLIM methodology, a systematic approach for identifying growth stocks with strong fundamentals and price momentum. CANSLIM analyzes 7 key components: Current Earnings, Annual Growth, Newness/New Highs, Supply/Demand, Leadership/RS Rank, Institutional Sponsorship, and Market Direction.
Phase 3 implements all 7 of 7 components (C, A, N, S, L, I, M), representing 100% of the full methodology.
Two-Stage Approach:
Key Features:
Phase 3.1 Component Weights (Original O'Neil weights):
Weighted RS Formula:
Weighted RS = 0.40 × rel_3m + 0.30 × rel_6m + 0.30 × rel_12m
Available periods are re-normalized when some are missing. Default benchmark is ^GSPC;
override with --rs-benchmark SPY/QQQ/IWM/....
Fallback hierarchy when multi-period data is incomplete:
error set.Future Phases:
Explicit Triggers:
Implicit Triggers:
When NOT to Use:
API Requirements:
export FMP_API_KEY=your_key_herePython Dependencies:
requests (FMP API calls)beautifulsoup4 (Finviz web scraping)lxml (HTML parsing)Installation:
pip install requests beautifulsoup4 lxml
Output Directory: reports/ (default) or custom via --output-dir
Generated Files:
canslim_screener_YYYY-MM-DD_HHMMSS.json - Structured data for programmatic usecanslim_screener_YYYY-MM-DD_HHMMSS.md - Human-readable reportReport Contents:
Rating Bands:
Check if user has FMP API key configured:
# Check environment variable
echo $FMP_API_KEY
# If not set, prompt user to provide it
Requirements:
requests (FMP API calls)beautifulsoup4 (Finviz web scraping)lxml (HTML parsing)Installation:
pip install requests beautifulsoup4 lxml
If API key is missing, guide user to:
export FMP_API_KEY=your_key_hereOption A: Default Universe (Recommended) Use top 40 S&P 500 stocks by market cap (predefined in script):
python3 skills/canslim-screener/scripts/screen_canslim.py
Option B: Custom Universe User provides specific symbols or sector:
python3 skills/canslim-screener/scripts/screen_canslim.py \
--universe AAPL MSFT GOOGL AMZN NVDA META TSLA
Option C: Sector-Specific User can provide sector-focused list (Technology, Healthcare, etc.)
API Budget Considerations (Phase 3):
--max-candidates 35 for free tier (35 × 7 + 3 = 248 calls), or upgrade to FMP Starter tier ($29.99/mo, 750 calls/day) for full 40-stock screeningRun the main screening script with appropriate parameters:
cd skills/canslim-screener/scripts
# Basic run (40 stocks, top 20 in report)
python3 screen_canslim.py --api-key $FMP_API_KEY
# Custom parameters
python3 screen_canslim.py \
--api-key $FMP_API_KEY \
--max-candidates 40 \
--top 20 \
--output-dir ../../../
# Custom RS benchmark (Phase 3.1)
python3 screen_canslim.py --rs-benchmark SPY
# Disable L component (saves per-stock 365-day fetch; L fixed at neutral 50)
python3 screen_canslim.py --disable-rs
Script Workflow (Phase 3 - Full CANSLIM):
Expected Execution Time (Phase 3):
Finviz Fallback Behavior:
sharesOutstanding unavailable✅ Using Finviz institutional ownership for NVDA: 68.3%The script generates two output files:
canslim_screener_YYYY-MM-DD_HHMMSS.json - Structured datacanslim_screener_YYYY-MM-DD_HHMMSS.md - Human-readable reportRead the Markdown report to identify top candidates:
# Find the latest report
ls -lt canslim_screener_*.md | head -1
# Read the report
cat canslim_screener_YYYY-MM-DD_HHMMSS.md
Report Structure (Phase 3 - Full CANSLIM):
Component Details in Report:
A new Summary Table appears above the candidate list in Phase 3.1 reports, showing rank, symbol, composite score, rating, RS rating, and RS percentile for quick scanning.
Review the top-ranked stocks and cross-reference with knowledge bases:
Reference Documents to Consult:
references/interpretation_guide.md - Understand rating bands and portfolio sizingreferences/canslim_methodology.md - Deep dive into component meanings (now includes S and I)references/scoring_system.md - Understand scoring formulas (Phase 3 weights)Analysis Framework:
For Exceptional+ stocks (90-100 points):
For Exceptional stocks (80-89 points):
For Strong stocks (70-79 points):
For Above Average stocks (60-69 points):
Bear Market Override:
Create a concise, actionable summary for the user:
Report Format:
# CANSLIM Stock Screening Results (Phase 3 - Full CANSLIM)
**Date:** YYYY-MM-DD
**Market Condition:** [Trend] - M Score: [X]/100
**Stocks Analyzed:** [N]
**Components:** C, A, N, S, L, I, M (7 of 7, 100% coverage)
## Market Summary
[2-3 sentences on current market environment based on M component]
[If bear market: WARNING - Consider raising cash allocation]
## Top 5 CANSLIM Candidates
### 1. [SYMBOL] - [Company Name] ⭐⭐⭐
**Score:** [X.X]/100 ([Rating])
**Price:** $[XXX.XX] | **Sector:** [Sector]
**Component Breakdown:**
- C (Earnings): [X]/100 - [EPS growth]% QoQ, [Revenue growth]% revenue
- A (Growth): [X]/100 - [CAGR]% 3yr EPS CAGR
- N (Newness): [X]/100 - [Distance]% from 52wk high
- S (Supply/Demand): [X]/100 - Up/Down Volume Ratio: [X.XX]
- L (Leadership): [X]/100 - 52wk: [+X.X]% ([+X.X]% vs S&P) RS: [XX]
- I (Institutional): [X]/100 - [N] holders, [X.X]% ownership [⭐ Superinvestor if present]
- M (Market): [X]/100 - [Trend]
**Interpretation:** [Rating description and guidance]
**Weakest Component:** [X] ([score])
**Data Source Note:** [If Finviz used: "Institutional data from Finviz"]
[Repeat for top 5 stocks]
## Investment Recommendations
**Immediate Buy List (90+ score):**
- [List stocks with exceptional+ ratings]
- Position sizing: 15-20% each
**Strong Buy List (80-89 score):**
- [List stocks with exceptional ratings]
- Position sizing: 10-15% each
**Watchlist (70-79 score):**
- [List stocks with strong ratings]
- Buy on pullback
## Risk Factors
- [Identify any quality warnings from components]
- [Market condition warnings]
- [Sector concentration risks if applicable]
- [Data source reliability notes if Finviz heavily used]
## Next Steps
1. Conduct detailed fundamental analysis on top 3 candidates
2. Check earnings calendars for upcoming reports
3. Review technical charts for entry timing
4. [If bear market: Wait for market recovery before deploying capital]
---
**Note:** This is Phase 3 (Full CANSLIM: C, A, N, S, L, I, M - 100% coverage).
scripts/)Main Scripts:
screen_canslim.py - Main orchestrator script
python3 screen_canslim.py --api-key KEY [options]fmp_client.py - FMP API client wrapper
get_income_statement(), get_quote(), get_historical_prices(), get_institutional_holders()finviz_stock_client.py - Finviz web scraping client ← NEW
get_institutional_ownership(), get_stock_data()Calculators (scripts/calculators/):
earnings_calculator.py - C component (Current Earnings)
growth_calculator.py - A component (Annual Growth)
new_highs_calculator.py - N component (Newness)
supply_demand_calculator.py - S component (Supply/Demand) ← NEW
leadership_calculator.py - L component (Leadership/Relative Strength)
institutional_calculator.py - I component (Institutional)
market_calculator.py - M component (Market Direction)
Supporting Modules:
scorer.py - Composite score calculation
report_generator.py - Output generation
references/)Knowledge Bases:
references/canslim_methodology.md (27KB) - Complete CANSLIM explanation
references/scoring_system.md (21KB) - Technical scoring specification (Phase 3)
references/fmp_api_endpoints.md (18KB) - API integration guide (Phase 3)
references/interpretation_guide.md (18KB) - User guidance
How to Use References:
references/canslim_methodology.md first to understand O'Neil's system (now includes S and I)references/interpretation_guide.md when analyzing resultsreferences/scoring_system.md if scores seem unexpectedreferences/fmp_api_endpoints.md for API troubleshooting or Finviz fallback issuesSymptoms:
ERROR: 429 Too Many Requests - Rate limit exceeded
Retrying in 60 seconds...
Causes:
Solutions:
--max-candidates 30 to lower API usageSymptoms:
ERROR: required libraries not found. Install with: pip install beautifulsoup4 requests lxml
Solutions:
# Install all required libraries
pip install requests beautifulsoup4 lxml
# Or install individually
pip install beautifulsoup4
pip install requests
pip install lxml
Symptoms:
Execution time: 2 minutes 30 seconds for 40 stocks (slower than expected)
Causes:
Solutions:
finviz_stock_client.py, change rate_limit_seconds=2.0 to 1.5 (risk: IP ban)Note: Finviz fallback adds ~2 seconds per stock but significantly improves I component accuracy (35 → 60-100 points).
Symptoms:
WARNING: Finviz request failed with status 403 for NVDA
⚠️ Using Finviz institutional ownership data - FMP shares outstanding unavailable. Finviz fallback also unavailable. Score reduced by 50%.
Causes:
Solutions:
Graceful Degradation:
Symptoms:
✓ Successfully analyzed 40 stocks
Top 5 Stocks:
1. AAPL - 58.3 (Average)
2. MSFT - 55.1 (Average)
...
Causes:
Solutions:
Symptoms:
⚠️ Revenue declining despite EPS growth (possible buyback distortion)
⚠️ Using Finviz institutional ownership data (68.3%) - FMP shares outstanding unavailable.
Interpretation:
Actions:
This is Phase 3 implementing all 7 of 7 CANSLIM components:
Implications:
Automatic Fallback System:
sharesOutstanding, Finviz automatically activatesData Source Priority:
Tested Reliability:
Phase 4 (Planned):
This screener is for educational and informational purposes only.
Version: Phase 3.1 (multi-period RS)
Last Updated: 2026-05-03
API Requirements: FMP API (free tier: up to 35 stocks; Starter tier recommended for 40 stocks) + BeautifulSoup/requests/lxml for Finviz
Execution Time: ~2 minutes for 40 stocks
Output Formats: JSON + Markdown (now includes Summary Table and schema_version: "3.1")
Components Implemented: C, A, N, S, L, I, M (7 of 7, 100% coverage)
Phase 3.1 additions: multi-period RS (3m/6m/12m), --rs-benchmark, --disable-rs,
new RS fields (rs_rating, rs_rank_percentile, rs_3m_return, rs_6m_return,
rs_12m_return, rs_benchmark, rs_benchmark_relative_return, rs_component_score,
benchmark_52w_performance).
Frequently asked questions
Screen US stocks using William O'Neil's CANSLIM growth stock methodology.
The source record exposes this install command: npx skills add https://github.com/tradermonty/claude-trading-skills --skill "skills/canslim-screener". Inspect the command and pinned source before running it.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).
tenequm/skills
Decision validation and thinking frameworks for startup founders. Use when you need to pressure-test a decision, validate your next steps, think through strategic options, or sanity-check your approach. Triggers on phrases like "should I", "help me think through", "is this the right move", "validate my thinking", "what am I missing". Covers fundraising, customer development, runway management, prioritization, and crypto/web3 founder challenges.