The Sales-Research Agent and the Problem of Stale Facts

Every fact in the brief had been true. None was labelled with when — so someone opened a call congratulating a person on a role they'd left a year ago.

A research agent that prepares briefs before customer calls is an easy win: pull together what's public about a company, what's in the CRM, what happened in previous conversations, and produce a page someone reads in the taxi.

The version that went wrong wasn't wrong about anything, exactly. It reported a headcount from a two-year-old profile, named a VP who had left, and cited a funding round as recent that had closed eighteen months earlier. Every fact had been true. None was labelled with when.

Someone opened a call by congratulating a person on a role they no longer held.

Facts have an expiry, and it varies enormously

The core insight for any research agent: retrieved facts differ hugely in how fast they go stale, and treating them uniformly guarantees embarrassment.

  • Nearly permanent: founding year, headquarters city, what the company sells.
  • Slow: headcount, market position, general strategy.
  • Fast: who holds a role, funding status, current initiatives, pricing.
  • Immediate: anything about an ongoing situation — an outage, a negotiation, a news story.

A brief mixing these without distinction invites the reader to treat everything as equally current, and the fast-moving facts are exactly the ones that produce awkward moments.

Date every claim, visibly

The fix is unglamorous and effective: every fact in the output carries the date of its source, and the rendering makes age obvious.

Headcount:  ~450        (source: company careers page, 2024-11) ⚠ 21 months old
CTO:        A. Rivera   (source: press release, 2025-03)        ⚠ 17 months old
Last round: Series C    (source: news article, 2025-02)         ⚠ 18 months old
Recent:     Announced EU expansion (source: blog, 2026-08-11)   3 days old

→ The reader now knows which lines to verify and which to rely on. That's the whole deliverable improvement, and it required no better research — only propagating a field the sources already had.

Separate what's known from what's current

The stronger version splits the brief into two sections with different confidence:

Established — durable facts, safe to state. As of the last check — time-sensitive facts, each dated, flagged when older than a threshold appropriate to that fact type.

Different fact types get different thresholds. A headcount six months old is fine; a named role six months old deserves a flag; an ongoing situation from last week is already suspect.

Prefer the source of record

Where multiple sources disagree — as they routinely do about companies — precedence should be explicit rather than left to whichever ranked highest:

  1. Your own CRM and interaction history, when it's maintained. Often the freshest and always the most relevant.
  2. The company's own current pages.
  3. Recent reporting, dated.
  4. Aggregated profiles, which are convenient and frequently the stalest thing available.

⚠️ Aggregator data is the most common source of confidently wrong facts in these systems, because it's structured, easy to consume, and updated on nobody's particular schedule.

Surface disagreement rather than resolving it

When sources conflict, a brief that says so is more useful than one that silently picks:

Headcount: 450 (careers page, 2024-11) vs ~600 (aggregator, undated)
           → treat as approximate; likely grown since 2024

Silent resolution is where a research agent's most damaging errors live, because the reader has no signal that a judgment was made on their behalf.

✅ What made the working version work

  • Every claim carries a source and a date, propagated from extraction rather than reconstructed at the end.
  • Age is rendered visibly, with type-appropriate thresholds.
  • Facts about people are flagged for verification by default — roles change and the cost of getting one wrong is disproportionate.
  • Conflicts are shown, not resolved.
  • The brief says explicitly what it couldn't find, so absence isn't read as absence in reality.

That last point matters more than it sounds. A brief with no mention of recent news reads as "nothing happening," which is a different claim from "we didn't find anything."

The takeaway

For any agent that gathers facts about the world, freshness is a first-class property, not metadata. Carry the date with every claim from extraction through to the output, render age visibly with thresholds that match how fast that kind of fact moves, prefer sources of record over convenient aggregators, and show disagreement instead of quietly resolving it. The research doesn't need to be better — it needs to say when it was true.

Keep reading

Similar posts

Matched on shared tags and category — the more bars, the stronger the overlap with what you just read.