Finding business opportunities at the right time, ahead of competitors
By the time a buying moment is common knowledge, competitors are already in the conversation. For an offshore preservation services provider, those moments were scattered across operator releases, regulator filings, class-society bulletins and trade press.
My contribution
Led the product from the first client conversation to the weekly production run. Scoped the service with the client around one question: who to call this week, why now and who to ask for. Proved the sources and scoring in a prototype, then designed and implemented the production pipeline: more than 50 Norwegian and English sources, AI extraction that drops any signal its page does not support, company matching on identifiers instead of names, and a deterministic two-stage scoring model the client adopted. Built the safeguards that let a sales team act without checking first: corroboration across independent sources, an evidence check on every recommendation, a pre-send review by a second model, Sunday dry-runs, self-healing sources and a hard cost cap on every run. Delivered the Monday workbook, e-mail briefing and role-based dashboard, then turned the core into a platform behind the custom versions for other clients, the sector variants and the public sample demo.
Key decision A team of AI agents scans each client’s own list of relevant sources every day for custom market signals. Rules rank the opportunities in an explainable way, and independent confirmation is required before a company reaches the report.
Outcome Delivered every Monday morning in production in 2026, from more than 50 monitored sources, with a weighted scoring model the client adopted. Custom versions now run for other clients.
Situation
Market intelligence is worth paying for when it is early. The value is finding a business opportunity at the right time, before it is common knowledge, so the client is in the conversation before competitors are. For each client, a team of AI agents looks every day for custom market signals across a list of relevant online sources.
An offshore preservation services provider needed to know when to reach out. The buying moments in its sector (rigs going into lay-up, units coming off contract, ageing installations, maintenance campaigns) are announced across operator releases, public registers, fleet-status reports and trade press, in Norwegian and English.
Watching all of that by hand took hours every week, and a missed signal was a missed sale. An earlier paid intelligence service had produced reports that were expensive and hard to act on. The client wanted a short list every Monday: who to call, why now, and who to ask for.
Task
Build a weekly service the sales team could act on without checking it first. Three requirements shaped every decision:
- Every ranking must be explainable. When the sales director asks why a company is at the top, the answer has to come from the sources, not from a model's opinion.
- Nothing unsupported reaches the client. A wrong company, a dead link or a claim the source does not make costs more trust than a short report.
- The running cost stays small and capped. Paid data and AI calls are spent only where they change the outcome.
Action
We started with a Python prototype in March to prove the sources and the scoring, then rebuilt it as a scheduled production pipeline with a dashboard. AI does the reading; rules do the ranking; independent checks decide what is sent.
System workflow
Architecture
AI reads, rules rank. A language model turns Norwegian and English pages into structured signals. A signal is dropped when its company, or the key terms of its description, do not appear on the source page. Ranking is deterministic and has no language model in it: a signal score from six core dimensions (engagement, fit with the client's ideal customer, preservation signals, pain points, recency and source quality), raised by catalogue boosters such as fleet age, lifecycle stage, stacking status and the timing of the next class survey. The top companies then get an opportunity-value score built from rig specifications. Tiers are HOT, WARM and MONITOR, and every score shows the reasoning behind it.
Company matching on identifiers, not names. Signals are matched to the prospect list by exact key, then by web domain, with alias clusters so two spellings of one operator count as one company. Fuzzy name matching was measured and removed: of 41 fuzzy matches across 111 stored opportunities, 34 pointed at the wrong company.
Scope from public registers. Whether a company works on the Norwegian shelf is decided from the Norwegian Offshore Directorate's registers and the Brønnøysund company register. Only positive evidence removes a company. Anything unresolved is kept and disclosed.
A report stands on its own week. Each Monday report contains only what that week's run found. History lives on the dashboard and in the database.
Implementation
- Corroboration bar. A company reaches the report only when independent sources confirm it, with an exemption for official records. Withheld companies are listed on the Source Audit tab with the one source that named them, so a reader can see what was held back and why.
- Evidence check on every recommendation. If a recommendation's own citation contradicts it, it is blocked. If the citation does not support it, it is shown as a watch item rather than an opportunity.
- Discovery beyond the prospect list. Weekly jobs find new prospects from unmatched news and from the company register. A weekly supply-chain job gives yards, equipment makers, completion firms and maintenance contractors places of their own in the report.
- Fleet and rig research. Jobs read fleet-status reports and rig technical sheets, including PDFs, to size each opportunity.
- Contacts and outreach. Contact enrichment and outreach drafts in English and Norwegian run only for the top opportunities.
- Executive summary. A short briefing the reader sees first, written from the scored results.
- Delivery. Excel workbook (executive view, per-company tabs, source audit), an e-mail summary and a dashboard with logins and roles.
- Cost control. A per-run alert at $10 and a hard stop at $15, model calls traced in Langfuse, and one model-policy file that names every model the pipeline may use.
Verification
- A rule-based truth gate checks the deliverable before sending.
- A pre-send review by a second model reads the workbook, e-mail and dashboard exactly as the client receives them. In its gating mode, any finding, or no verdict at all, holds the send.
- A Sunday dry-run of Monday's report can stop the Monday run, and a separate job opens the rendered workbook and checks its cells.
- Self-healing sources. A Sunday probe finds sources that have broken, repairs their links where it can and routes Monday's run around the rest.
- Tests cover the scoring, matching, gates and the rules above, so a later change that weakens one fails before it reaches a client.
Result
Open full-size image ↗
Open full-size image ↗
Open full-size image ↗
- Delivered weekly in production in 2026, every Monday morning, from more than 50 monitored sources in Norwegian and English.
- Explainable rankings. Every score shows the reasoning behind it, and no language model sits in the rank.
- Withheld, not hidden. Companies without independent confirmation stay out of the report and are listed openly on the Source Audit.
- Checks that learned from real deliveries. The pre-send review was added after a report reached the client with defects that every rule-based gate had passed.
- Capped running cost, with paid enrichment spent only on the top opportunities.
What we would do differently: add the agent that reviews the delivered files before the first client send, not after the first defect. Rule-based gates only catch what someone thought to write a rule for; reading the finished deliverable catches the rest.
Skills evidenced
- AI extraction with verification. Language models read multilingual sources; extracted signals are checked against their page, and every recommendation against its own evidence.
- Deterministic, explainable scoring. A two-stage weighted score with visible reasoning, no language model in the rank.
- Entity resolution. Matching on keys, domains and alias clusters, with fuzzy matching measured and removed.
- Public-register integration. Scope and discovery from the Norwegian Offshore Directorate and Brønnøysund registers.
- Quality gates around AI output. Corroboration, evidence checks, a review of the deliverable by a second model, dry-runs and self-healing sources.
- Cost governance. Per-run caps, call-level tracing and a single model policy.
Portable lessons
- Let AI read; let rules rank. The ranking is what the client acts on, so it has to be defensible in a review meeting.
- Check the conclusion, not only the citation. A source can be real and still not say what the recommendation claims.
- Review the deliverable the client receives. Gates that check the data miss defects in the finished workbook and e-mail.
Want to discuss the decisions behind it?
Over fifteen years of consulting and growth, and hands-on AI delivery from discovery to daily operations. I can share my CV and talk through how I connect business outcomes with systems that run.
Available for a chat. In person in Stavanger, or remotely worldwide.