Uses the federal open-tender files from CanadaBuys, then searches the notices in them. Matches go to a local file.
CanadaBuys refreshes the open file each morning. A second file lists notices published that day and is refreshed through the day. Both are the federal list. The website also shows notices from other governments, and those are not in these files. When checked, the open file held about 800 to 1,000 notices.
Answer four questions once:
python canadabuys.py setup
That writes profile.txt. The next run reads notices published today, asks the model which ones fit that profile, and writes only those.
python canadabuys.py
Set OPENAI_API_KEY first. --open scores the full open file instead of the notices published today.
A word search does not need a key or a profile:
python canadabuys.py "software ontario"
--all requires every search word. Without it, any one word is enough.
Python 3.11 or newer. No extra packages.
MIT