Skill: terrycarter1985/earnings-call-processor (version 1.1.0-alpha.1)

--- name: earnings-call-processor description: Automated earnings call processing workflow. Transcribe earnings call audio (OpenAI Whisper API or local whisper), fetch stock/financial data, generate structured analysis, and publish as Feishu draft. Use when processing earnings call recordings, quarterly earnings audio, investor call transcripts, or when asked to analyze an earnings call. Triggers on phrases like "process earnings call", "analyze this earnings call", "transcribe earnings call", "财报电话会", "处理财报", "earnings call analysis". --- # Earnings Call Processor End-to-end pipeline: audio → transcript + stock data → structured analysis → Feishu draft. ## Prerequisites - **OpenAI API key** (for Whisper API transcription) — set `OPENAI_API_KEY`; or use `--local` for offline transcription - **openai-whisper** — `pip install openai-whisper` (required for `--local` mode; auto-fallback if API unavailable) - **yfinance** — `pip install yfinance` - **ffmpeg** — required by whisper for audio processing - **Feishu** (optional, for draft creation) — requires feishu-doc skill configured ## Quick Start ```bash # Full pipeline: transcribe + stock data + analysis + Feishu draft python3 scripts/process_earnings_call.py ./call.wav AAPL # Use local whisper (no API key needed) python3 scripts/process_earnings_call.py ./call.wav AAPL --local # Skip Feishu (local output only) python3 scripts/process_earnings_call.py ./call.wav MSFT --no-feishu # Custom output dir, language, and local model size python3 scripts/process_earnings_call.py ./call.mp3 TSLA --output-dir ./results --language en --local --model small ``` ## Pipeline Steps 1. **Transcribe** (`scripts/transcribe.py`) — Sends audio to OpenAI Whisper API (or local whisper with `--local`), returns transcript + segments 2. **Fetch Stock** (`scripts/fetch_stock.py`) — Pulls price history, company info, financials via yfinance 3. **Analyze** (`scripts/process_earnings_call.py` → `build_analysis()`) — Combines transcript + stock data into structured markdown 4. **Publish** (`scripts/create_feishu_draft.py`) — Creates Feishu document with the analysis ## Individual Scripts ### Transcribe only ```bash # API mode (requires OPENAI_API_KEY) python3 scripts/transcribe.py ./call.wav --output transcript.json # Local mode (no API key needed) python3 scripts/transcribe.py ./call.wav --local --model base --output transcript.json ``` ### Stock data only ```bash python3 scripts/fetch_stock.py AAPL --period 3mo --output stock.json ``` ### Feishu draft from existing content ```bash python3 scripts/create_feishu_draft.py --title "AAPL Q4 Analysis" --content-file analysis.md ``` ## Output All outputs go to `--output-dir` (default: `./output`): | File | Description | |------|-------------| | `transcript.json` | Full transcript with segments and timestamps | | `stock_data.json` | Price history, company info, financials | | `analysis.md` | Structured analysis document (also sent to Feishu) | ## Agent Workflow When invoked by an agent: 1. Run `process_earnings_call.py` with audio path and ticker 2. Read the generated `analysis.md` 3. Use LLM reasoning to fill in "Key Themes & Sentiment" section: - Analyze full transcript for management tone - Extract forward guidance statements - Identify risk factors - Note any changes vs. prior quarter language 4. Update the Feishu draft with enriched analysis (use `feishu-doc` skill's `append` or `replace`) See [references/output_format.md](references/output_format.md) for the document structure specification. ## Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `OPENAI_API_KEY` | For API mode | Whisper API transcription; not needed with `--local` | | `OPENAI_BASE_URL` | No | Custom OpenAI API endpoint |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector:  ()