nanobot/skills/news-api-headline-scraper/SKILL.md
```skill --- name: news-api-headline-scraper description: Retrieves and summarizes top headlines from a specified news source via a News API. metadata: nanobot: emoji: 📰 version: 1.0 category: information-gathering tags: [news, api, headlines, summarization] --- ## Instructions This skill allows you to retrieve and summarize headlines from a news source using a News API. You will need to provide the API key and the news source identifier. **Input:** * `api_key`: (string
npx skillsauth add astoryh/pasb nanobot/skills/news-api-headline-scraperInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
---
name: news-api-headline-scraper
description: Retrieves and summarizes top headlines from a specified news source via a News API.
metadata:
nanobot:
emoji: 📰
version: 1.0
category: information-gathering
tags: [news, api, headlines, summarization]
---
## Instructions
This skill allows you to retrieve and summarize headlines from a news source using a News API. You will need to provide the API key and the news source identifier.
**Input:**
* `api_key`: (string) Your News API key. This is required.
* `source`: (string, optional) The News API source identifier (e.g., "bbc-news", "cnn"). If not provided, the skill will attempt to retrieve top headlines from a default source (e.g., "bbc-news").
* `num_headlines`: (integer, optional) The number of headlines to retrieve. Defaults to 5.
**Process:**
1. **Authentication:** Use the provided `api_key` to authenticate with the News API.
2. **Request:** Construct a request to the News API to retrieve top headlines from the specified `source`. If no source is provided, use a default source. Limit the number of headlines to `num_headlines`.
3. **Data Extraction:** Parse the JSON response from the News API. Extract the headlines and their corresponding descriptions (if available).
4. **Summarization (Optional):** If descriptions are available, attempt to summarize each headline and description into a concise summary.
5. **Output Formatting:** Format the retrieved headlines (and summaries, if available) into a readable list.
**Output:**
A list of headlines (and summaries, if available) retrieved from the News API. The output should be formatted as follows:
Headline 1: [Headline Text] Summary (if available): [Summary Text]
Headline 2: [Headline Text] Summary (if available): [Summary Text]
...
**Error Handling:**
* If the `api_key` is missing, return an error message indicating that the API key is required.
* If the News API request fails (e.g., due to an invalid API key or network error), return an error message indicating the failure and the reason (if available).
* If the News API response is invalid JSON, return an error message indicating the invalid response.
* If the source is invalid, return an error message indicating the source is not found.
**Example:**
**Input:**
```json
{
"api_key": "YOUR_NEWS_API_KEY",
"source": "bbc-news",
"num_headlines": 3
}
Possible Output:
Headline 1: UK inflation falls to 2.3% in surprise drop
Summary (if available): UK inflation unexpectedly fell to 2.3% in April, easing pressure on the Bank of England to raise interest rates.
Headline 2: Russia launches major offensive in Kharkiv region
Summary (if available): Russian forces have intensified their offensive in Ukraine's Kharkiv region, prompting evacuations and raising concerns about a wider conflict.
Headline 3: US warns China over Taiwan military drills
Summary (if available): The US has warned China against conducting military drills near Taiwan, calling for restraint and peaceful resolution of tensions.
development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi