A collection of Mastra tools for interacting with the Y Combinator API and Hacker News. This package provides tools to search, filter, and retrieve information about YC companies and Hacker News content.
Search for YC companies using various filters:
const searchCompanies = createTool({
id: 'Search YC Companies',
inputSchema: {
query?: string, // Search query
batch?: string, // Batch identifier (e.g., 'W25')
status?: string, // Company status
page?: number // Page number for pagination
}
});
Fetch a specific YC company by its slug:
const getCompanyBySlug = createTool({
id: 'Get YC Company by Slug',
inputSchema: {
slug: string // Company slug identifier
}
});
Get all companies from a specific YC batch:
const listCompaniesByBatch = createTool({
id: 'List YC Companies by Batch',
inputSchema: {
batch: string // Batch identifier (e.g., 'W25')
}
});
Search for content across Hacker News:
const searchHackerNews = createTool({
id: 'Search Hacker News',
inputSchema: {
query: string, // Search query
page?: number, // Page number (0-based)
type?: 'story' | 'comment' | 'poll' | 'job' | 'pollopt' // Content type
}
});
Fetch current top stories from Hacker News:
const getTopStories = createTool({
id: 'Get Top HN Stories',
inputSchema: {
page?: number, // Page number (0-based)
limit?: number // Stories per page (max 100)
}
});
pnpm install
The project includes a comprehensive test suite that verifies:
- YC company search and filtering
- HN content search and retrieval
- Rate limiting handling
- Cross-platform integrations (e.g., finding HN discussions about YC companies)
Run the tests with:
pnpm test
Create a .env
file with:
OPENAI_API_KEY=your_api_key_here
Both the YC API and HN Algolia API include built-in rate limiting handling. If you encounter a 429 response, the tools will provide the recommended retry delay in seconds.
src/
├── ycapi.ts # YC API tools implementation
├── hnapi.ts # Hacker News tools implementation
├── index.ts # Package exports
└── __tests__/ # Test files
- Define your tool using
createTool
from@mastra/core/tools
- Add input validation using Zod schemas
- Implement the execute function
- Export the tool from index.ts
- Add corresponding tests
ISC