tpmjs/packages/tools/official/rss-read
Ajax Davis 48c41e8733 feat: add use cases marketing product with AI-generated content
Transform qualifying scenarios into marketing-ready use cases with:
- AI-generated titles, descriptions, ROI estimates, business value
- Persona/industry/category taxonomy for targeting
- Browseable feed with filtering and ranking
- SEO-optimized case study pages
- Daily cron job for generation and ranking

Database:
- Add Persona, Industry, Category lookup tables
- Add UseCase model with marketing content fields
- Add junction tables for personas/industries/categories
- Add SocialProof model for cached metrics

API:
- GET /api/use-cases - Global directory with filtering
- GET /api/use-cases/[id] - Individual use case details
- GET /api/public/users/[username]/collections/[slug]/use-cases
- POST /api/cron/use-cases - Nightly generation job

Frontend:
- /use-cases - Global feed with persona dropdown
- /use-cases/[slug] - SEO case study page
- /[username]/collections/[slug]/use-cases - Collection feed
- UseCasesFeed component - Sortable table component
- UseCaseCaseStudy component - Full case study layout
2026-01-20 16:17:35 +10:00
..
src feat: add use cases marketing product with AI-generated content 2026-01-20 16:17:35 +10:00
CHANGELOG.md chore: version packages 2025-12-31 23:54:47 +10:00
package.json chore: update dependencies with compatibility fixes 2026-01-09 22:49:41 +10:00
README.md feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsconfig.json feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsup.config.ts feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00

@tpmjs/tools-rss-read

Parse RSS/Atom feeds and extract feed metadata and items.

Installation

npm install @tpmjs/tools-rss-read

Usage

import { rssReadTool } from '@tpmjs/tools-rss-read';
import { generateText } from 'ai';

const result = await generateText({
  model: yourModel,
  tools: { rssReadTool },
  prompt: 'Get the latest articles from https://example.com/feed.xml',
});

Tool Parameters

  • url (string, required): The RSS or Atom feed URL to parse
  • limit (number, optional): Maximum number of items to return (default: 20, max: 100)

Returns

{
  feed: {
    title: string;
    link: string;
    description?: string;
    language?: string;
    lastBuildDate?: string;
    imageUrl?: string;
  };
  items: Array<{
    title: string;
    link: string;
    description?: string;
    pubDate?: string;
    author?: string;
    categories?: string[];
    guid?: string;
  }>;
  itemCount: number;
  metadata: {
    fetchedAt: string;
    feedType: string;
    totalItems: number;
    limitApplied: boolean;
  };
}

Features

  • Supports both RSS 2.0 and Atom feeds
  • Extracts feed metadata (title, description, image)
  • Extracts item details (title, link, description, date, author, categories)
  • Configurable item limit
  • Comprehensive error handling
  • Sanitizes HTML content to plain text
  • 30-second timeout protection

Requirements

  • Node.js 18+ (uses native fetch API)

License

MIT