Skip to content
Back to skills

Get Bz News

ASecurity

Fetch Benzinga news with significant daily returns from Neo4j

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
tools

Works with

  • mcp

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill get-bz-news --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Get Bz News?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Get Bz News
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-get-bz-news/badge)](https://www.skillsdirectory.com/skills/majiayu000-get-bz-news)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: get-bz-news
description: Fetch Benzinga news with significant daily returns from Neo4j
context: fork
allowed-tools:
  - mcp__neo4j-cypher__read_neo4j_cypher
---

# Get Benzinga News

Fetch news where |daily_adj| >= threshold. Default threshold is 1.5σ of trailing adjusted volatility.

## Arguments

`$ARGUMENTS` = `TICKER START_DATE END_DATE [THRESHOLD]`

- THRESHOLD optional: `1.5s` (default), `2s`, or fixed like `3` (percent)

Example: `AAPL 2024-01-01T00:00:00 2024-04-01T00:00:00`

## Steps

### Step 1: Calculate Volatility

```cypher
MATCH (d:Date)-[r:HAS_PRICE]->(c:Company {ticker: $ticker})
WHERE d.date >= date($start) - duration('P365D') AND d.date < date($start)
MATCH (d)-[m:HAS_PRICE]->(idx:MarketIndex {ticker: 'SPY'})
WHERE r.daily_return IS NOT NULL AND m.daily_return IS NOT NULL
RETURN stdev(r.daily_return - m.daily_return) AS adj_vol, count(*) AS days
```

**Fail if < 60 days:** Return `INSUFFICIENT_HISTORY: {days} days (need 60+)`

### Step 2: Compute Threshold

Parse THRESHOLD argument:
- `1.5s` → `threshold = 1.5 × adj_vol` (default)
- `2s` → `threshold = 2.0 × adj_vol`
- `3` → `threshold = 3.0` (fixed percent, ignore volatility)

### Step 3: Fetch News

Use `threshold` and `adj_vol` as literal parameters (no subquery):

```cypher
MATCH (n:News)-[inf:INFLUENCES]->(c:Company {ticker: $ticker})
WHERE n.created >= $start AND n.created < $end
  AND inf.daily_stock IS NOT NULL AND inf.daily_macro IS NOT NULL
  AND abs(inf.daily_stock - inf.daily_macro) >= $threshold
RETURN n.id AS news_id,
       n.created AS date,
       n.title AS title,
       n.teaser AS teaser,
       n.body AS body,
       n.market_session AS market_session,
       inf.daily_stock AS daily_stock,
       (inf.daily_stock - inf.daily_macro) AS daily_adj,
       (inf.daily_stock - inf.daily_sector) AS sector_adj,
       (inf.daily_stock - inf.daily_industry) AS industry_adj,
       abs(inf.daily_stock - inf.daily_macro) / $adj_vol AS z_score
ORDER BY n.created ASC
```

## Output

Return JSON with:
- `query`: parameters used (ticker, dates, threshold_pct, adj_vol)
- `results`: array of news items with z_score

If no results: `NO_NEWS_FOUND`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.