An agent that reads the news, trade press, company registries and deal databases every day, spots the people who have just come into money, and checks whether and how they may be contacted. Built as an MVP on dummy data, then rebuilt inside the client's own Microsoft environment.
The client raises money from private investors for building and property projects. Their best investor is someone whose situation just changed: an owner who sold the family business, a founder who cashed out in a private-equity exit, a generation change where the older generation sells. Those stories are public. They sit in M&A advisers' deal lists, law-firm announcements, bank press releases, trade media and the business-for-sale marketplaces. Nobody has time to read all of it every day.
So I built an agent with a set of skills that does. Every morning it scrapes 85 sources, extracts the individual news items, and scores each one from 0 to 100 against a written profile of what a good lead looks like. A named Danish owner who has just closed a sale scores 80 or more. A company merely put up for sale scores 40 to 59: interesting, but the money is not there yet. Group-to-group deals with no private seller score zero. The profile is a plain text file the client can edit without touching code.
A high score is only a hint. The next skill takes the name and the company and verifies them in the CVR register: is this person actually an owner, a board member or a founder of that company, now or historically? Who else sat in the ownership chain? Where did the sale proceeds land? In a side-by-side test on four real deals, the new CVR skill confirmed 5 of 5 people in about 13 seconds. The earlier version of the pipeline, built on web scraping alone, confirmed 1 of 3 and took minutes per person.
The last step is the one the client cared most about: are we allowed to contact this person, and how? The agent maps the contact routes it can find in public data (the person's holding company, a public LinkedIn profile, a company address) and marks which ones are fine to use. It never sends anything. Every message and every connection request is written by a person and sent by a person.
Too many leads
I expected to spend the project coaxing leads out of the data. The opposite happened. Across roughly 6,200 news items the agent flagged far more candidates than a small sales team could follow up, and the original plan of working every warm lead went in the bin. We tightened the profile so only the red-hot cases get through: named people, closed deals, money in hand, contactable today. Everything else is logged for later and resurfaces when the deal closes.
Personal data, so inside the fence
Names, ownership, LinkedIn profiles and a note about who recently got rich is personal data by any reading of GDPR. Running that through a cloud pipeline on my laptop was fine for a proof of concept and not fine for production. The client's IT department and I agreed on a three-step process: build the MVP outside to prove the idea works, test the full pipeline on dummy data, then rebuild the final version inside the client's own Microsoft environment where their IT sets the access rules and the data never leaves.
- MVP: Python pipeline, Firecrawl for scraping, Claude for extraction and scoring, SQLite for dedupe, an HTML report with the hot leads on top.
- Dummy-data test: same pipeline, made-up people and companies, run end to end with the client watching.
- Production: rebuilt inside the client's Microsoft tenant together with their internal IT. Same skills, same scoring profile, their walls.
What the client gets
- One report each morning with the hot leads as cards: who, which company, what happened, where the money went, and the contact routes that are okay to use.
- A dedupe database so the same article is never scored twice, and a source-status list so a dead source is visible instead of silently missing.
- A lead profile they own. Change the criteria in a text file, the agent changes what it looks for the next morning.
Want results
like these?
Tell me what you are building. I will tell you straight what is worth doing.
Start a conversation →