Skip to content

add Canada and automation companies to portals template#393

Open
MrezaDorudian wants to merge 2 commits intosantifer:mainfrom
MrezaDorudian:feature/add-portal-companies
Open

add Canada and automation companies to portals template#393
MrezaDorudian wants to merge 2 commits intosantifer:mainfrom
MrezaDorudian:feature/add-portal-companies

Conversation

@MrezaDorudian
Copy link
Copy Markdown

@MrezaDorudian MrezaDorudian commented Apr 20, 2026

Adds a set of scanner-compatible companies to templates/portals.example.yml, including Canada/Vancouver targets and one automation platform. Verifies Greenhouse entries with API URLs.

Closes Issue #390

Summary by CodeRabbit

  • New Features
    • Added eight companies to job tracking: Boomi, Later, Safari AI, Hootsuite, Klue, Glacis AI, Sanctuary AI, and Semios. Users can now monitor these organizations' careers pages and job boards.
    • Semios supports an additional web-search-based scan option for broader job discovery.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

📝 Walkthrough

Walkthrough

Adds eight new tracked company entries to templates/portals.example.yml: Boomi plus seven Canada/Vancouver companies (Later, Safari AI, Hootsuite, Klue, Glacis AI, Sanctuary AI, Semios); entries are enabled and use Greenhouse API or websearch/scan_query where specified.

Changes

Cohort / File(s) Summary
Configuration Extension
templates/portals.example.yml
Appended 8 new tracked_companies records: Boomi (Greenhouse careers_url + api, enabled: true); Canada/Vancouver block with Later, Safari AI, Hootsuite, Klue, Glacis AI, Sanctuary AI (mostly Greenhouse careers_url + api, enabled: true); Semios (includes scan_method: websearch and scan_query, enabled: true).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately describes the main change: adding Canada-based companies and automation platform companies to the portals template.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@templates/portals.example.yml`:
- Around line 574-577: Add a one-line notes: field to the two entries identified
by name ("Safari AI" and "Glacis AI") so they match the other Canada/Vancouver
entries; for each, include a short descriptor like "Canada, Vancouver —
[product/area]" (e.g., "Canada, Vancouver — hiring for AI product/engineering")
and place the notes key alongside careers_url, api, and enabled in the same
indentation level to maintain YAML consistency and grep-ability.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 63695592-0a00-43cc-afaa-9c5447906de1

📥 Commits

Reviewing files that changed from the base of the PR and between 411afb3 and 2d6df66.

📒 Files selected for processing (1)
  • templates/portals.example.yml

Comment thread templates/portals.example.yml
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@templates/portals.example.yml`:
- Around line 566-594: The Glacis AI entry is under the "Canada / Vancouver tech
& AI" block but its notes list "Ho Chi Minh City"; update the Glacis AI entry to
be consistent by either changing the notes to reflect a Vancouver/Canada
presence (e.g., mention Vancouver engineering or Canadian offices) or move the
entire Glacis AI block out of the Canada/Vancouver section into the appropriate
region; ensure you update the unique entry by editing the "- name: Glacis AI"
block and its "notes" (and keep "careers_url" and "enabled" unchanged unless
relocating requires reordering surrounding entries).
- Around line 601-606: The Semios entry is silently skipped because detectApi()
(in scan.mjs) only recognizes Greenhouse/Ashby/Lever so a Workable URL yields
_api=null; either move the Semios record from tracked_companies into the
search_queries section (so scan_method: websearch is honored), or disable it by
setting enabled: false until supported, or implement Workable detection in
detectApi() (add logic to recognize workable URLs and return the proper _api
value) so Semios (name: Semios) is processed by the tracked_companies path;
update the Semios YAML entry or modify detectApi() accordingly to resolve the
mismatch.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4f56d424-48be-4385-9d29-a6e61394d09d

📥 Commits

Reviewing files that changed from the base of the PR and between 2d6df66 and 6bbc256.

