cd /news/large-language-models/improve-ai-output-with-a-news-feed-g… · home topics large-language-models article
[ARTICLE · art-105811] src=dev.to ↗ pub= topic=large-language-models verified=true sentiment=· neutral

Improve AI Output with a News Feed: Ground LLM Answers in Live Coverage

Perigon has introduced a news feed API designed to ground large language model outputs in live, structured coverage, addressing issues like stale knowledge and hallucinated citations. The service offers entity-pinned articles and stories that developers can retrieve and pack into prompts as evidence, with filters for companies, people, and domains to keep context clean. A worked example shows how to use companyId and personWikidataId to track Stripe and its CEO Patrick Collison.

read7 min views2 publishedAug 21, 2026

Teams ship chatbots, research agents, and support copilots that sound confident on last week’s events - then invent partnerships, mix up CEOs, or cite outlets that never ran the story. Model weights are stale. A generic web scrape is noisy. What fixes AI output for current events is a news feed for AI: structured, filterable coverage you retrieve first, then pass into the prompt as evidence.

Fintech and payments desks see this clearly. A model asked “what is Stripe doing in sponsorships?” without a feed will improvise. The same question with a grounded AI context pack - recent articles and story clusters pinned to the company - stays on published facts.

Developers usually ask:

Why does raw LLM output fail on live news without a feed?

How do you build a filtered news feed as LLM context?

How do you pack article and story fields into prompts without drowning the model?

When should you use Articles, Stories, Search Summarizer, or MCP?

Which filters keep a company or executive context pack clean?

The sections below answer each in order.

Try it live:[Articles sandbox]·Read the docs:[Entities]·Compare plans:[API pricing] An LLM without retrieval answers from training cutoffs and pattern completion. That fails when the user needs live news for AI:

Stale knowledge. Product launches, partnerships, and regulatory moves after the cutoff never appear - or appear as confident fiction.

Homonym collisions. “Stripe” and “Collison” hit sports, entertainment, and unrelated brands unless the feed uses entity IDs.

No citations. Fluent prose without publisher, date, and title makes compliance and desk review impossible.

Unscoped volume. Dumping the open web into the context window adds forums, reprints, and off-topic inflation pieces that dilute the answer.

A RAG news feed (retrieve → pack → generate) keeps the model honest: the corpus is your filtered news data for AI, not the entire internet.

Treat Perigon Articles (/v1/all) as the retrieval layer for LLM context news. Resolve the company once, then poll a tight window.

Worked example - payments company watch:

Role | Prefer | Value |

|---|---|---|
| Stripe (payments) | companyId |

9c0e5ff08b87453b8f6fa108a73b57b5 | | Stripe (domain pin) | companyDomain | stripe.com when you want domain-linked hits | | Patrick Collison (CEO) | personWikidataId | Q7146257 |

On Articles, pass companyId set to 9c0e5ff08b87453b8f6fa108a73b57b5, set sortBy to date, and bound from / to (or addDateFrom for incremental polls). Keep size small for a context pack - often 5 to 15 articles - so the model can read titles and summaries without truncating mid-sentence.

People search for “Patrick Collison” can return basketball and entertainment Collisons. Keep personWikidataId Q7146257 when the lane is leadership commentary, not the company-wide feed. Deep entity param theory lives in the Company News API guide; this page owns the improve AI output packing pattern.

For narrative heat without reprint spam, run the same companyId on Stories (/v1/stories/all). Coverage often looks like a sponsorship or partnership cluster - for example a Stripe worldwide partner announcement spanning multiple outlets under one story name - which compresses better into a prompt than eleven near-duplicate headlines. Retrieval is not enough. Ground LLM quality depends on what you paste and what you instruct.

Context pack recipe (per hit): Title

Publisher domain

Publication date

Short summary or key points (not full body by default)

Optional company / person names already on the record

Prompt scaffolding:

Instruct the model to answer only from the packed items.

Require citations as title + domain + date.

Cap length (bullets or a short brief).

Say what to do when the pack is empty: admit gaps, do not invent.

Size discipline: Prefer recent, entity-pinned hits over a large unsorted dump. Default article order without sortBy date can surface old or off-beat pages first - useless for AI with live news.

