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 |
||
|---|---|---|
| .. | ||
| src | ||
| CHANGELOG.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsup.config.ts | ||
@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 parselimit(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