news_search
Full-text search across 68,000+ AI & tech articles from 270+ curated global sources.
Every article is UUID-native and carries 7 deterministic relevance scores.
Search titles and summaries in any language. Paginated.
Best for: finding recent developments on a topic, researching a company,
product or trend, discovering what is being written about right now.
Args:
params (SearchInput):
- query (str): Search term (any language)
- limit (int): Number of results, default 10
- offset (int): Pagination offset, default 0
Returns:
JSON: total_found, count, offset, has_more, next_offset,
articles (id, title, teaser, source, url, published)
news_get_entity
Full entity profile: all articles, mention stats, and co-occurrence network.
BrunoSan tracks 77,000+ entities across all articles. For each entity you get
not just articles — but what other companies, people and products appear
alongside it. This is the co-occurrence network: who moves together in the news.
Best for: researching OpenAI, Google, a CEO, understanding what a company
is associated with, or discovering which entities cluster together.
Args:
params (EntityInput):
- entity (str): Entity name (e.g. 'OpenAI', 'Elon Musk', 'ChatGPT')
- limit (int): Number of articles, default 10
Returns:
JSON: entity, entity_type, total_mentions, articles,
co_occurring_entities (name, type, count)
news_trending
Top topic clusters for a given day — what is actually moving the AI world right now.
BrunoSan clusters all daily articles using deterministic heuristics (no LLM).
Each cluster has a burst_score (velocity), novelty_score, and top entities.
Unlike keyword trending, these are semantically coherent signal bundles.
Best for: daily briefings, 'what happened in AI today?',
newsletter preparation, trend detection.
Args:
params (TrendingInput):
- date (str): Date YYYY-MM-DD, empty = latest available day
- limit (int): Number of clusters, default 10
Returns:
JSON: date, total_clusters, clusters (cluster_id, label, topic,
event_type, article_count, cluster_label, top_entities)
news_daily_digest
Complete daily digest: all clusters, top articles, statistics, and Signal DNA for one day.
The full structured overview of a day's AI news — UUID-native, auditable.
Includes the URL of the published human-readable news page on brunosan.de.
Ideal for morning briefings, newsletter preparation, board summaries.
Signal DNA: for each top cluster you get who reported it first, how fast
it spread, and whether the signal looks organic or manufactured.
Also includes the URL of the published human-readable news page.
Args:
params (DigestInput):
- date (str): Date YYYY-MM-DD, empty = latest available day
Returns:
str: JSON with fields:
- date (str): Date of the digest
- published_url (str): URL of the published page on brunosan.de
- stats (dict): articles_crawled, clusters_formed, sources_active
- top_clusters (list): Top 5 clusters, each with label, topic,
article_count, headline, top_articles (title, source, url)
news_get_sources
Statistics and overview of all 3,300+ sources in the BrunoSan news database.
Shows which domains contribute the most articles, total database stats,
and daily averages. Use this to understand the data foundation behind
the news answers, or to verify source diversity and coverage.
Best for: 'what sources does this data come from?', transparency checks.
Args:
params (SourcesInput):
- limit (int): Number of top sources to return, default 20
Returns:
str: JSON with fields:
- db_stats (dict): total_articles, unique_sources, total_entities,
unique_entities, daily_avg_articles
- top_sources (list): Sources with domain and article_count
news_search_entities
Search across 77,000+ known entities: companies, people, products, and regions.
Shows which entities are known in the database and how often they are
mentioned. Useful for discovery before using news_get_entity.
Best for: 'which CEOs are most mentioned?', 'which German companies
appear in AI news?', 'is [company X] in the database?'
Args:
params (EntitySearchInput):
- query (str): Search term within entity names
- type (str): Optional filter: 'company', 'person', 'product', or 'region'
- limit (int): Number of results, default 20
Returns:
str: JSON with fields:
- query (str): Search term used
- type_filter (str|null): Type filter applied
- count (int): Number of entities found
- entities (list): Entities with name, type, mention_count