Raise quality with sourceGroup (for example top100) and excludeLabel Opinion, Paid News, or Press Release when you want third-party reporting only.

Search Summarizer can turn the same filters into one model-written briefing when the deliverable is a digest, not a custom agent reply - see the AI News Summaries guide. Keep this article on feeding your LLM.

Job | Prefer | Why | |---|---|---| | Custom chatbot / agent answers with citations | Articles → your LLM | You own the prompt, tools, and UX | | Fewer reprints in the context window | Stories first, then sample articles | One narrative per cluster | | One leadership-ready digest, Perigon-written | Search Summarizer | Prompted briefing of the matched set | | IDE / assistant tool access without custom retrieval code | MCP | Agent tools over the same news graph - see |

News feed grounding and Summarizer both start from filtered search. Grounding keeps generation in your stack; Summarizer returns the briefing as the API response.

Group parameters by the grounding job:

Use case | Params to teach first | |---|---| | Pin the company | companyId, optional companyDomain | | Pin an executive | personWikidataId | | Freshness for RAG | from / to, addDateFrom, sortBy date | | Context window budget | size, page | | Publisher quality | source, sourceGroup | | Cut non-reporting noise | excludeLabel | | Optional topic fence | category, topic, short q |

Start with companyId for Stripe-scale watches. Add personWikidataId only for CEO interview or leadership lanes - company volume and person volume differ sharply (see facts below). Stack excludeLabel and a trusted sourceGroup before you grow size.

Each Articles hit gives the fields most agents need: title, url (when your product deep-links), pubDate, publisher domain, summary, and linked companies or people. You map those into the context block; you do not need full HTML.

Stories return a cluster name, summary, article count, and update time - enough to tell the model “this is one partnership narrative with N outlets,” then attach one or two representative article rows if citations matter.

Pattern check (evergreen shape, not a permanent newsjack): a recent Stripe-linked story can look like a multi-outlet sports-partnership announcement (Ryder Cup worldwide partner framing) with on the order of ten related articles under one cluster - ideal Stories-first packing when reprints would otherwise fill the window.

Retrieve the last week of companyId coverage before the model answers “what changed for this vendor?” Pack titles and domains so agents cite press, not rumor.

Run parallel packs: company feed vs personWikidataId leadership feed. Compare volumes, then ask the model for a short memo with separate citation lists.

Ship a “sources used” panel from the same pack you sent to the model - title, domain, date - so users can audit grounded AI answers.

Goal | Path | |---|---| | Improve answers inside your LLM app | Articles/Stories → context pack → your model | | One digest without building a packer | Search Summarizer | | Always-on desk briefing product | Signals on perigon.io/home (product path; not this API recipe) | | Entity filter depth | Company News API guide |

Entity pins set who. Dates and sortBy set when. sourceGroup and excludeLabel set quality. Optional q (partnership, pricing, regulation) narrows event language without replacing the allowlist. Poll with addDateFrom so each agent turn only spends tokens on new hits.

Payments coverage is continuous: product, partnerships, regulation, and executive commentary move on different cadences. Entity pins keep a news feed for AI on the company instead of every “stripe” metaphor in sports or design.

What that looks like in the index (30 days, pubDate 2026-06-23 to 2026-07-23): about 11,000 articles linked to Stripe (companyId 9c0e5ff08b87453b8f6fa108a73b57b5). Leadership is a thinner lane: about 150 articles for Patrick Collison (personWikidataId Q7146257) in the same window. Pack company and CEO feeds separately so a support copilot does not drown in executive profile pieces - or miss a partnership cluster when it only watched the person ID.

Improve AI output on current events by retrieving a filtered news feed before generation - not by hoping the model remembers.

Pin entities (companyId, personWikidataId), sort by date, and keep size small enough for reliable citations.

Pack title, domain, date, and short summary; instruct the model to stay inside the pack.

Use Stories to compress reprints; use Search Summarizer or MCP when you want a Perigon briefing or agent tools instead of a custom packer. Separate company-scale and executive-scale watches - volumes differ, and mixed packs confuse the model.

Get started:[Entities]·[API reference]·[Articles sandbox]·[API pricing]

── more in #large-language-models 4 stories · sorted by recency
── more on @perigon 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/improve-ai-output-wi…] indexed:0 read:7min 2026-08-21 ·