CivicTechTO / CivicTechTO/toronto-bids

Toronto Police Service procurement (MERX)

Open
#105 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
7
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Part of #103. Blocked on #103's keyspace and terms-of-use decisions.

## What exists

Toronto Police Service posts open and closed solicitations on **MERX** — `https://www.merx.com/torontopolice`. Reported threshold: public tenders/RFPs over **$50,000**.

The Service also has a purchasing page at `https://torontopolice.on.ca/purchasing/` and a Procurement Services unit under Corporate Services Command (`tps.ca`).

## Note for whoever picks it up

**`torontopolice.on.ca/purchasing/` returns 403 to a plain HTTP client** — bot-gated, like TMMIS. The page exists (it is indexed and linked); it just is not readable without a real browser. Do not record it as "does not exist". If TPS's own site turns out to carry award results that MERX does not, that 403 is the obstacle, and `sources/council.py` already has the headed-Chromium pattern for exactly this.

## Scope

Same platform as TTC (#104) and the Parking Authority (#106). **This should be configuration of a MERX adapter, not a third scraper.** If it turns out to need its own code, that is a finding worth writing down.

## Sources

- https://www.merx.com/torontopolice
- https://www.tps.ca/organizational-chart/corporate-services-command/finance-business-management/procurement-services/
- https://www.tps.ca/services/do-business-service/

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading issue #103 for the keyspace and terms-of-use decisions, then compare the MERX work for TTC (#104) and the Parking Authority (#106). Inspect sources/council.py for the headed-Chromium pattern and identify the existing MERX adapter configuration. Done means TPS solicitations are covered through configuration, with any need for custom code documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.