📒 Files selected for processing (1)
  • templates/portals.example.yml

Comment on lines +566 to +594
# -- Canada / Vancouver tech & AI --

- name: Later
careers_url: https://job-boards.greenhouse.io/later
api: https://boards-api.greenhouse.io/v1/boards/later/jobs
notes: "Vancouver/Toronto. Social media and creator platform."
enabled: true

- name: Safari AI
careers_url: https://job-boards.greenhouse.io/safariai
api: https://boards-api.greenhouse.io/v1/boards/safariai/jobs
notes: "Miami HQ / Vancouver engineering. Computer vision AI for operations in the physical economy."
enabled: true

- name: Hootsuite
careers_url: https://job-boards.greenhouse.io/hootsuite
api: https://boards-api.greenhouse.io/v1/boards/hootsuite/jobs
notes: "Vancouver. Social media management platform."
enabled: true

- name: Klue
careers_url: https://jobs.ashbyhq.com/klue
notes: "Vancouver. Competitive intelligence SaaS."
enabled: true

- name: Glacis AI
careers_url: https://jobs.ashbyhq.com/glacis-ai
notes: "Ho Chi Minh City. AI agents for supply chain and logistics workflows."
enabled: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align Glacis AI with the Canada/Vancouver section.

Line 591 places Glacis AI under Canada / Vancouver tech & AI, but Line 593 says Ho Chi Minh City. Either clarify the Vancouver connection in notes or move this entry out of this section.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@templates/portals.example.yml` around lines 566 - 594, The Glacis AI entry is
under the "Canada / Vancouver tech & AI" block but its notes list "Ho Chi Minh
City"; update the Glacis AI entry to be consistent by either changing the notes
to reflect a Vancouver/Canada presence (e.g., mention Vancouver engineering or
Canadian offices) or move the entire Glacis AI block out of the Canada/Vancouver
section into the appropriate region; ensure you update the unique entry by
editing the "- name: Glacis AI" block and its "notes" (and keep "careers_url"
and "enabled" unchanged unless relocating requires reordering surrounding
entries).

Comment on lines +601 to +606
- name: Semios
careers_url: https://apply.workable.com/semios/
scan_method: websearch
scan_query: 'site:apply.workable.com/semios'
notes: "Vancouver. Agtech and crop intelligence platform."
enabled: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Confirm tracked company scanning only keeps entries with detectable APIs.
# Expected: detectApi supports Greenhouse/Ashby/Lever only, and target filtering removes null _api entries.

rg -n -C3 'function detectApi|scan_method|workable|_api !== null|detectApi\(c\)' scan.mjs

Repository: santifer/career-ops

Length of output: 691


🏁 Script executed:

# Read the full detectApi function and surrounding context
head -n 60 scan.mjs | tail -n 30

Repository: santifer/career-ops

Length of output: 861


🏁 Script executed:

# Check for Workable mentions in scan.mjs and scan-auth.mjs
rg -n 'workable|Workable' scan.mjs scan-auth.mjs

Repository: santifer/career-ops

Length of output: 116


🏁 Script executed:

# See the complete targeted companies processing flow
sed -n '260,280p' scan.mjs

Repository: santifer/career-ops

Length of output: 920


🏁 Script executed:

# Get the complete detectApi function
sed -n '37,70p' scan.mjs

Repository: santifer/career-ops

Length of output: 1004


🏁 Script executed:

# Search the entire codebase for Workable references
rg -i 'workable' --type mjs --type yaml --type md

Repository: santifer/career-ops

Length of output: 90


🏁 Script executed:

# Get more of detectApi to see the return value
sed -n '37,80p' scan.mjs

Repository: santifer/career-ops

Length of output: 1226


🏁 Script executed:

# Search for Workable in all files
rg -i 'workable'

Repository: santifer/career-ops

Length of output: 1493


🏁 Script executed:

# Check if scan_method is used in tracked_companies processing
rg -n 'scan_method' scan.mjs

Repository: santifer/career-ops

Length of output: 45


🏁 Script executed:

# Verify the structure of search_queries and tracked_companies sections
rg -n -A 2 'search_queries:|tracked_companies:' templates/portals.example.yml | head -30

Repository: santifer/career-ops

Length of output: 199


Semios will be silently skipped during scanning.

The scanner processes tracked_companies by calling detectApi() on each company and filtering out entries where _api is null (see scan.mjs lines 272–274). Since detectApi() only supports Greenhouse, Ashby, and Lever, the Workable URL for Semios returns null and gets filtered out. The scan_method: websearch field is not evaluated in this code path—it exists only in the search_queries section.

Move Semios to search_queries, add Workable support to detectApi(), or disable the entry until supported.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@templates/portals.example.yml` around lines 601 - 606, The Semios entry is
silently skipped because detectApi() (in scan.mjs) only recognizes
Greenhouse/Ashby/Lever so a Workable URL yields _api=null; either move the
Semios record from tracked_companies into the search_queries section (so
scan_method: websearch is honored), or disable it by setting enabled: false
until supported, or implement Workable detection in detectApi() (add logic to
recognize workable URLs and return the proper _api value) so Semios (name:
Semios) is processed by the tracked_companies path; update the Semios YAML entry
or modify detectApi() accordingly to resolve the mismatch.

