Repository navigation
v0.9.0 β MyCareersFuture (Singapore), first community board
MyCareersFuture (Singapore) β the first community-contributed board
Singapore's government job portal joins as the ninth board and third platform, contributed by @Aneek1 in the project's first external PR (#18). Nine boards, eight countries.
- ~9,000 active IT postings from MyCareersFuture (Workforce Singapore), via its public JSON API β no auth, no scraping.
- Search-driven, like jobs.ch/jobup.ch: the API caps results at 100 rows per page, so queries pass server-side, newest first, with a small default page budget (
SDJ_MYCAREERSFUTURE_PAGES, default 3). - Salary is published β monthly SGD on the wire, annualized by the adapter β and postings carry a skills array, so
--min-salary,--tech, and--remoteall filter normally (remotemaps from the wire'sTelecommutingarrangement, the only flexible-work value that means where rather than when). --visa,--level,--workloadexclude the board visibly, per the filter-parity contract: no sponsorship field exists (Singapore employers apply for a specific work pass after the fact), the board's own position levels have no honest mapping onto the shared level enum, and no workload percentage exists on the wire.- No native apply β apply instructions live in the posting itself, so
direct-applyrefuses with the real posting URL, same as jobs.ch/jobup.ch. - New
cv/sg.mdCV conventions bundled with the skill, covering the work-pass landscape (EP/S Pass/LOC) and Fair Consideration Framework context.
Post-merge hardening: MyCareersFuture rows now declare language: en (English-only platform by policy β previously --language en would have silently dropped them), and the registry's contract-alias lookup gained one explicit branch per platform so a future platform can't silently inherit another's aliases.
All wire-shape claims re-verified live before merge: limit cap (100; 200 is a 400), zero-based paging, salary/skills presence 100/100 on the newest page, and the posting URLs render.
291 tests, 93% branch coverage, CI on Python 3.9 + 3.14, zero runtime dependencies.
Full Changelog: v0.8.0...v0.9.0