Adds Arc.dev, BC T-Net, Eluta, iCIMS tenants, QAJobsBoard, and SmartRecruiters manifests with registry/settings/UI wiring; registers full extractor list in smoke-extractors and documents supplementary board access paths. Aligns Careerjet v4 with the url query parameter and fixes strict typing in QAJobsBoard. Co-authored-by: Cursor <cursoragent@cursor.com>
6.3 KiB
id, title, description, sidebar_position
| id | title | description | sidebar_position |
|---|---|---|---|
| canadian-companies-qa-ats | Canadian companies — strong QA orgs and scrapable ATS | Reference list of Canadian tech employers with solid QA cultures and practical ATS endpoints for JobOps pipelines. | 41 |
What it is
A curated reference of Canadian-headquartered or Canadian-heavy tech employers where QA / SDET / test automation is often a first-class function, together with scrapable ATS endpoints where they exist.
Tier 1 targets map cleanly to the shipped Ashby, Greenhouse, Lever, Workday, and SmartRecruiters extractors. Tier 2 entries need custom scraping, browser automation, or upstream quirks.
Verification: Tier 1 integrations below were probed successfully (HTTP 200, JSON where applicable). Posting counts change daily — re-run probes locally when you need exact volumes.
Why it exists
Canada-focused QA sourcing benefits from employer-direct ATS feeds (clean titles, real apply URLs) instead of only aggregator noise. This page maps recognizable brands to exact integration shapes so you can paste slugs into Settings or env without rediscovering URLs.
How to use it
Tier 1 — Public ATS APIs (shipped extractors)
| Company | HQ | ATS | Endpoint / shape (reference) | JobOps wiring |
|---|---|---|---|---|
| Wealthsimple | Toronto | Ashby | GET https://api.ashbyhq.com/posting-api/job-board/wealthsimple |
Add wealthsimple to ashbyCompanies / ASHBY_COMPANIES. |
| 1Password | Toronto (remote-first) | Ashby | .../job-board/1password |
Add 1password. |
| Jobber | Edmonton / Toronto | Ashby | .../job-board/jobber |
Add jobber. |
| Nylas | Toronto / SF | Ashby | .../job-board/nylas |
Add nylas. |
| Hootsuite | Vancouver | Greenhouse | GET https://boards-api.greenhouse.io/v1/boards/hootsuite/jobs?content=true |
Add hootsuite to greenhouseCompanies. |
| Faire | Waterloo / SF | Greenhouse | .../boards/faire/jobs?content=true |
Add faire. |
| PointClickCare | Mississauga | Lever | GET https://api.lever.co/v0/postings/pointclickcare?mode=json |
Add pointclickcare to leverCompanies. |
| Clio | Burnaby / Calgary / Toronto | Workday | POST https://clio.wd3.myworkdayjobs.com/wday/cxs/clio/ClioCareerSite/jobs (limit, offset, searchText) |
Add https://clio.wd3.myworkdayjobs.com/en-US/ClioCareerSite to workdayTenants / WORKDAY_TENANTS. |
| Coveo | Quebec City / Montreal | SmartRecruiters | GET https://api.smartrecruiters.com/v1/companies/Coveo/postings |
Add Coveo to smartrecruitersCompanies. API stays 200; totalFound may be zero between hiring waves. |
Optional Ashby query parameter ?includeCompensation=true works in browsers and curl for richer payloads; the bundled Ashby extractor calls the same path without that query and still returns full job lists.
Example Settings JSON (merge with your existing lists):
["wealthsimple", "1password", "jobber", "nylas"]
["hootsuite", "faire"]
["pointclickcare"]
["https://clio.wd3.myworkdayjobs.com/en-US/ClioCareerSite"]
["Coveo"]
Tier 2 — Harder or custom surfaces
| Company | HQ | ATS | Notes |
|---|---|---|---|
| Shopify | Ottawa / remote | Ashby (custom) | Hosted board / GraphQL (jobs.ashbyhq.com/api/non-user-graphql, organizationHostedJobsPageName: "shopify") or parse careers HTML — not covered by the slug-based Ashby extractor today. |
| Lightspeed Commerce | Montreal | Custom (often Cloudflare) | Careers HTML at https://www.lightspeedhq.com/careers/openings/ — browser or tolerant fetcher; no shipped extractor. |
| RBC Borealis | Toronto / Montreal | Greenhouse (embedded) | boards-api path rbcborealis returned 404 when probed — scrape https://rbcborealis.com/careers/ or rediscover the active board slug before using Greenhouse JSON. |
| Vidyard | Kitchener–Waterloo | JS-heavy site | https://careers.vidyard.com/ — Playwright/Puppeteer if automating. |
| Loblaw Digital | Toronto | Workday (parent) | Parent Workday host may need the correct site segment; careers marketing site often lists roles — browser-backed discovery may be more reliable than guessing CXS paths. |
Ready-to-use CLI filters (QA-oriented titles)
Ashby (example: Wealthsimple):
curl -s 'https://api.ashbyhq.com/posting-api/job-board/wealthsimple?includeCompensation=true' \
| jq '.jobs[] | select(.title | test("QA|SDET|Test|Automation"; "i")) | {title, location, url: .jobUrl}'
Greenhouse (example: Hootsuite):
curl -s 'https://boards-api.greenhouse.io/v1/boards/hootsuite/jobs?content=true' \
| jq '.jobs[] | select(.title | test("QA|SDET|Test|Automation"; "i")) | {title, location: .location.name, url: .absolute_url}'
Lever (PointClickCare):
curl -s 'https://api.lever.co/v0/postings/pointclickcare?mode=json' \
| jq '.[] | select(.text | test("QA|SDET|Test|Automation"; "i")) | {title: .text, location: .categories.location, url: .hostedUrl}'
Workday (Clio — QA search text):
curl -s -X POST 'https://clio.wd3.myworkdayjobs.com/wday/cxs/clio/ClioCareerSite/jobs' \
-H 'Content-Type: application/json' \
-d '{"limit":50,"offset":0,"searchText":"QA"}' \
| jq '.jobPostings[] | select(.title | test("QA|SDET|Test|Automation"; "i")) | {title, location: .locationsText}'
Other strong-QA Canadian employers (ATS not deep-verified here)
Worth manual checks or Eluta / LinkedIn cross-reference: Wattpad, Knix, Ada, Hopper, Plusgrade, D2L, Kinaxis, TELUS Digital / Mirum, Trulioo, OpenText / Hubdoc.
Common problems
- Ashby counts vs
includeCompensation: Omitting the query param still returns jobs; compensation fields may be sparser. - Greenhouse board slug drift: If
boards-apireturns404, the employer may have renamed the board — inspect their careers page embed or HTML source for the current board id. - SmartRecruiters zero postings: Still a valid integration; don’t treat empty arrays as a broken extractor.