Canadian Government Tender Monitor
Pricing
from $5.00 / 1,000 tender notices
Canadian Government Tender Monitor
Track Government of Canada tender opportunities matched to your business. Buyer contacts, closing dates, GSIN/UNSPSC filtering and relevance scoring, from official open data. Not affiliated with the Government of Canada.
Pricing
from $5.00 / 1,000 tender notices
Rating
0.0
(0)
Developer
Jon Mcconnell
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Find Government of Canada contracts your business can actually bid on. Reads every federal tender notice from official open data, scores each against what you do, and returns clean rows with buyer contacts, closing dates, and eligibility details.
Run once for a snapshot, or schedule it daily to get new opportunities the morning they're published.
Not affiliated with, or endorsed by, the Government of Canada.
Quick start
Click Run. The defaults return currently open federal tenders matching software and consulting work.
To tune it for your business, set two things:
- Keywords — what you deliver (
janitorial,engineering,translation) - GSIN or UNSPSC code prefixes — Canada's classification codes. Prefixes work, so
D3catches all D3xx categories
Everything else is optional.
What you get
One row per notice:
| Field | Description |
|---|---|
title, description | What the government wants |
organization | The buying department or agency |
contactName, contactEmail, contactPhone | Who to talk to |
closingDate, daysUntilClosing, urgency | How long you have |
publicationDate, amendmentNumber, amendmentDate | Notice history |
tradeAgreements | Which trade agreements apply — determines whether you're eligible to bid at all |
procurementMethod, selectionCriteria | How the bid will be run and judged |
limitedTenderingReason | Why competition was limited, where applicable |
procurementCategories | Construction / Goods / Services |
gsinCodes, unspscCodes | Official classification codes |
buyerProvince, buyerCity, postalCode | Where the buying department is |
regionsOfDelivery, regionsOfOpportunity | Where the work is |
expectedStartDate, expectedEndDate | Contract period |
solicitationNumber, referenceNumber | IDs for cross-referencing award data |
relevanceScore, matchedKeywords | Why this matched you, 0–100 |
searchUrl | Opens CanadaBuys with this notice's solicitation number |
noticeUrl | Direct link, where the government provides one |
language | Whether the source notice was English or French |
How relevance scoring works
Deterministic and explainable — no AI, no randomness, identical output for identical input.
- Keyword in the title: +40
- Keyword in the description: +15
- GSIN or UNSPSC code match: +35
- Capped at 100
The minimum score defaults to 1, meaning a notice must match something to be returned. Set it to 0 to browse everything regardless of match, or raise it toward 40 once your keywords are tuned. If you set no keywords or codes at all, every notice scores 100 and the threshold has no effect.
Recommended setup: a daily opportunity feed
- Set Which notices to
Published today only - Set your keywords and codes
- Set Minimum relevance score to
40 - Schedule the Actor each morning
- Pipe the dataset to Slack, email, Google Sheets, or Zapier via Apify integrations
New matching federal contracts arrive daily without you checking a portal.
Two data quirks this Actor handles for you
Notices marked "Open" that closed months ago. The source data leaves the status field stale — testing found notices still marked Open more than a year past their closing date. Hide notices past their closing date is on by default, so you only see things you can still bid on. Turn it off for historical research.
Missing links. Only some notices carry a direct URL in the open data, and CanadaBuys' internal page slugs can't be derived from any published field. Rather than construct links that 404, every row gets a searchUrl that opens CanadaBuys pre-filtered to that solicitation number. It always resolves.
Bilingual by design
Federal notices are published in English and French, and some records populate only one side. This Actor returns the English text where available and falls back to French rather than returning a blank — so you don't silently lose opportunities. The language field tells you which you got.
Procurement categories
| Code | Meaning |
|---|---|
CNST | Construction |
GD | Goods |
SRV | Services |
SRVTGD | Services related to goods |
A notice can carry more than one.
Coverage and limits
- Federal notices only. The CanadaBuys website also lists provincial and municipal opportunities, but the open data files cover federal organizations only. This Actor reflects that.
- Notices published through PSPC's SAP Ariba system appear the following day, after the overnight sync.
- Not every notice populates every field; missing values come through as
nullrather than causing a failure. - One solicitation can appear multiple times as it's amended. Results are deduplicated per run, keeping the first occurrence.
A note on the contact emails
The contact details are procurement officers' work addresses, published by the government so that bidders can reach them about specific solicitations.
Canada's Anti-Spam Legislation (CASL) governs commercial electronic messages. Contacting an officer about the specific opportunity they posted is the intended use. Adding these addresses to a bulk marketing list is not, and may expose you to penalties. Use them for what they're for.
Data source and licensing
Data comes from the CanadaBuys tender notices dataset published by Public Services and Procurement Canada, used under the Open Government Licence – Canada.
The "published today" file is refreshed every 2 hours from 6:15 am to 10:15 pm (UTC−05:00). The "currently open" file refreshes each morning between 7:00 and 8:30 am.
This is an official licensed open data feed, not scraping. No proxies, no anti-bot measures, no terms-of-service grey area, and nothing that breaks when a website is redesigned.
This Actor is an independent product. It is not affiliated with, endorsed by, or sponsored by the Government of Canada or Public Services and Procurement Canada.
Troubleshooting
"No matching notices found" — a filter problem, not a fault. Switch Which notices to All currently open, clear your keywords, set minimum relevance to 0, then narrow back down.
Nothing matches my code — try a shorter prefix. 81111500 is narrow; 8111 is broad; 81 is broader still.
I expected provincial contracts — see Coverage above. The federal open data files don't include them.
Fewer results than I expected — expired notices are hidden by default. Turn off Hide notices past their closing date to include them.