Find EU Software Tenders by CPV Code
Use CPV code 72000000 with country and date filters to find relevant European software and IT service tenders.

Software procurement is CPV 72000000. Pair that code with a country filter such as DEU or FRA, then add a current publication window. This is much cleaner than searching for the English word "software" across multilingual notices.
Use the EU TED Tenders Scraper to make that search reproducible. Save the exact filters and result cap as a Task rather than editing a one-off query every time.
Turn the search into a decision
Keep notices whose deadline is still open, then score buyer fit, country coverage, contract value, and CPV relevance. Do not discard a notice only because estimated value is absent; many legitimate notices omit it.
Create explicit inclusion columns such as is_in_scope, owner, and review_reason. Keep them in a derived table, not in the raw source rows. This makes it possible to rerun qualification rules without losing the original evidence.
Sample ten included and ten excluded records. If exclusions are caused by missing upstream fields, do not silently treat those fields as false. Put them in a review queue or document the assumption.
Refresh without creating duplicates
The record key is publication_number. Upsert on that key and record the collection timestamp separately. A recurring workflow should distinguish a newly published record from an older record whose metadata changed.
TED text is multilingual. The Actor prefers English where the notice supplies it, but some titles remain in another source language. Buyers and CPV codes are arrays because one notice can contain several of each.
The practical payoff is a smaller, explainable queue. The source query finds candidates; the qualification layer decides which candidates deserve attention. Mixing those two jobs into one opaque keyword search makes both harder to audit.
Frequently asked questions
Does this Actor use an official data source?
Yes. It queries the publisher's official public API and returns normalized records with traceable identifiers and source links.
Can I schedule this workflow?
Yes. Save the validated input as an Apify Task, attach a schedule, and compare each successful dataset with the previous snapshot.