Canada Government IT Tender Monitor
Pricing
Pay per usage
Canada Government IT Tender Monitor
Find and normalize CanadaBuys federal IT tender notices for software, cloud, cybersecurity, data, AI, SaaS, and managed digital services. Includes fit scoring, explanations, deduplication, and company-fit filters.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
TenderPilot Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Find open Canadian federal IT procurement opportunities from CanadaBuys and export them as clean, structured data.
This Actor helps SaaS, cloud, cybersecurity, data, AI, and IT services vendors monitor public-sector tender opportunities without manually searching CanadaBuys every day.
What this Actor does
- Downloads official CanadaBuys tender notice CSV data.
- Filters for IT-related opportunities such as software, cloud, cybersecurity, data, AI, TBIPS/SBIPS, database services, and digital services.
- Scores each matching notice with a deterministic
fitScorefrom 0 to 100. - Outputs normalized records with buyer, dates, category, source identifiers, matched keywords, summary, source URL, and contact details.
- Works with Apify datasets, API exports, schedules, webhooks, and downstream AI-agent workflows.
Best use cases
- Monitor Canada federal IT RFPs and tender opportunities.
- Build a daily watchlist for government sales teams.
- Feed procurement opportunities into CRM, Slack, email, or internal bid pipelines.
- Track cybersecurity, cloud, AI, data, and software-related public-sector opportunities.
- Create a structured procurement intelligence feed for agents and automations.
Data source
The Actor uses official CanadaBuys open data files published through the Government of Canada open data ecosystem.
Default source:
https://canadabuys.canada.ca/opendata/pub/openTenderNotice-ouvertAvisAppelOffres.csv
Important scope note: this first version focuses on CanadaBuys federal tender notice data. It does not claim full coverage of all provincial, municipal, or external procurement portals that can appear in the CanadaBuys web search experience.
Input
Recommended default input:
{"source": "open","status": "open","minScore": 50,"maxItems": 100,"maxRowsScanned": 0,"dropExcluded": true,"includePastClosingDates": false}
Main input fields
| Field | Type | Description |
|---|---|---|
source | string | open, new, or complete. Use open for current open opportunities. |
status | string | open, expired, cancelled, or all. |
keywordsInclude | array | Optional custom IT keywords. Leave empty for the default IT keyword set. |
keywordsExclude | array | Optional custom exclusion keywords. Leave empty for defaults. |
dateFrom | string | Optional publication date lower bound, YYYY-MM-DD. |
dateTo | string | Optional publication date upper bound, YYYY-MM-DD. |
provinces | array | Optional buyer province filters, for example Ontario. |
minScore | integer | Minimum IT-fit score from 0 to 100. Default: 50. Use 40 for broader recall. |
maxItems | integer | Maximum dataset items to output. Default: 100. |
dropExcluded | boolean | Drop notices matching exclusion keywords. Default: true. |
includePastClosingDates | boolean | Include notices whose closing date is already in the past. Default: false. |
Output
Each dataset item is one normalized tender notice.
Key output fields:
| Field | Description |
|---|---|
id | Stable hash based on source notice, solicitation, and amendment identifiers. |
sourceNoticeId | CanadaBuys/MERX reference number when available. |
solicitationNumber | Solicitation number. |
amendmentNumber | Amendment number. |
title | Tender title. |
buyerName | Contracting entity. |
endUserName | End user entity when available. |
status | Tender status. |
publishedDate | Publication date. |
closingDate | Tender closing deadline. |
procurementCategory | CanadaBuys procurement category codes such as SRV, GD, or SRVTGD. |
procurementMethod | Procurement method. |
gsinDescription | GSIN description when available. |
unspscDescription | UNSPSC description when available. |
summary | Short normalized description snippet. |
fitLabel | strong_it_fit, possible_it_fit, or weak_it_fit. |
fitScore | Deterministic IT relevance score from 0 to 100. |
matchedKeywords | Keywords that matched the tender. |
excludedKeywordsMatched | Exclusion terms that matched, if retained. |
sourceUrl | Original notice URL, or a CanadaBuys tender-notice URL constructed from the source reference number when the CSV URL field is empty. |
attachments | Attachment URLs or names when available. |
contact | Contact name, email, and phone when available. |
fetchedAt | UTC timestamp for this Actor run. |
Example output item
{"fitScore": 72,"fitLabel": "strong_it_fit","title": "APN - CYBERSECURITY ASSESSMENT SOURCE LIST","buyerName": "Defence Construction Canada / Construction de Defense Canada","closingDate": "2026-07-08T14:00:00","matchedKeywords": ["cyber", "cybersecurity", "information technology"],"sourceUrl": "https://canadabuys.canada.ca/en/tender-opportunities/tender-notice/cb-951-14703007"}
Data source, freshness, and affiliation
Each run downloads the latest available CanadaBuys open tender CSV for the selected source mode.
Current scope:
- CanadaBuys tender notices.
- Primarily Canadian federal open tender data available in the official open-data files.
- Not provincial, municipal, MERX, SEAO, or BC Bid coverage yet.
Affiliation and verification:
- This Actor is not affiliated with CanadaBuys or the Government of Canada.
- Always verify tender details, attachments, deadlines, amendments, and bid instructions on the official source URL before bidding.
- Source update timing depends on the official CanadaBuys data publication process.
Source modes
open
Best default. Processes currently open CanadaBuys federal tender notices.
new
Useful for frequent polling and alert-style workflows. Processes newly published tender notices.
complete
Useful for historical analysis. Processes the complete CanadaBuys tender notice file from 2022-08-08 onward. This is heavier than open.
Tips
- Use
minScore: 50for the default cleaner feed. - Use
minScore: 40for broader recall. - Use
minScore: 70for a stricter high-confidence IT feed. - By default, past closing date-times are skipped even when the source status is still
Open. - Use
source: newwith Apify schedules and webhooks for alerting workflows. - Add custom
keywordsIncludefor your niche, for examplezero trust,SOC,SIEM,Oracle,Salesforce,ServiceNow, orMicrosoft 365. - Add custom
keywordsExcludewhen a broad keyword creates false positives.
Limitations
- This Actor is procurement intelligence, not legal or bid advice.
- Source completeness depends on the official CanadaBuys open data files.
- The baseline score is deterministic keyword/classification scoring, not a legal assessment of whether your company should bid.
- Long tender descriptions are truncated only in
summary; the full normalized description is still available indescription. - Attachment parsing and AI summarization are not included in v1. They are planned as future enrichment features.
Planned improvements
- Saved presets for cybersecurity, cloud/software, TBIPS/SBIPS, and AI/data.
- Better amendment grouping and duplicate handling.
- New-tender alert mode examples.
- Optional AI enrichment for tender summaries and company-fit scoring.
- Attachment parsing.
- Future expansion to SAM.gov and TED/EU using the same normalized schema.
Quality controls
scoreExplanationexplains why a tender matched, so users can auditfitScoreinstead of trusting a black box.strictMode: truenarrows the feed to opportunities with stronger IT evidence in the title or classification fields.focusArealets users quickly narrow the feed to cybersecurity, cloud/SaaS, data/AI, software licensing, IT professional services, or TBIPS/SBIPS opportunities.dedupeMode: latestBySolicitationNumberkeeps the latest record per solicitation number by default. Usenoneif you need every source notice/amendment row.
Company-fit matching
Use companyFitMode and companyProfileKeywords when you want the Actor to score or filter tenders for a specific vendor profile.
Example:
{"companyFitMode": "filter","companyProfileKeywords": ["SOC", "penetration testing", "cybersecurity assessment"],"focusArea": "cybersecurity","strictMode": true}
companyFitMode: scorekeeps all normal results and adds company-fit fields.companyFitMode: filterkeeps only results matching at least one company keyword.sortBy: companyFitScoreputs best company-profile matches first.
Large source safety
For source: complete, the Actor streams the official CSV and applies a default maxRowsScanned safety limit of 20000 rows unless you provide a different value. This avoids downloading and scanning the complete historical file blindly during normal runs. Use date filters, stricter filters, and explicit row limits when exploring historical data.