Client
OneExpert, a brand owned by Global Digital Cloud Solutions (GDCS), was founded by two senior professionals with more than 20 years of experience in IT. Two years ago, alongside their ongoing projects, they launched a recruitment agency dedicated exclusively to the IT industry.
OneExpert recruits IT engineers and managers, and the company's edge lies in the technical validation of candidates. A client doesn't receive 100-150 CVs for a single position. Instead, they get 5-10 candidates who have passed a full technical recruitment process at GDCS.
Challenge: a niche that's hard to serve manually
The most interesting need came from the clients themselves: specialists for tenders. Companies no longer keep engineers on the bench, because with fewer projects they can't afford it. To bid in a tender, however, they need signed contracts with specialists who meet the specification: specific certifications, specific project experience, and sometimes an employment contract requirement. By then, there are often only 3-4 days left before the bid deadline.
So the value proposition is narrow, specific, and urgent on the buyer's side.
- Tenders were searched for one at a time and manually, alongside ongoing projects and with the usual lack of time.
- Personnel requirements don't sit in one place. The data is split between BZP (the Polish Public Procurement Bulletin) and TED (the EU's Tenders Electronic Daily). Some notices redirect to procurement platforms without documents, and the personnel clause is sometimes in the bidder qualification section, not in the contract description.
- The existing channels weren't working. A LinkedIn campaign didn't bring a single lead. Cold mailing run by an external agency brought in one large client, but it also created a whole process and the costs that came with it.
- GDCS deliberately didn't want to burn budget on reaching everyone. Outreach was meant to go only to companies with a here-and-now need.
The core question
How do you catch, every day and without manual work, the IT tenders in which the contracting authority explicitly requires specific people, and reach the right company before the deadline?
There were also two targets, as OneExpert clarified during the workshop: companies bidding in a tender, which can be offered candidates to submit with their bid, and companies that have already won and need people to meet the requirements.
Solution
The agent runs every day in the cloud, on the GDCS workspace. It starts with a list of notices and ends with a Lead record in the CRM. There was one rule: we don't reinvent the process, we automate the one the client has already gone through manually.
Solution
It starts with a list of notices and ends with a Lead record in the CRM.
Atlas PrzetargówExcelTavilyProspeo + LushaRaynet
01Workshop and mapping of the manual process
Instead of designing the solution upfront, we walked step by step through GDCS's existing process: which filters matter, where in the documentation to look for requirements, and what counts as a signal versus noise. The team showed two edge cases and their own Excel table, which became the target data schema.
1.5 h · 2 reference cases · ready-made Excel template
02Two qualification gates, in a fixed order
Only a tender with a CPV code starting with 72 or 48 makes it into Excel, and only if the original notice text contains an explicit personnel requirement: a list of persons, an obligation to have persons available, or persons assigned to perform the contract. A role name alone isn't enough. We don't use the AI summaries from Atlas Przetargów, and missing source text means the record is rejected.
CPV 72/48, then a personnel requirement in section 5.4
03Architecture: a cloud agent
The GDCS Daily Tenders agent runs every morning, with a target window of 06:00-07:00 Warsaw time, on the client's workspace. Nobody needs to keep a computer switched on. We connected the integrations through four MCP toolboxes in Make: List Tenders and Get Tender (Atlas Przetargów), Microsoft Excel, and Raynet. Web research runs on Tavily, billed per query: $0.008.
ChatGPT Agents · Make MCP Toolboxes · Codex
04Who won: the company name straight from the award notice
For a closed tender, GDCS's potential client is the company that won it, because that company now has to provide the people the tender requires. The API doesn't always return the winner's name, so some tenders had the status "resolved" without it being clear who won. The agent checks four sources in turn, ending with section VII of the award notice, where the contracting authority states who it awarded the contract to. It doesn't guess: when no source names the company, the record goes back for re-checking and doesn't reach the CRM. Today, a missing company name only means the tender was canceled.
Company name in 259 of 259 resolved tenders · 4 sources in a fixed order
05Domain waterfall with confidence levels
The search starts from the company's full legal name, with the tax ID (NIP) and court register number (KRS) used only as supporting evidence. Business directories and social media profiles don't count as a website. High and medium confidence results move forward; low confidence leaves the domain empty and flags the record for manual verification. No domain was assigned to 16 companies, because there was no sufficiently reliable candidate.
243 records with a domain
06Contact enrichment by role priority
The priority is set in advance: technology first (CTO, CIO, VP Engineering, Head of IT, IT Manager), then delivery and operations, and in smaller companies the CEO, Managing Director, or founder. Prospeo and Lusha are used solely to obtain verified business emails. The system doesn't pull phone numbers and never guesses an email.
max. 2 decision-makers · verified business emails only
07A Raynet record with a ready-made brief
Only a company that won the tender according to the notice, and for which the agent found at least one verified business email of a decision-maker, reaches the CRM. The agent creates a lead titled "Tender - [full legal company name]". The note includes the tender link, the winning bid price, and the selected decision-makers. The team doesn't need to go back to the notice to know what the company won, for how much, and who to write to.
Lead and structured note · zero outbound communication
08Two archives and a report from every run
Excel remains the operational system of record, split into open and closed tenders. Each run covers exactly the previous 24 hours in the Europe/Warsaw time zone. Every run ends with a report: records fetched and qualified, duplicates, enrichment results, Leads created, and items for manual verification.
344 open tenders · 324 closed
Scope
We narrowed the scope on purpose.
What the agent doesQualifies tenders on the source text of the notice
Names the winner straight from the award notice
Finds the company domain, with a confidence level
Finds verified business emails for max. 2 decision-makers
Creates a Lead with a structured note in Raynet
What it deliberately doesn't doRun campaigns or follow-up sequences
Enrich records with phone numbers
Create Accounts or Persons in Raynet
Guess a company name or an email
Business Value
The system belongs to GDCS
The agent runs on GDCS's own workspace, and the data lives in their own Excel and their own CRM. Together with the implementation, we handed over full documentation: instructions, the analyses we ran, and an archive of the entire build process. The team can keep developing the system without us.
Manual searching turned into an auditable register
Previously, tenders were found one at a time, alongside ongoing projects. Now a new batch of qualified records appears every morning, and each one can be traced back to the source text of the notice.
668 tenders in the launch archive are a ready-made starting point
Before the system went live, we processed the historical data: 344 open and 324 closed tenders, with winners and domains recovered. The channel doesn't start from an empty database.
Launch archive
The channel doesn't start from an empty database.
668tenders processed before launch344 open · 324 closed
259/259resolved tenders with the winner named4 sources in a fixed order
243records with a domain16 companies without one - no reliable candidate
Precision instead of volume
The IT market is saturated, and mass cold outreach in this industry converts at 0.5-1.5%. OneExpert doesn't have the scale to win on volume, and it doesn't need it. Qualifying on the notice's source text means outreach goes only where the contracting authority itself wrote that it needs specific people.
In this niche, the decision window is often 3-4 days before the bid deadline. What matters is a shorter time between the notice and the outreach, and the daily run shortens exactly that gap.