Financial Analyst Skill
Aggregates 14+ free APIs and 20+ RSS feeds to turn Claude into a professional stock analyst issuing ratings and price targets.
Files show least-privilege design: API keys stored in the user's home directory (~/.financial-analysis/api_keys.) and never overwritten by setup, with env-var alternative; no credential harvesting, covert exfiltration, or destructive defaults; external API queries carry only ticker-style lookups plus a disclaimer. Deducted for: automatic network calls to 14+ third-party APIs without per-call user confirmation, plaintext JSON key storage, unverified publisher, and rollback described only in docs.
A layered test suite (24 tests: offline/live/integration) is committed; error handling, degradation, rate limiting and fallback chains are documented and tested; offline tests run with zero configuration. Deducted for: static review without execution, no CI workflow proving tests pass, known instability of unofficial sources like yfinance, several referenced scripts (run_deep_dive.py etc.) not present in evidence, so key paths could not be statically reproduced.
Three use cases (weekly portfolio review, daily scanner, deep dive) have clear triggers, inputs and outputs; description carries rich trigger phrases and a not-financial-advice disclaimer. Deducted for: core function depends almost entirely on overseas services (Finnhub, Alpha Vantage, SEC EDGAR, RapidAPI) whose mainland-China reachability is doubtful and undisclosed; no Chinese-language support; capability boundaries (data delay, US-market-only coverage) thinly disclosed.
Well-layered docs (SKILL.md/QUICKSTART/README/setup guide), explicit MIT license, thorough install and dependency notes, common-error table and troubleshooting. Deducted for: no version number or changelog, unclear maintenance ownership ('Contributors'), unverified publisher, no declared update path.
Workflows are concrete (scoring formula, entry/exit structure, caching), output formats are well-defined including a data-source attribution table, and there is clear marginal value over manually aggregating many sources. Deducted for: static review cannot verify actual output correctness or usability, several APIs require key signup, tight quotas (Alpha Vantage 25/day) may prevent full deep-dive execution, and value claims are execution-unverified.
Auditable test code is committed (test_skill.py with 24 tests, test_enhanced_report.py); scoring methodology, fallback chains and rate limits are cross-checkable in docs; fact/inference separation is decent. Deducted for: no third-party execution evidence or CI results, tests never run in this review, multiple referenced scripts (data_fetchers.py, scoring.py) absent from evidence, and testimonial-style claims (e.g. '26 indicators') independently unverifiable.
- Static review only; no code or tests were executed. Scores are based on source reading.
- Core data sources (Finnhub, Alpha Vantage, RapidAPI, etc.) are all overseas services; mainland-China network reachability is unverified and may seriously limit practical usability.
- The skill outputs buy/sell ratings and price targets — treat as data-driven reference, not advice; scoring weights are subjective and unbacktested. Always verify independently.
- Several key scripts (scoring.py, data_fetchers.py, etc.) were not included in the evidence; actual behavior may diverge from documentation.
- API keys are stored as plaintext JSON in the home directory — check file permissions; some free quotas are very low (e.g. Alpha Vantage 25/day).
- No version numbers or changelog; update and maintenance responsibility are unclear.
What does this skill do, and when should you use it?
This is a multi-source financial analysis skill for stock research, combining yfinance, SEC EDGAR, Finnhub, Alpha Vantage and 10+ other free APIs with 20+ RSS feeds. It supports three workflows — weekly portfolio review, daily opportunity scanner, and on-demand deep dive — producing Buy/Hold/Trim/Sell ratings, three entry levels, three price targets, and stop losses. Every API call flows through a resilient caller with rate-limit enforcement, logging, and automatic fallback chains. Scoring weights fundamentals at 40%, technicals 30%, and sentiment 30% into a composite 0-100 score.
Given a holdings list or ticker symbols, the skill: fetches price history, financial statements, analyst consensus, insider Form 4 filings, Congress trades, options chains, and news/Reddit/StockTwits sentiment; computes SMA/EMA, RSI, MACD, Bollinger Bands, Fibonacci retracement, ATR and more locally with pandas-ta; produces fundamental, technical, and sentiment scores weighted 40/30/30; and outputs ratings, 3 entry levels, 3 exit targets, stop loss, risk-reward ratio, catalysts, and risks. Calls go through api_caller.py, which checks rate limits and logs to ~/.financial-analysis/logs/, switching to the next API in the fallback chain on failure.
- An individual investor who wants a weekly (Sunday/Monday) Buy/Hold/Trim/Sell review of a PDF or CSV portfolio
- A swing trader running a daily pre-market scan of RSS and social buzz to surface top-5 portfolio adds and top-5 swing trades
- A user asking 'should I buy X?' who needs an analyst-grade deep dive on 1-10 tickers (~30 API calls each)
- A research-minded user tracking insider Form 4 filings and Congress trades, sourced from SEC EDGAR
- An investor gauging market mood via Reddit mention velocity, StockTwits sentiment, and news sentiment scores
What are this skill's strengths and limitations?
- Redundant data design: every category has a prioritized fallback chain (e.g. price history yfinance → Polygon → Alpha Vantage → FMP) with automatic failover
- Four core sources (yfinance, SEC EDGAR, ApeWisdom, StockTwits) need no API keys, lowering the barrier to first use
- Built-in usage tracker reports per-API free-limit consumption and recommends paid tiers (with prices) above 70% utilization
- Transparent, adjustable methodology: 40/30/30 weights and rating thresholds are documented and user-tunable
- Only recommends trades with R:R ≥ 2:1, with structured output (3 entries / 3 targets / stop / catalysts / risks)
- Relies on yfinance, an unofficial library the README itself flags for possible delays or outages
- Alpha Vantage free tier is only 25 calls/day; a deep dive uses ~30 calls per ticker, hitting limits fast
- Congress trades rely on Mboum (600/month free), with the fallback (Quiver) being paid
- No mention of a test suite; runtime scripts referenced in the README (setup.sh, run_*.py) are not detailed in SKILL.md
- Output is data-driven analysis, not financial advice — rating quality depends entirely on free-API data quality and freshness
How do you install this skill?
Clone into the Claude skills directory: git clone <repo-url> ~/.claude/skills/financial-analyst. Then run ./setup.sh to create a venv and install dependencies (yfinance, feedparser, pandas, pandas-ta, requests), followed by python scripts/api_config.py init and status. Four sources (yfinance, SEC EDGAR, ApeWisdom, StockTwits) work with no API keys; Finnhub, Alpha Vantage, FMP, and Polygon require free keys — setup steps are in references/api_setup_guide.md (signup links are said to be in QUICKSTART.md, whose content is not included here).
How do you use this skill?
Claude auto-loads the skill when you ask about stocks, portfolios, or market analysis. Three entry points: 1) Portfolio review: python scripts/run_portfolio_review.py AAPL:100:150.50 MSFT:50:380 (ticker:qty:cost format); 2) Daily scanner: python scripts/run_daily_scanner.py; 3) Deep dive: python scripts/run_deep_dive.py AAPL MSFT. Natural-language triggers also work, e.g. 'review my portfolio' or 'deep dive on NVDA'. After runs, check python scripts/usage_tracker.py daily for API usage reports.
How does this skill compare with similar options?
The source names no specific competitors. Versus calling these free APIs manually, its differentiation is automatic fallback chains, rate-limit management, and a unified scoring framework; versus paid research terminals (unnamed in the source), it trades data timeliness for zero subscription cost.