feat: add JS Remotely (javascript.jobs) extractor
CI / skip-ci-check (pull_request) Successful in 36s
CI / docker-ci (pull_request) Successful in 38s
CI / unit-tests (pull_request) Failing after 40s
CI / secret-scan (pull_request) Successful in 39s

Adds a pipeline extractor for javascript.jobs (the board now promoted
under the jsremotely.com alias, which 301s straight here). No public
API/RSS, so it scrapes the /remote listing (server-side keyword+page
filtering) and enriches each match from the job detail page's
JobPosting schema.org block, which is emitted as near-JSON (unescaped
newlines, an occasional missing comma) and is parsed with targeted
regexes instead of JSON.parse. Also guards against the source's own
baseSalary bug (0 placeholders, and at least one posting with
minValue == maxValue) by keeping the listing-card salary text as a
trustworthy fallback.

Wires the new "javascriptjobs" source through the shared extractor
catalog, settings registry/types/factories, the max-coverage
automatic-run preset, demo seed data, and the smoke-test target.
This commit is contained in:
2026-08-10 18:07:46 -04:00
parent cc2eb1e719
commit 8828363bba
11 changed files with 434 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"target": "ES2022",
"outDir": "dist",
"strict": true,
"noUnusedLocals": false,
"lib": ["ES2022", "DOM"],
"types": ["node"],
"baseUrl": ".",
"paths": {
"@shared/*": ["../../shared/src/*"]
}
},
"include": ["./manifest.ts", "./src/**/*"]
}