Quick overview
This workflow runs every weekday morning and calls an Apify actor to fetch newly published German construction tenders that include GAEB bill-of-quantities positions, then formats each tender into a readable summary with keyword hit snippets for downstream use.
How it works
- Runs at 07:00 (Europe/Berlin) every Monday to Friday.
- Sends a POST request to the Apify API to run the “german-construction-tenders-gaeb” actor synchronously with filters such as publication window, CPV prefixes, keywords, GAEB-only, and maximum tender count.
- Parses the returned dataset items and, for each tender, extracts key fields like buyer, submission deadline, location, GAEB position count, and documents URL.
- Matches keyword hits against GAEB positions and generates short text excerpts/snippets around the first matched keyword to provide context.
- Outputs one formatted item per tender, including a prebuilt multi-line message summarizing the tender and up to five keyword-hit positions.
Setup
- Create an Apify account, get an API token, and replace
YOUR_APIFY_TOKEN in the Apify request URL (or store it as an n8n HTTP Query Auth credential parameter named token).
- Adjust the Apify request JSON body to set your desired filters (for example
keywords, cpvPrefixes, pubDaysBack, and maxTenders).
- (Optional) Add region filters like
postalCodePrefixes or nutsPrefixes to the Apify request body to narrow results and keep the sync run within the timeout.
Requirements
Customization
- Filter by specific German postal code prefixes (postalCodePrefixes, e.g., ["10", "80"]), NUTS regions (nutsPrefixes), or custom product keywords inside GAEB .x83, .d83, and .p83 Bills of Quantities.
Additional info
Covers ~85% of public German construction notices via oeffentlichevergabe.de, including Cosinex, subreport ELViS, evergabe.de, Deutsche eVergabe, evergabe-online.de, AI NetServer (HAD, Hessen, BW), and Healy Hudson (Deutsche Bahn, Hamburg).