FinViz Screener
Translate natural language stock screening requests into FinViz screener filter URLs and open them in Chrome. Supports both Japanese and English input.
Download Skill Package (.skill) View Source on GitHub
Table of Contents
- 1. Overview
- 2. Prerequisites
- 3. Quick Start
- 4. How It Works
- 5. Usage Examples
- Example 1: Growth Momentum
- Example 2: CANSLIM + Minervini + VCP Integrated Filter
- Example 3: High Dividend Value
- Example 4: Oversold Bounce
- Example 5: AI Theme Stocks
- Example 6: Small Cap Breakout
- Example 7: Japanese Input
- Example 8: Programmatic Use (URL Only)
- Example 9: Theme Cross-Screening (AI x Logistics, Data Centers x Power)
- Screening Recipes
- 6. Understanding the Output
- 7. Tips & Best Practices
- 8. Combining with Other Skills
- 9. Troubleshooting
- 10. Reference
1. Overview
FinViz Screener bridges the gap between what you want to find and how FinViz expects filter codes. Instead of memorizing codes like fa_epsqoq_o25 or ta_sma200_pa, describe your criteria in plain English (or Japanese) and Claude builds the URL for you.
What it solves:
- Eliminates the need to learn 500+ FinViz filter codes
- Handles bilingual input (Japanese and English)
- Auto-detects FINVIZ Elite from environment variables
- Validates all filter tokens to prevent URL injection
- Opens results directly in Chrome with OS-appropriate fallbacks
Key capabilities:
- 500+ filter codes across fundamentals (P/E, dividends, growth, margins), technicals (RSI, SMA, chart patterns), and descriptives (sector, market cap, country)
- Theme & Sub-theme cross-screening – Combine 30+ investment themes and 268 sub-themes with any filter to screen for cross-sector narratives (e.g., “AI x Logistics”, “Data Centers x Power Infrastructure”, “Cybersecurity x Cloud”)
- View type selection: Overview, Valuation, Financial, Technical, Ownership, Performance, Custom
- Sort order control (ascending or descending by any column)
- Range filter syntax for precise criteria (e.g.,
fa_div_3to8for dividend yield 3-8%) - 14+ pre-built screening recipes in the reference knowledge base
2. Prerequisites
- API Key: None required for the public FinViz screener
- FINVIZ Elite (Optional): Auto-detected from
$FINVIZ_API_KEYfor real-time data and enhanced features - Python 3.9+: Required to run the URL builder script
- No additional Python dependencies – uses only the standard library
FinViz Screener works entirely without API keys. FINVIZ Elite is only needed if you want real-time data and advanced screener features.
3. Quick Start
Tell Claude:
Find oversold large caps near 52-week lows with insider buying
Claude maps this to filter codes, shows you a confirmation table, and opens the FinViz results page in Chrome. That is all you need to get started.
4. How It Works
- Load filter reference – Claude reads the internal filter knowledge base mapping natural language concepts to FinViz codes.
- Interpret your request – Your description is mapped to specific filter codes using a concept mapping table (e.g., “high dividend” maps to
fa_div_o3, “large cap” maps tocap_large). - Present filter selection – Before executing, Claude shows a table of selected filters for your confirmation.
- Execute script – The
open_finviz_screener.pyscript validates filters, builds the URL, and opens Chrome. - Report results – Claude reports the constructed URL, the mode used (Public or Elite), and suggests next steps.
Elite auto-detection: If the $FINVIZ_API_KEY environment variable is set, the skill automatically uses elite.finviz.com instead of the public screener. You can also force Elite mode with --elite.
5. Usage Examples
Example 1: Growth Momentum
Prompt:
Find stocks with quarterly EPS growth > 25%, price above SMA50 and SMA200, and positive performance over the last quarter
Filter codes: fa_epsqoq_o25,ta_sma50_pa,ta_sma200_pa,ta_perf_13wup
Why useful: Identifies stocks with strong earnings momentum confirmed by multiple moving average support and sustained quarterly outperformance – a classic growth momentum setup.
Example 2: CANSLIM + Minervini + VCP Integrated Filter
Prompt:
Screen for stocks with EPS growth over 25%, revenue growth over 15%, above all major moving averages,
near 52-week high, and with relative volume above 1.5x -- combining CANSLIM fundamentals with
Minervini trend template criteria in a single FinViz screen
Filter codes: fa_epsqoq_o25,fa_salesqoq_o15,ta_sma20_pa,ta_sma50_pa,ta_sma200_pa,ta_highlow52w_b0to10h,sh_relvol_o1.5
Why useful: Combines O’Neil-style fundamental growth criteria with Minervini’s trend template and VCP-like volume characteristics in one URL, enabling a rapid first-pass filter before running dedicated CANSLIM or VCP screeners.
Example 3: High Dividend Value
Prompt:
Screen for dividend yield > 4% with P/E under 15
Filter codes: fa_div_o4,fa_pe_u15
Why useful: Quick income-oriented screen that targets high-yield stocks with reasonable valuations. A solid starting point for dividend portfolio construction.
Example 4: Oversold Bounce
Prompt:
Find oversold large caps near 52-week lows with insider buying
Filter codes: cap_large,ta_rsi_os30,ta_highlow52w_a0to5l,sh_insidertrans_verypos
Why useful: Identifies large-cap stocks at technical extremes where insiders are buying – a contrarian signal that can mark reversal points.
Example 5: AI Theme Stocks
Prompt:
Show me AI and semiconductor stocks with strong momentum
Filter codes: theme_artificialintelligence,ta_perf_13wup,ta_sma50_pa,ta_sma200_pa
Why useful: Uses FinViz’s theme filter to target the AI/semiconductor space, overlaid with momentum confirmation. Quickly surfaces the strongest players in a trending theme.
Example 6: Small Cap Breakout
Prompt:
Find small cap stocks making new 52-week highs on high relative volume
Filter codes: cap_small,ta_highlow52w_b0to5h,sh_relvol_o1.5
Why useful: Targets small-cap breakout candidates where high relative volume confirms genuine buying interest – a classic momentum entry setup.
Example 7: Japanese Input
Prompt:
配当利回り5%以上でROE15%以上の大型株を探して
Filter codes: fa_div_o5,fa_roe_o15,cap_large
Why useful: Demonstrates full Japanese language support. Claude parses Japanese financial terms and maps them to the same FinViz filter codes, making the skill accessible to bilingual users.
Example 8: Programmatic Use (URL Only)
Command:
python3 skills/finviz-screener/scripts/open_finviz_screener.py \
--filters "fa_div_o3,fa_pe_u20,cap_large" \
--view valuation \
--order dividendyield \
--url-only
Output:
[Public] https://finviz.com/screener.ashx?v=121&f=cap_large,fa_div_o3,fa_pe_u20&o=dividendyield
Why useful: The --url-only flag prints the URL without opening a browser, making it suitable for scripting, logging, or embedding in other workflows.
Example 9: Theme Cross-Screening (AI x Logistics, Data Centers x Power)
Traditional sector/industry filters limit you to a single dimension. FinViz’s theme and sub-theme filters let you screen along narrative axes that cut across sectors.
Prompt A: AI x Logistics
Find mid-cap and above stocks in both AI and logistics themes with strong quarterly performance
Command:
python3 skills/finviz-screener/scripts/open_finviz_screener.py \
--themes "artificialintelligence" \
--subthemes "ecommercelogistics" \
--filters "cap_midover,ta_perf_13wup" \
--url-only
Prompt B: Data Centers x Power Infrastructure
Show me data center and power infrastructure stocks
Command:
python3 skills/finviz-screener/scripts/open_finviz_screener.py \
--subthemes "aboringdatacenters,energypower" \
--url-only
Prompt C: Cybersecurity x Cloud
Cybersecurity and cloud stocks with high ROE
Command:
python3 skills/finviz-screener/scripts/open_finviz_screener.py \
--themes "cybersecurity" \
--subthemes "aicloud" \
--filters "fa_roe_o15" \
--url-only
Why useful: Sector filters group companies by what they are (Technology, Utilities, Real Estate). Theme filters group companies by what trend they ride. Combining themes and sub-themes uncovers stocks at the intersection of secular growth narratives – e.g., logistics companies investing in AI automation, or utilities exposed to data center power demand – that traditional sector filters would miss entirely.
Screening Recipes
Ready-to-use filter combinations for common investment strategies. Each recipe includes iterative refinement tips.
Recipe 1: High-Dividend Growth Stocks (Kanchi-Style)
Goal: High yield + dividend growth + earnings growth, excluding yield traps.
Filters: fa_div_3to8,fa_sales5years_pos,fa_eps5years_pos,fa_divgrowth_5ypos,fa_payoutratio_u60,geo_usa
View: Financial
| Filter | Purpose |
|---|---|
fa_div_3to8 |
Yield 3-8% (caps high-yield traps) |
fa_sales5years_pos |
Positive 5Y revenue growth |
fa_eps5years_pos |
Positive 5Y EPS growth |
fa_divgrowth_5ypos |
Positive 5Y dividend growth |
fa_payoutratio_u60 |
Payout ratio < 60% (sustainability) |
geo_usa |
US-listed stocks |
Refinement: Start with fa_div_o3 → add fa_div_3to8 to cap yield → add fa_payoutratio_u60 to exclude traps.
Recipe 2: Minervini Trend Template + VCP
Goal: Stage 2 uptrend stocks with volatility contraction.
Filters: ta_sma50_pa,ta_sma200_pa,ta_sma200_sb50,ta_highlow52w_0to25-bhx,ta_perf_26wup,sh_avgvol_o300,cap_midover
View: Technical
| Filter | Purpose |
|---|---|
ta_sma50_pa |
Price above 50-day SMA |
ta_sma200_pa |
Price above 200-day SMA |
ta_sma200_sb50 |
200 SMA below 50 SMA (uptrend) |
ta_highlow52w_0to25-bhx |
Within 25% of 52W high |
ta_perf_26wup |
Positive 26-week performance |
sh_avgvol_o300 |
Avg volume > 300K |
cap_midover |
Mid cap and above |
VCP tightening: Add ta_volatility_wo3,ta_highlow20d_b0to5h,sh_relvol_u1 for low volatility + near 20-day high + below-average volume.
Recipe 3: Unfairly Sold-Off Growth Stocks
Goal: Fundamentally strong companies with recent sharp declines.
Filters: fa_sales5years_o5,fa_eps5years_o10,fa_roe_o15,fa_salesqoq_pos,fa_epsqoq_pos,ta_perf_13wdown,ta_highlow52w_10to30-bhx,cap_large,sh_avgvol_o200
View: Overview → switch to Valuation after reviewing candidates
| Filter | Purpose |
|---|---|
fa_sales5years_o5 |
5Y sales growth > 5% |
fa_eps5years_o10 |
5Y EPS growth > 10% |
fa_roe_o15 |
ROE > 15% |
fa_salesqoq_pos |
Positive QoQ sales growth |
fa_epsqoq_pos |
Positive QoQ EPS growth |
ta_perf_13wdown |
Negative 13-week performance |
ta_highlow52w_10to30-bhx |
10-30% below 52W high |
cap_large |
Large cap |
sh_avgvol_o200 |
Avg volume > 200K |
Recipe 4: Turnaround Stocks
Goal: Companies with previously declining earnings now showing recovery.
Filters: fa_eps5years_neg,fa_epsqoq_pos,fa_salesqoq_pos,ta_highlow52w_b30h,ta_perf_13wup,cap_smallover,sh_avgvol_o200
View: Performance
| Filter | Purpose |
|---|---|
fa_eps5years_neg |
Negative 5Y EPS growth (prior decline) |
fa_epsqoq_pos |
Positive QoQ EPS growth (recovery) |
fa_salesqoq_pos |
Positive QoQ sales growth (recovery) |
ta_highlow52w_b30h |
Within 30% of 52W high |
ta_perf_13wup |
Positive 13-week performance |
cap_smallover |
Small cap and above |
sh_avgvol_o200 |
Avg volume > 200K |
Recipe 5: Momentum Trade Candidates
Goal: Short-term momentum leaders near 52W highs with increasing volume.
Filters: ta_sma50_pa,ta_sma200_pa,ta_highlow52w_b0to3h,ta_perf_4wup,sh_relvol_o1.5,sh_avgvol_o1000,cap_midover
View: Technical
| Filter | Purpose |
|---|---|
ta_sma50_pa |
Price above 50-day SMA |
ta_sma200_pa |
Price above 200-day SMA |
ta_highlow52w_b0to3h |
Within 3% of 52W high |
ta_perf_4wup |
Positive 4-week performance |
sh_relvol_o1.5 |
Relative volume > 1.5x |
sh_avgvol_o1000 |
Avg volume > 1M |
cap_midover |
Mid cap and above |
Tips: Iterative Refinement
Screening works best as a dialogue:
- Start broad — 3-4 core filters for an initial set
- Check count — >100 results? add filters. <5 results? relax constraints
- Switch views —
overviewfirst, thenfinancialorvaluationfor depth - Layer technicals — after confirming fundamentals, add
ta_filters to time entries
6. Understanding the Output
After execution, Claude reports:
- Constructed URL – The full FinViz screener URL with all applied filters.
- Mode – Whether Public or Elite mode was used.
- Filter summary – A table listing each applied filter code and its meaning.
- Suggested next steps – Recommendations like “Sort by dividend yield” or “Switch to Financial view for detailed ratios.”
The FinViz results page itself shows stocks in a sortable table. Use the view selector (Overview, Valuation, Financial, Technical, Ownership, Performance) to examine different data points.
7. Tips & Best Practices
- Use range filters for precision. Instead of combining separate “greater than” and “less than” filters, use range syntax:
fa_div_3to8for dividend yield between 3% and 8%. This eliminates dividend yield traps at extreme levels. - Combine fundamental and technical filters. Growth momentum setups that pair earnings growth (
fa_epsqoq_o25) with trend confirmation (ta_sma50_pa,ta_sma200_pa) are more reliable than either alone. - Start broad, then narrow. Begin with 2-3 filters and add more only if the result set is too large. Over-filtering can eliminate good candidates.
- Use
--viewstrategically. Thevaluationview is best for dividend/value screens;technicalview works best for momentum and breakout screens. - Check the
--orderoption. Sorting by the metric most relevant to your strategy (e.g.,dividendyield,-marketcap,change) surfaces the best candidates first. - Japanese users: The skill handles full-width characters and Japanese financial terminology natively. No translation step needed.
8. Combining with Other Skills
| Workflow | How to Combine |
|---|---|
| Growth stock deep dive | Use FinViz Screener to build an initial universe, then feed top results into CANSLIM Screener for rigorous 7-component scoring |
| Dividend portfolio building | Screen with FinViz (fa_div_o3,fa_pe_u20), then run Value Dividend Screener for sustainability analysis |
| Theme-based investing | Use Theme Detector to identify hot themes, then use FinViz Screener with theme filters (theme_artificialintelligence) to find individual stocks |
| Technical confirmation | After FinViz surfaces candidates, use Technical Analyst for detailed chart reading on the top picks |
| Position sizing | Once you identify entry candidates, pass them to Position Sizer for risk-based share count calculation |
9. Troubleshooting
Chrome does not open
Cause: Chrome is not installed, or the path is not detected.
Fix: The script falls back through: Chrome > default browser > webbrowser.open(). On macOS, ensure Google Chrome is installed in /Applications/. On Linux, ensure google-chrome or chromium-browser is in your PATH.
“Invalid filter token” error
Cause: A filter code contains invalid characters (spaces, &, =).
Fix: Filter tokens must only contain lowercase letters, digits, underscores, and dots. Check for typos in manually entered filter codes.
“Unknown filter prefix” warning
Cause: A filter uses a prefix not in the known set.
Fix: This is a warning, not an error. The URL is still built. The warning alerts you that the filter prefix is unrecognized, which may indicate a typo or a new FinViz filter not yet cataloged.
Elite mode not activating
Cause: $FINVIZ_API_KEY environment variable is not set.
Fix: Run export FINVIZ_API_KEY=your_key_here in your shell, or pass --elite explicitly to force Elite mode.
10. Reference
CLI Arguments
| Argument | Required | Default | Description |
|---|---|---|---|
--filters |
No* | – | Comma-separated FinViz filter codes |
--themes |
No* | – | Comma-separated theme slugs (e.g., artificialintelligence,cybersecurity) |
--subthemes |
No* | – | Comma-separated sub-theme slugs (e.g., aicloud,energypower) |
--elite |
No | Auto-detected | Force Elite mode (elite.finviz.com) |
--view |
No | overview |
View type: overview, valuation, financial, technical, ownership, performance, custom |
--order |
No | None | Sort order code (e.g., -marketcap, dividendyield). Prefix - for descending |
--url-only |
No | false |
Print URL without opening a browser |
* At least one of --filters, --themes, or --subthemes is required.
View Type Codes
| Name | Code | Best For |
|---|---|---|
| Overview | 111 |
General screening, first look |
| Valuation | 121 |
P/E, P/B, PEG, dividend analysis |
| Ownership | 131 |
Institutional holdings, insider activity |
| Performance | 141 |
Returns across timeframes |
| Custom | 152 |
User-defined columns |
| Financial | 161 |
Revenue, margins, ROE, debt ratios |
| Technical | 171 |
RSI, SMA, beta, volatility |
Common Filter Codes Quick Reference
| Concept | Filter Code |
|---|---|
| High dividend (>3%) | fa_div_o3 |
| Low P/E (<20) | fa_pe_u20 |
| EPS growth >25% QoQ | fa_epsqoq_o25 |
| Price above SMA200 | ta_sma200_pa |
| RSI oversold (<30) | ta_rsi_os30 |
| Large cap | cap_large |
| Insider buying | sh_insidertrans_verypos |
| AI theme | theme_artificialintelligence |
| Near 52W high | ta_highlow52w_b0to5h |
| High relative volume | sh_relvol_o1.5 |