clmoon2 pushed a commit to clmoon2/career-ops that referenced this pull request Apr 22, 2026
New evaluations:
- santifer#393 Fortinet Applied AI Engineer Internship (4.0/5) — Anthropic API + MCP exact stack match; $35-45/hr Santa Clara
- santifer#394 Anthropic Fellows — Reinforcement Learning (3.8/5) — previously miscategorized in v130; same April 26 deadline as santifer#246/santifer#370/santifer#372

Scan stats: 20+ portals checked; 2 genuinely new listings found; Circle listings confirmed closed (410 Gone); Anthropic Greenhouse API success after prior 503 failures.

⚡ URGENT: Anthropic Fellows deadline April 26 (4 days) — santifer#246 AI Security 4.7/5, santifer#370 AI Safety 4.2/5, santifer#372 ML Systems 4.1/5, santifer#394 RL 3.8/5

https://claude.ai/code/session_01GW1GE8tmtmpk4hy8gdG1j1
clmoon2 pushed a commit to clmoon2/career-ops that referenced this pull request Apr 22, 2026
…antifer#394

Scanned 45+ companies across Ashby, Greenhouse, Lever, and GitHub
aggregators. Summer 2026 intern market saturated — all major portals
show dup entries from v7-v151. Created backfilled reports for Fortinet
Applied AI Engineer (santifer#393, 4.0/5) and Anthropic Fellows RL (santifer#394, 3.8/5)
that were evaluated in v149-v150 but missing files.

⚠️ URGENT: Anthropic Fellows deadline April 26 (4 days). Apply to all
4 tracks: AI Security (4.7/5), AI Safety (4.2/5), ML Systems (4.1/5),
Reinforcement Learning (3.8/5).

Recommendation: switch to weekly scans; focus energy on applications.

https://claude.ai/code/session_01BH4vKR2gzFEvaTdygA1gY5
clmoon2 pushed a commit to clmoon2/career-ops that referenced this pull request Apr 22, 2026
…ifer#393 (Fortinet)

- Scanned 70+ companies across Ashby/Greenhouse/Lever/GitHub repos
- Summer 2026 market remains fully saturated (3,447 scan-history entries)
- Recovered missing evaluation report santifer#393: Fortinet Applied AI Engineer
  Internship (4.0/5) — Anthropic API + MCP exact stack match, $35-45/hr
- Added 11 new scan-history entries for v157 coverage
- Updated scan-summary-latest.md with current market status and action items

https://claude.ai/code/session_015eHP5U8cpSpdLq5MR86JFq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant