canslim-screener▌
tradermonty/claude-trading-skills · updated May 24, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
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.
CANSLIM Stock Screener - Phase 3 (Full CANSLIM)
Overview
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:
- Stage 1 (FMP API + Finviz): Analyze stock universe with all 7 CANSLIM components
- Stage 2 (Reporting): Rank by composite score and generate actionable reports
Key Features:
- Composite scoring (0-100 scale) with weighted components
- Finviz fallback for institutional ownership data (automatic when FMP data incomplete)
- Progressive filtering to optimize API usage
- JSON + Markdown output formats
- Interpretation bands: Exceptional+ (90+), Exceptional (80-89), Strong (70-79), Above Average (60-69)
- Bear market protection (M component gating)
Phase 3 Component Weights (Original O'Neil weights):
- C (Current Earnings): 15%
- A (Annual Growth): 20%
- N (Newness): 15%
- S (Supply/Demand): 15%
- L (Leadership/RS Rank): 20%
- I (Institutional): 10%
- M (Market Direction): 5%
Future Phases:
- Phase 4: FINVIZ Elite integration → 10x faster execution
When to Use This Skill
Explicit Triggers:
- "Find CANSLIM stocks"
- "Screen for growth stocks using O'Neil's method"
- "Which stocks have strong earnings and momentum?"
- "Identify stocks near 52-week highs with accelerating earnings"
- "Run a CANSLIM screener on [sector/universe]"
Implicit Triggers:
- User wants to identify multi-bagger candidates
- User is looking for growth stocks with proven fundamentals
- User wants systematic stock selection based on historical winners
- User needs a ranked list of stocks meeting O'Neil's criteria
When NOT to Use:
- Value investing focus (use value-dividend-screener instead)
- Income/dividend focus (use dividend-growth-pullback-screener instead)
- Bear market conditions (M component will flag - consider raising cash)
Prerequisites
API Requirements:
- FMP API key (free tier: 250 calls/day, sufficient for 35 stocks; Starter tier $29.99/mo for 40+ stocks)
- Sign up: https://site.financialmodelingprep.com/developer/docs
- Set via environment variable:
export FMP_API_KEY=your_key_here
Python Dependencies:
- Python 3.7+
requests(FMP API calls)beautifulsoup4(Finviz web scraping)lxml(HTML parsing)
Installation:
pip install requests beautifulsoup4 lxml
Output
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 report
Report Contents:
- Market Condition Summary (trend, M score, warnings)
- Top N CANSLIM Candidates (ranked by composite score)
- Component Breakdown for each stock (C, A, N, S, L, I, M scores with details)
- Rating interpretation (Exceptional+/Exceptional/Strong/Above Average)
- Quality warnings and data source notes
- Summary statistics (rating distribution)
Rating Bands:
- Exceptional+ (90-100): All components near-perfect, aggressive buy
- Exceptional (80-89): Outstanding fundamentals + momentum, strong buy
- Strong (70-79): Solid across components, standard buy
- Above Average (60-69): Meets thresholds with minor weaknesses, buy on pullback
Workflow
Step 1: Verify API Access and Requirements
Check if user has FMP API key configured:
# Check environment variable
echo $FMP_API_KEY
# If not set, prompt user to provide it
Requirements:
- FMP API key (free tier: 250 calls/day, sufficient for 40 stocks)
- Python 3.7+ with required libraries:
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:
- Sign up at https://site.financialmodelingprep.com/developer/docs
- Get free API key (250 calls/day)
- Set environment variable:
export FMP_API_KEY=your_key_here
Step 2: Determine Stock Universe
Option 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):
- 40 stocks × 7 FMP calls/stock = 280 API calls
- FMP: 7 calls/stock (profile, quote, income×2, historical_90d, historical_365d, institutional)
- Finviz: ~1.8 calls/stock (institutional ownership fallback, 2s rate limit, not counted in FMP budget)
- Market data (^GSPC quote, ^VIX quote, ^GSPC 52-week history): 3 FMP calls
- Total: ~283 FMP calls per screening run (exceeds 250 free tier)
- Recommendation: Use
--max-candidates 35for free tier (35 × 7 + 3 = 248 calls), or upgrade to FMP Starter tier ($29.99/mo, 750 calls/day) for full 40-stock screening
Step 3: Execute CANSLIM Screening Script
Run 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 ../../../
Script Workflow (Phase 3 - Full CANSLIM):
- Market Direction (M): Analyze S&P 500 trend vs 50-day EMA (using real historical data for accurate EMA)
- If bear market detected (M=0), warn user to raise cash
- S&P 500 Historical Data: Fetch 52-week data for M component EMA and L component RS calculation
- Stock Analysis: For each stock, calculate:
- C Component: Quarterly EPS/revenue growth (YoY)
- A Component: 3-year EPS CAGR and stability
- N Component: Distance from 52-week high, breakout detection
- S Component: Volume-based accumulation/distribution (up-day vs down-day volume)
- L Component: 52-week Relative Strength vs S&P 500
- I Component: Institutional holder count + ownership % (with Finviz fallback)
- Composite Scoring: Weighted average with all 7 component breakdown
- Ranking: Sort by composite score (highest first)
- Reporting: Generate JSON + Markdown outputs
Expected Execution Time (Phase 3):
- 40 stocks: ~2 minutes (additional 52-week history fetch per stock for L component)
- Finviz fallback adds ~2 seconds per stock (rate limiting)
- L component requires 365-day historical data for each stock
Finviz Fallback Behavior:
- Triggers automatically when FMP
sharesOutstandingunavailable - Scrapes institutional ownership % from Finviz.com (free, no API key)
- Increases I component accuracy from 35/100 (partial data) to 60-100/100 (full data)
- User sees:
✅ Using Finviz institutional ownership for NVDA: 68.3%
Step 4: Read and Parse Screening Results
The script generates two output files:
canslim_screener_YYYY-MM-DD_HHMMSS.json- Structured datacanslim_screener_YYYY-MM-DD_HHMMSS.md- Human-readable report
Read 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):
- Market Condition Summary (trend, M score, warnings)
- Top N CANSLIM Candidates (ranked, N = --top parameter)
- For each stock:
- Composite Score and Rating (Exceptional+/Exceptional/Strong/etc.)
- Component Breakdown (C, A, N, S, L, I, M scores with details)
- Interpretation (rating description, guidance, weakest component)
- Warnings (quality issues, market conditions, data source notes)
- Summary Statistics (rating distribution)
- Methodology note (Phase 3: 7 components, 100% coverage)
Component Details in Report:
- S Component: "Up/Down Volume Ratio: 1.06 ✓ Accumulation"
- L Component: "52wk: +45.2% (+22.1% vs S&P) RS: 88"
- I Component: "6199 holders, 68.3% ownership ⭐ Superinvestor"
Step 5: Analyze Top Candidates and Provide Recommendations
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):
- All components near-perfect (C≥85, A≥85, N≥85, S≥80, L≥85, I≥80, M≥80)
- Guidance: Immediate buy, aggressive position sizing (15-20% of portfolio)
- Example: "NVDA scores 97.2 - explosive quarterly earnings (100), strong 3-year growth (95), at new highs (98), volume accumulation (85), RS leader (92), strong institutional support (90), uptrend market (100)"
For Exceptional stocks (80-89 points):
- Outstanding fundamentals + strong momentum
- Guidance: Strong buy, standard sizing (10-15% of portfolio)
For Strong stocks (70-79 points):
- Solid across all components, minor weaknesses
- Guidance: Buy, standard sizing (8-12% of portfolio)
- Phase 3 Example: "Stock scores 77.5 - strong earnings (85), solid growth (80), near high (70), accumulation (60), RS leader (75), good institutions (60), uptrend (90)"
For Above Average stocks (60-69 points):
- Meets thresholds, one component weak
- Guidance: Buy on pullback, conservative sizing (5-8% of portfolio)
Bear Market Override:
- If M component = 0 (bear market detected), do NOT buy regardless of other scores
- Guidance: Raise 80-100% cash, wait for market recovery
- CANSLIM does not work in bear markets (3 out of 4 stocks follow market trend)
Step 6: Generate User-Facing Report
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).
Resources
Scripts Directory (scripts/)
Main Scripts:
-
screen_canslim.py- Main orchestrator script- Entry point for screening workflow
- Handles argument parsing, API coordination, ranking, reporting
- Usage:
python3 screen_canslim.py --api-key KEY [options]
-
fmp_client.py- FMP API client wrapper- Rate limiting (0.3s between calls)
- 429 error handling with 60s retry
- Session-based caching
- Methods:
get_income_statement()
How to use canslim-screener on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add canslim-screener
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches canslim-screener from GitHub repository tradermonty/claude-trading-skills and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate canslim-screener. Access the skill through slash commands (e.g., /canslim-screener) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
User Story & Requirements Generation
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Competitive Analysis
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Roadmap Prioritization
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Stakeholder Communication
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Access to product documentation and roadmap tools (Jira, Notion, etc.)
- ›Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
- ›Stakeholder contact information and communication channels
Time Estimate
30-60 minutes to see productivity improvements
Installation Steps
- 1.Install product management skill
- 2.Start with user story generation for known feature
- 3.Progress to competitive analysis: research 2-3 competitors
- 4.Use for roadmap prioritization: apply RICE/ICE scoring
- 5.Draft stakeholder communications and refine based on feedback
- 6.Build template library for recurring PM tasks
- 7.Share effective prompts with product team
Common Pitfalls
- ⚠Not validating competitive research—verify facts before sharing
- ⚠Accepting user stories without involving engineering team
- ⚠Over-relying on frameworks without qualitative judgment
- ⚠Not customizing outputs to company culture and communication style
- ⚠Skipping stakeholder validation of generated requirements
Best Practices▌
✓ Do
- +Validate research and competitive analysis with real data
- +Collaborate with engineering when generating technical requirements
- +Customize frameworks and templates to your company context
- +Use skill for first drafts, refine with stakeholder input
- +Document successful prompt patterns for PM tasks
- +Combine AI efficiency with human judgment and intuition
✗ Don't
- −Don't publish competitive analysis without fact-checking
- −Don't finalize user stories without engineering review
- −Don't make prioritization decisions solely on AI scoring
- −Don't skip customer validation of generated requirements
- −Don't ignore company-specific context and culture
💡 Pro Tips
- ★Provide context: company goals, constraints, customer feedback
- ★Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
- ★Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
- ★Use skill for 70% generation + 30% customization to company needs
When to Use This▌
✓ Use When
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid When
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
Learning Path▌
- 1Basic: user stories, feature specs, status updates
- 2Intermediate: competitive analysis, prioritization frameworks, PRDs
- 3Advanced: product strategy, go-to-market planning, OKR setting
- 4Expert: product vision, market positioning, business model innovation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★72 reviews- ★★★★★Anika Mensah· Dec 28, 2024
Keeps context tight: canslim-screener is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Yuki Thomas· Dec 24, 2024
I recommend canslim-screener for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Pratham Ware· Dec 12, 2024
canslim-screener fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Camila Brown· Dec 12, 2024
Registry listing for canslim-screener matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Anaya Huang· Dec 12, 2024
canslim-screener reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Fatima Park· Dec 8, 2024
We added canslim-screener from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Dhruvi Jain· Dec 4, 2024
Useful defaults in canslim-screener — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Oshnikdeep· Nov 23, 2024
canslim-screener has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Aanya Taylor· Nov 19, 2024
Registry listing for canslim-screener matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Yuki Choi· Nov 15, 2024
Solid pick for teams standardizing on skills: canslim-screener is focused, and the summary matches what you get after install.
showing 1-10 of 72