Monday morning. Your pipeline is full, your calendar is full, and somewhere last week something happened that should have been your next deal. A funding round. An executive walking out. A regulator setting a deadline. Nobody sent it to you.

Your CRM is very good at the deals you already have. It can only ever tell you about people you have already met. The lead you lose isn't the one you forgot to chase — it's the one you never knew existed.

What Auspius does

You tell it what your business sells. Every week it reads the market and tells you who to call, why now, and what the opportunity is worth.

It is not a news feed. A feed tells you something happened. Auspius works out whether it matters to you, scores it, assigns a next step, and shows its working.

The idea it is built on

The same news means two different things to two different businesses.

Take one real headline: "Disney's environmental sustainability co-lead leaves the company."

  • To a company selling AI infrastructure, that is bad news. The person who signs the cheque just walked out. Flag the account; don't open it.
  • To an executive search firm, the same sentence is the best news of the week. An empty seat with no successor named is a live mandate, contested within days.

Same code, same model, same source. The only difference is one sentence in a configuration file describing who the system is working for. That inversion is the product. No onboarding form asks "when a decision-maker leaves, is that good news or bad news for you?" — and that is the question that decides whether a signal is a lead or a warning.

Seven configurations ship, two of them exact opposites. Between them they have sourced 247 organisations, none from a seed list.

What makes it trustworthy

Three things, in order of how much they matter:

It only believes sources it actually fetched. Every week Tavily searches the live web and brings back real pages — filings, postings, press releases. The models only ever see those. If a model returns a URL the search never returned, the signal is dropped before it can be scored. That is enforced in code, not asked for in a prompt, and it is covered by a test.

It checks the source actually says the claim. A URL coming back from search isn't enough. If the page never mentions the organisation, or states a figure different to the one claimed, the signal is dropped as ungrounded — and kept, with its reason, so you can see what was thrown away and why.

It argues against itself. Netflix losing its first chief sustainability officer scores 80 out of 100 and lands as critical. The same card then tells you Netflix has a large in-house recruiting team and may never go to market. It would rather talk you out of a bad call than win the click.

The score is arithmetic, not an opinion

No model supplies the number. Four factors are added up in code — how many of your practice areas the event opens, whether it is a multi-service opening, how urgent the signal is, and the size of the organisation. Open any number and you can see where it came from. A prospect who could buy two of your services outranks a bigger prospect who could buy one, because multi-service accounts are stickier and cheaper to serve.

What I built

Twelve agents, running on NVIDIA Nemotron through Nebius Token Factory. Eight collectors, each with its own brief and its own Tavily query set; a verifier; an analyst; a briefing writer; a dashboard updater. The configuration file is the only thing that changes between industries — the code is identical for all seven.

What I learned

Most of the work was not prompting. It was deciding what the model is not allowed to do. Almost every bad output in early runs came from the model being trusted with something that should have been arithmetic or a lookup — the score, the URL, whether a page supports a claim. Moving each of those into code fixed a class of failure rather than an instance of it.

A counter-argument is worth more than a confidence score. A number between 0 and 1 tells a salesperson nothing. "They have an in-house team and may never go to market" tells them whether to pick up the phone.

Two model sizes beat one. Extraction is volume work; verification is judgement. Using the big model for both would have cost roughly four times as much and read no better.

The hardest problem

Misattribution. The first clean run produced a confident claim about Oak Ridge National Laboratory sourced to a Facebook post about a physicist at a different institution. Nothing in the pipeline was broken — search returned the page, the model read it, the claim was plausible. It was simply wrong.

The fix was a grounding check that asks a blunt question of every signal: does this page actually name this organisation and state these figures? If not, the signal is dropped and recorded as ungrounded. That one check is now the difference between a tool a BD team would use and one they would stop trusting in week two.

Built With

  • ai-agents
  • business-intelligence
  • css
  • dotenv
  • es-modules
  • express.js
  • html
  • javascript
  • json
  • llm
  • multi-agent
  • nebius-token-factory
  • nemotron-3-super-120b
  • nemotron-3-ultra-550b
  • node-cron
  • node.js
  • nvidia-nemotron
  • prompt-engineering
  • rag
  • rest-api
  • rss
  • serverless-inference
  • tavily
  • web-search
Share this project:

Updates

Submission history