{"id":"@lssm-tech/integration.job-sources","slug":"integration.job-sources","name":"@lssm-tech/integration.job-sources","version":"2.0.5","path":"packages/integrations/job-sources","manifestPath":"packages/integrations/job-sources/package.json","manifestBlobSha":"105ea3dd3cc1eb896bb2098e138fc68bace1b457","layer":"integrations","physicalArea":null,"primaryArea":"intelligence-and-research","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Named France, ATS, and job-board connectors for governed OSINT ingestion.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./catalog","./connector","./incremental","./live-direct-fetch","./live-lever","./live-public-source","./live-public-batch","./live-qualification","./matrix","./matrix-markdown","./normalized-fields","./parsers","./rate-policies","./rate-gate","./routed-acquisition","./web-access-acquisition"],"documentation":[{"title":"Integration Job Sources documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.job-sources","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.job.sources","title":"Integration Job Sources","description":"Named France, ATS, and job-board connectors for governed OSINT ingestion.","status":"active","useCases":["Adopt named france, ats, and job-board connectors for governed osint ingestion"],"aliases":["integration","job","sources"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.job-sources","symbols":[]},{"from":"@lssm-tech/integration.job-sources/catalog","symbols":[]},{"from":"@lssm-tech/integration.job-sources/connector","symbols":[]},{"from":"@lssm-tech/integration.job-sources/incremental","symbols":[]},{"from":"@lssm-tech/integration.job-sources/live-direct-fetch","symbols":[]},{"from":"@lssm-tech/integration.job-sources/live-lever","symbols":[]},{"from":"@lssm-tech/integration.job-sources/live-public-source","symbols":[]},{"from":"@lssm-tech/integration.job-sources/live-public-batch","symbols":[]},{"from":"@lssm-tech/integration.job-sources/live-qualification","symbols":[]},{"from":"@lssm-tech/integration.job-sources/matrix","symbols":[]},{"from":"@lssm-tech/integration.job-sources/matrix-markdown","symbols":[]},{"from":"@lssm-tech/integration.job-sources/normalized-fields","symbols":[]},{"from":"@lssm-tech/integration.job-sources/parsers","symbols":[]},{"from":"@lssm-tech/integration.job-sources/rate-policies","symbols":[]},{"from":"@lssm-tech/integration.job-sources/rate-gate","symbols":[]},{"from":"@lssm-tech/integration.job-sources/routed-acquisition","symbols":[]},{"from":"@lssm-tech/integration.job-sources/web-access-acquisition","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/integration.job-sources package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/catalog","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/connector","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/incremental","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/live-direct-fetch","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/live-lever","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/live-public-source","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/live-public-batch","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/live-qualification","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/matrix","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/matrix-markdown","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/normalized-fields","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/parsers","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/rate-policies","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/rate-gate","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/routed-acquisition","symbols":[]},{"capabilityId":"package.lssm.tech.integration.job.sources","from":"@lssm-tech/integration.job-sources/web-access-acquisition","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint:check":"node ../../../scripts/biome.cjs check .","live:lever":"bun run scripts/live-lever.ts","live:public-batch":"bun run scripts/live-public-batch.ts","live:public-source":"bun run scripts/live-public-source.ts","test":"bun test","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/integration.provider-web-access":"workspace:^","@lssm-tech/lib.contracts-integrations":"workspace:^","@lssm-tech/lib.crypto-utils":"workspace:^","@lssm-tech/lib.job-source-runtime":"workspace:^","@lssm-tech/lib.osint-spec":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./catalog":"./src/catalog.ts","./catalog-ats":"./src/catalog-ats.ts","./catalog-france":"./src/catalog-france.ts","./connector":"./src/connector.ts","./france-html":"./src/france-html.ts","./incremental":"./src/incremental.ts","./live-direct-fetch":"./src/live-direct-fetch.ts","./live-lever":"./src/live-lever.ts","./live-public-batch":"./src/live-public-batch.ts","./live-public-source":"./src/live-public-source.ts","./live-public-source-receipts":"./src/live-public-source-receipts.ts","./live-qualification":"./src/live-qualification.ts","./matrix":"./src/matrix.ts","./matrix-markdown":"./src/matrix-markdown.ts","./normalized-fields":"./src/normalized-fields.ts","./parsers":"./src/parsers.ts","./parsers-specialized":"./src/parsers-specialized.ts","./rate-gate":"./src/rate-gate.ts","./rate-policies":"./src/rate-policies.ts","./revalidation":"./src/revalidation.ts","./routed-acquisition":"./src/routed-acquisition.ts","./routes":"./src/routes.ts","./routes-documented":"./src/routes-documented.ts","./web-access-acquisition":"./src/web-access-acquisition.ts","./web-access-acquisition.fixture":"./src/web-access-acquisition.fixture.ts","./web-access-apify":"./src/web-access-apify.ts","./web-access-result":"./src/web-access-result.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./catalog":{"types":"./dist/catalog.d.ts","browser":"./dist/browser/catalog.js","bun":"./dist/catalog.js","node":"./dist/node/catalog.js","default":"./dist/catalog.js"},"./catalog-ats":{"types":"./dist/catalog-ats.d.ts","browser":"./dist/browser/catalog-ats.js","bun":"./dist/catalog-ats.js","node":"./dist/node/catalog-ats.js","default":"./dist/catalog-ats.js"},"./catalog-france":{"types":"./dist/catalog-france.d.ts","browser":"./dist/browser/catalog-france.js","bun":"./dist/catalog-france.js","node":"./dist/node/catalog-france.js","default":"./dist/catalog-france.js"},"./connector":{"types":"./dist/connector.d.ts","browser":"./dist/browser/connector.js","bun":"./dist/connector.js","node":"./dist/node/connector.js","default":"./dist/connector.js"},"./france-html":{"types":"./dist/france-html.d.ts","browser":"./dist/browser/france-html.js","bun":"./dist/france-html.js","node":"./dist/node/france-html.js","default":"./dist/france-html.js"},"./incremental":{"types":"./dist/incremental.d.ts","browser":"./dist/browser/incremental.js","bun":"./dist/incremental.js","node":"./dist/node/incremental.js","default":"./dist/incremental.js"},"./live-direct-fetch":{"types":"./dist/live-direct-fetch.d.ts","browser":"./dist/browser/live-direct-fetch.js","bun":"./dist/live-direct-fetch.js","node":"./dist/node/live-direct-fetch.js","default":"./dist/live-direct-fetch.js"},"./live-lever":{"types":"./dist/live-lever.d.ts","browser":"./dist/browser/live-lever.js","bun":"./dist/live-lever.js","node":"./dist/node/live-lever.js","default":"./dist/live-lever.js"},"./live-public-batch":{"types":"./dist/live-public-batch.d.ts","browser":"./dist/browser/live-public-batch.js","bun":"./dist/live-public-batch.js","node":"./dist/node/live-public-batch.js","default":"./dist/live-public-batch.js"},"./live-public-source":{"types":"./dist/live-public-source.d.ts","browser":"./dist/browser/live-public-source.js","bun":"./dist/live-public-source.js","node":"./dist/node/live-public-source.js","default":"./dist/live-public-source.js"},"./live-public-source-receipts":{"types":"./dist/live-public-source-receipts.d.ts","browser":"./dist/browser/live-public-source-receipts.js","bun":"./dist/live-public-source-receipts.js","node":"./dist/node/live-public-source-receipts.js","default":"./dist/live-public-source-receipts.js"},"./live-qualification":{"types":"./dist/live-qualification.d.ts","browser":"./dist/browser/live-qualification.js","bun":"./dist/live-qualification.js","node":"./dist/node/live-qualification.js","default":"./dist/live-qualification.js"},"./matrix":{"types":"./dist/matrix.d.ts","browser":"./dist/browser/matrix.js","bun":"./dist/matrix.js","node":"./dist/node/matrix.js","default":"./dist/matrix.js"},"./matrix-markdown":{"types":"./dist/matrix-markdown.d.ts","browser":"./dist/browser/matrix-markdown.js","bun":"./dist/matrix-markdown.js","node":"./dist/node/matrix-markdown.js","default":"./dist/matrix-markdown.js"},"./normalized-fields":{"types":"./dist/normalized-fields.d.ts","browser":"./dist/browser/normalized-fields.js","bun":"./dist/normalized-fields.js","node":"./dist/node/normalized-fields.js","default":"./dist/normalized-fields.js"},"./parsers":{"types":"./dist/parsers.d.ts","browser":"./dist/browser/parsers.js","bun":"./dist/parsers.js","node":"./dist/node/parsers.js","default":"./dist/parsers.js"},"./parsers-specialized":{"types":"./dist/parsers-specialized.d.ts","browser":"./dist/browser/parsers-specialized.js","bun":"./dist/parsers-specialized.js","node":"./dist/node/parsers-specialized.js","default":"./dist/parsers-specialized.js"},"./rate-gate":{"types":"./dist/rate-gate.d.ts","browser":"./dist/browser/rate-gate.js","bun":"./dist/rate-gate.js","node":"./dist/node/rate-gate.js","default":"./dist/rate-gate.js"},"./rate-policies":{"types":"./dist/rate-policies.d.ts","browser":"./dist/browser/rate-policies.js","bun":"./dist/rate-policies.js","node":"./dist/node/rate-policies.js","default":"./dist/rate-policies.js"},"./revalidation":{"types":"./dist/revalidation.d.ts","browser":"./dist/browser/revalidation.js","bun":"./dist/revalidation.js","node":"./dist/node/revalidation.js","default":"./dist/revalidation.js"},"./routed-acquisition":{"types":"./dist/routed-acquisition.d.ts","browser":"./dist/browser/routed-acquisition.js","bun":"./dist/routed-acquisition.js","node":"./dist/node/routed-acquisition.js","default":"./dist/routed-acquisition.js"},"./routes":{"types":"./dist/routes.d.ts","browser":"./dist/browser/routes.js","bun":"./dist/routes.js","node":"./dist/node/routes.js","default":"./dist/routes.js"},"./routes-documented":{"types":"./dist/routes-documented.d.ts","browser":"./dist/browser/routes-documented.js","bun":"./dist/routes-documented.js","node":"./dist/node/routes-documented.js","default":"./dist/routes-documented.js"},"./web-access-acquisition":{"types":"./dist/web-access-acquisition.d.ts","browser":"./dist/browser/web-access-acquisition.js","bun":"./dist/web-access-acquisition.js","node":"./dist/node/web-access-acquisition.js","default":"./dist/web-access-acquisition.js"},"./web-access-acquisition.fixture":{"types":"./dist/web-access-acquisition.fixture.d.ts","browser":"./dist/browser/web-access-acquisition.fixture.js","bun":"./dist/web-access-acquisition.fixture.js","node":"./dist/node/web-access-acquisition.fixture.js","default":"./dist/web-access-acquisition.fixture.js"},"./web-access-apify":{"types":"./dist/web-access-apify.d.ts","browser":"./dist/browser/web-access-apify.js","bun":"./dist/web-access-apify.js","node":"./dist/node/web-access-apify.js","default":"./dist/web-access-apify.js"},"./web-access-result":{"types":"./dist/web-access-result.d.ts","browser":"./dist/browser/web-access-result.js","bun":"./dist/web-access-result.js","node":"./dist/node/web-access-result.js","default":"./dist/web-access-result.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.job-sources","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/job-sources/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./catalog","importPath":"@lssm-tech/integration.job-sources/catalog","target":"./src/catalog.ts","targets":[{"conditions":[],"target":"./src/catalog.ts","sourcePath":"packages/integrations/job-sources/src/catalog.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog.ts","sourceStatus":"verified source file"}]},{"subpath":"./catalog-ats","importPath":"@lssm-tech/integration.job-sources/catalog-ats","target":"./src/catalog-ats.ts","targets":[{"conditions":[],"target":"./src/catalog-ats.ts","sourcePath":"packages/integrations/job-sources/src/catalog-ats.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog-ats.ts","sourceStatus":"verified source file"}]},{"subpath":"./catalog-france","importPath":"@lssm-tech/integration.job-sources/catalog-france","target":"./src/catalog-france.ts","targets":[{"conditions":[],"target":"./src/catalog-france.ts","sourcePath":"packages/integrations/job-sources/src/catalog-france.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog-france.ts","sourceStatus":"verified source file"}]},{"subpath":"./connector","importPath":"@lssm-tech/integration.job-sources/connector","target":"./src/connector.ts","targets":[{"conditions":[],"target":"./src/connector.ts","sourcePath":"packages/integrations/job-sources/src/connector.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/connector.ts","sourceStatus":"verified source file"}]},{"subpath":"./france-html","importPath":"@lssm-tech/integration.job-sources/france-html","target":"./src/france-html.ts","targets":[{"conditions":[],"target":"./src/france-html.ts","sourcePath":"packages/integrations/job-sources/src/france-html.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/france-html.ts","sourceStatus":"verified source file"}]},{"subpath":"./incremental","importPath":"@lssm-tech/integration.job-sources/incremental","target":"./src/incremental.ts","targets":[{"conditions":[],"target":"./src/incremental.ts","sourcePath":"packages/integrations/job-sources/src/incremental.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/incremental.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-direct-fetch","importPath":"@lssm-tech/integration.job-sources/live-direct-fetch","target":"./src/live-direct-fetch.ts","targets":[{"conditions":[],"target":"./src/live-direct-fetch.ts","sourcePath":"packages/integrations/job-sources/src/live-direct-fetch.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-direct-fetch.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-lever","importPath":"@lssm-tech/integration.job-sources/live-lever","target":"./src/live-lever.ts","targets":[{"conditions":[],"target":"./src/live-lever.ts","sourcePath":"packages/integrations/job-sources/src/live-lever.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-lever.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-public-batch","importPath":"@lssm-tech/integration.job-sources/live-public-batch","target":"./src/live-public-batch.ts","targets":[{"conditions":[],"target":"./src/live-public-batch.ts","sourcePath":"packages/integrations/job-sources/src/live-public-batch.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-batch.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-public-source","importPath":"@lssm-tech/integration.job-sources/live-public-source","target":"./src/live-public-source.ts","targets":[{"conditions":[],"target":"./src/live-public-source.ts","sourcePath":"packages/integrations/job-sources/src/live-public-source.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-source.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-public-source-receipts","importPath":"@lssm-tech/integration.job-sources/live-public-source-receipts","target":"./src/live-public-source-receipts.ts","targets":[{"conditions":[],"target":"./src/live-public-source-receipts.ts","sourcePath":"packages/integrations/job-sources/src/live-public-source-receipts.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-source-receipts.ts","sourceStatus":"verified source file"}]},{"subpath":"./live-qualification","importPath":"@lssm-tech/integration.job-sources/live-qualification","target":"./src/live-qualification.ts","targets":[{"conditions":[],"target":"./src/live-qualification.ts","sourcePath":"packages/integrations/job-sources/src/live-qualification.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-qualification.ts","sourceStatus":"verified source file"}]},{"subpath":"./matrix","importPath":"@lssm-tech/integration.job-sources/matrix","target":"./src/matrix.ts","targets":[{"conditions":[],"target":"./src/matrix.ts","sourcePath":"packages/integrations/job-sources/src/matrix.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/matrix.ts","sourceStatus":"verified source file"}]},{"subpath":"./matrix-markdown","importPath":"@lssm-tech/integration.job-sources/matrix-markdown","target":"./src/matrix-markdown.ts","targets":[{"conditions":[],"target":"./src/matrix-markdown.ts","sourcePath":"packages/integrations/job-sources/src/matrix-markdown.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/matrix-markdown.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalized-fields","importPath":"@lssm-tech/integration.job-sources/normalized-fields","target":"./src/normalized-fields.ts","targets":[{"conditions":[],"target":"./src/normalized-fields.ts","sourcePath":"packages/integrations/job-sources/src/normalized-fields.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/normalized-fields.ts","sourceStatus":"verified source file"}]},{"subpath":"./parsers","importPath":"@lssm-tech/integration.job-sources/parsers","target":"./src/parsers.ts","targets":[{"conditions":[],"target":"./src/parsers.ts","sourcePath":"packages/integrations/job-sources/src/parsers.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/parsers.ts","sourceStatus":"verified source file"}]},{"subpath":"./parsers-specialized","importPath":"@lssm-tech/integration.job-sources/parsers-specialized","target":"./src/parsers-specialized.ts","targets":[{"conditions":[],"target":"./src/parsers-specialized.ts","sourcePath":"packages/integrations/job-sources/src/parsers-specialized.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/parsers-specialized.ts","sourceStatus":"verified source file"}]},{"subpath":"./rate-gate","importPath":"@lssm-tech/integration.job-sources/rate-gate","target":"./src/rate-gate.ts","targets":[{"conditions":[],"target":"./src/rate-gate.ts","sourcePath":"packages/integrations/job-sources/src/rate-gate.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/rate-gate.ts","sourceStatus":"verified source file"}]},{"subpath":"./rate-policies","importPath":"@lssm-tech/integration.job-sources/rate-policies","target":"./src/rate-policies.ts","targets":[{"conditions":[],"target":"./src/rate-policies.ts","sourcePath":"packages/integrations/job-sources/src/rate-policies.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/rate-policies.ts","sourceStatus":"verified source file"}]},{"subpath":"./revalidation","importPath":"@lssm-tech/integration.job-sources/revalidation","target":"./src/revalidation.ts","targets":[{"conditions":[],"target":"./src/revalidation.ts","sourcePath":"packages/integrations/job-sources/src/revalidation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/revalidation.ts","sourceStatus":"verified source file"}]},{"subpath":"./routed-acquisition","importPath":"@lssm-tech/integration.job-sources/routed-acquisition","target":"./src/routed-acquisition.ts","targets":[{"conditions":[],"target":"./src/routed-acquisition.ts","sourcePath":"packages/integrations/job-sources/src/routed-acquisition.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routed-acquisition.ts","sourceStatus":"verified source file"}]},{"subpath":"./routes","importPath":"@lssm-tech/integration.job-sources/routes","target":"./src/routes.ts","targets":[{"conditions":[],"target":"./src/routes.ts","sourcePath":"packages/integrations/job-sources/src/routes.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routes.ts","sourceStatus":"verified source file"}]},{"subpath":"./routes-documented","importPath":"@lssm-tech/integration.job-sources/routes-documented","target":"./src/routes-documented.ts","targets":[{"conditions":[],"target":"./src/routes-documented.ts","sourcePath":"packages/integrations/job-sources/src/routes-documented.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routes-documented.ts","sourceStatus":"verified source file"}]},{"subpath":"./web-access-acquisition","importPath":"@lssm-tech/integration.job-sources/web-access-acquisition","target":"./src/web-access-acquisition.ts","targets":[{"conditions":[],"target":"./src/web-access-acquisition.ts","sourcePath":"packages/integrations/job-sources/src/web-access-acquisition.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-acquisition.ts","sourceStatus":"verified source file"}]},{"subpath":"./web-access-acquisition.fixture","importPath":"@lssm-tech/integration.job-sources/web-access-acquisition.fixture","target":"./src/web-access-acquisition.fixture.ts","targets":[{"conditions":[],"target":"./src/web-access-acquisition.fixture.ts","sourcePath":"packages/integrations/job-sources/src/web-access-acquisition.fixture.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-acquisition.fixture.ts","sourceStatus":"verified source file"}]},{"subpath":"./web-access-apify","importPath":"@lssm-tech/integration.job-sources/web-access-apify","target":"./src/web-access-apify.ts","targets":[{"conditions":[],"target":"./src/web-access-apify.ts","sourcePath":"packages/integrations/job-sources/src/web-access-apify.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-apify.ts","sourceStatus":"verified source file"}]},{"subpath":"./web-access-result","importPath":"@lssm-tech/integration.job-sources/web-access-result","target":"./src/web-access-result.ts","targets":[{"conditions":[],"target":"./src/web-access-result.ts","sourcePath":"packages/integrations/job-sources/src/web-access-result.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-result.ts","sourceStatus":"verified source file"}]}],"entryCount":28,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Integration Job Sources documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.job-sources","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.job-sources.txt"},"readme":{"status":"available","body":"# `@lssm-tech/integration.job-sources`\n\nGoverned connectors for La Bonne Alternance, French apprenticeship sites, Ashby, Flatchr, Greenhouse, iCIMS, Jobaffinity, Lever, Recruitee, SmartRecruiters, Taleez, Teamtailor, WeRecruit, Workable, Workday, and Indeed France.\n\nThe package exposes an executable capability matrix. `supported` means the deterministic connector path exists; live qualification remains separate. La Bonne Alternance commercial use and Indeed France are permission-blocked by default.\n\n## Direct-first acquisition routing\n\nConnectors may resolve an immutable `JobAcquisitionPlanV1` for each exact\ninstallation request. `createRoutedJobSourceAcquisitionV1` always executes its\npriority-zero direct-fetch route first. It escalates only explicit\n`retryable_transport` or `render_required` failures to a later source-qualified\nconnection. Rate limits, authentication, policy, budget, source restrictions,\ncancellation, unknown failures, and ambiguous effects stop routing. Provider\nrotation is therefore never an access-control or rate-limit bypass.\n\n`createWebAccessJobSourceRouteExecutorV1` binds those routes to the existing\nBright Data, Browserbase, Massive, Firecrawl, Oxylabs, Reworkd, and Apify\nadapters. Reworkd requires an exact qualified scraping-group dataset profile.\nApify runs one qualified Actor, polls the same run within fixed bounds, and\nreads its resulting dataset without replaying the Actor. Authority resolution\nmust return the plan's exact policy and budget references before an adapter is\ncalled. Every attempt, provider-reported request/cost usage, and selected route receives a deterministic replay\nreceipt. An indirect provider `404` or `410` can never become job-closure\nevidence; closure remains bound to a direct detail recheck. The Web Access\nbridge also requires an injected acquisition rate gate, and the exact source\nrate policy, installation revision, and opaque credential reference participate\nin the request digest.\n\n`InMemoryJobSourceAcquisitionRateGateV1` is the conservative reference for a\nsingle worker process. It keys spacing and concurrency by installation or egress\nprofile exactly as the source policy requires, honors cancellation, and returns\na terminal `rate_limited` classification rather than rotating providers. It is\nnot a substitute for a shared durable gate when multiple worker replicas serve\nthe same source or egress identity.\n\n`jobSourceCapabilityMatrixV1` is the canonical 17-source × 7-capability truth table and never promotes deterministic fixtures into live receipts. Documented API adapters, Lever cursor ingestion, generic structured-page parsing, tenant-specific browser flows, and permission-blocked sources are reported separately; a generic parser fixture does not qualify a source-specific connector.\n\n`renderJobSourceCapabilityMatrixMarkdownV1` feeds the repository-level generated\njob intelligence matrix; `bun run osint:job-matrices:check` prevents drift.\n\n`jobSourceLiveQualificationPlanV1` and\n`verifyJobSourceLiveQualificationReceiptsV1` provide the separate exact-SHA\nlive evidence plane. Partial receipt sets project passed, failed, and blocked\ncells without mutating deterministic truth or promoting permission-blocked\nsources. `bun run live:lever` exercises the public Lever installation through\nthe hardened direct-fetch adapter and production connector. It requires an\nexplicit live confirmation, complete scope, release SHA, policy authorization\nand expiry, site, and region. Public discovery, listing, detail, cursor,\nrevalidation, and application discovery can pass; closure remains blocked until\nan observed live transition supplies real closure evidence. The command also\nrequires the claimed release SHA to equal the current `git rev-parse HEAD` so a\nsyntactically valid but unrelated digest cannot become qualification evidence.\n\n`bun run live:public-source` exposes the same ceremony for any named connector:\nan exact source key and canonical installation URL select the existing\nconnector, while the common runner derives discovery, listing, detail,\nincremental, revalidation, closure, and application receipts from the\nexecutable matrix. Missing credentials, cursors, permission, application URLs,\nor observed closure transitions stay explicit blockers. SmartRecruiters detail\nnormalization accepts the vendor's live `postingUrl` and `applyUrl` shape as\nwell as list-response `ref` links.\n\n`bun run live:public-batch` consumes a strict, secret-free V1 manifest and\nproduces one deduplicated receipt set and summary. The repository qualification\nmanifest lives at\n`docs/evidence/osint/job-source-public-live-manifest-v1.json`. Unknown fields,\nduplicate sources, credential-bearing URLs, permission-blocked sources, or\nunpaired closure evidence are rejected before network execution. Every live\ncommand also requires a clean worktree in addition to exact Git HEAD equality.\n\nAn optional live closure probe requires both a bounded external listing ID and\nan immutable prior-publication evidence reference. It can pass only when the\nsame source returns a current `404` or `410` with closure evidence. An absent\nprior reference, ambiguous transport outcome, still-open listing, or unrelated\nstatus cannot promote closure.\n\nThe Flatchr adapter follows the documented public\n[`/company/{slug}.json`](https://developers.flatchr.io/en/docs/QuickStart/Annonces/Recuperer_les_annonces_actives/)\nfeed and preserves nested vacancy identifiers and application URLs. The Workable\nadapter uses the vendor-documented public account endpoint\n[`/api/accounts/{subdomain}?details=true`](https://help.workable.com/hc/en-us/articles/4903195036183-Troubleshooting-API-issues).\nThe documented Flatchr detail endpoint is used for direct revalidation and\nexplicit 404/410 closure evidence. Flatchr cursor paths remain gated because\nthe public feed exposes no qualified cursor or change token.\n\nWhen Flatchr omits the optional `apply_url`, the connector derives the\nsource-owned careers detail URL from the qualified vacancy ID. This preserves a\npublic application entry without inventing an external destination or relaxing\nthe canonical host boundary.\n\nAuthenticated [Taleez](https://api.taleez.com/) and\n[Teamtailor](https://docs.teamtailor.com/) listing/detail adapters bind bounded\npagination, source-specific payloads, and opaque credential references. Their\ndeterministic fixtures do not replace a credentialed live receipt. The managed\nworker requires an explicitly injected credential-aware acquisition adapter and\nnever copies the credential reference into a generic provider payload.\n\n[JobAffinity](https://api.jobaffinity.com/) uses the same credential boundary\nfor its Basic-auth REST feed. Pagination accepts only the API-provided,\nsame-origin `/restapi/v1/job?pagecursor=...` link; arbitrary cursor URLs and\ncross-origin resource links are rejected.\n\nTaleez `hasMore`/page state, Teamtailor `page[after]`, Lever `skip`,\nSmartRecruiters offset/limit totals, JobAffinity `_next`, and credentialed\nWorkable `paging.next` are extracted into durable checkpoints. Unverified\ncursor paths remain gated. Flatchr and Workable bind source-specific detail\nURLs, direct revalidation, explicit closure evidence, and response-schema drift\ncomparison. Workable's public account feed remains the anonymous default; its\nSPI pagination and detail routes require an opaque credential reference.\nJobAffinity, Taleez, and Teamtailor application discovery accepts only\nsource-provided, canonical-host application URLs.\n\nCredential-free Workable detail revalidation uses the vendor-advertised\n`/jobs/view/{shortcode}.md` representation linked from each public job page.\nThe bounded Markdown parser accepts only the H1 title and source-owned Apply\nlink; credentialed installations continue to use SPI detail routes.\n\nEvery source has an executable conservative rate policy forwarded to the\nacquisition port. Policies bound concurrency, request spacing, retryable\nstatuses, and `Retry-After` handling. The JobAffinity policy preserves its\ndocumented 45 requests/minute per-IP ceiling and Workable preserves 10 requests\nper 10 seconds.\n\nThe France-first direct HTML wave includes public ISCOD and CmonAlternance\nlisting cards plus direct detail rechecks. Both parsers bind only canonical\nsource hosts and qualified detail paths, decode stable public fields, and reject\ncross-origin links. Incremental ingestion remains gated because neither public\npage currently exposes a qualified cursor or change token.\n\nISCOD discovery tracks the current\n`/offres-emploi-en-alternance/` listing path. A failed live discovery request\nmarks every dependent supported capability failed while retaining closure as a\nseparate transition blocker; downstream cells are never left looking merely\nunevaluated after their prerequisite failed.\n\nCmonAlternance discovery uses the server-rendered `/public/` latest-offers\nsurface. The JavaScript `/public/OFFRES` search page is Algolia-backed and does\nnot fabricate listing cards during direct HTML acquisition; full-index access\nrequires a separately qualified search adapter.\n\nDocumented public-board adapters normalize vendor-specific listing shapes for\n[Ashby](https://developers.ashbyhq.com/docs/public-job-posting-api),\n[Greenhouse](https://developers.greenhouse.io/job-board),\n[Lever](https://github.com/lever/postings-api),\n[Recruitee](https://docs.recruitee.com/reference/offers), and SmartRecruiters.\nLever global/EU routing and numeric pagination cursors are explicit. Other ATS\nconnectors use qualified structured-page/JSON-LD acquisition and remain subject\nto their matrix and live-receipt state.\n\nGreenhouse accepts both the legacy `boards.greenhouse.io` and current\n`job-boards.greenhouse.io` public job hosts while keeping acquisition on\n`boards-api.greenhouse.io`. The public `absolute_url` is the qualified hosted\napplication entry and never widens the accepted host set.\n\nRecruitee list responses expose `offers[]`, while current detail responses wrap\nthe same public job under `offer`. The connector flattens that source-specific\nenvelope before normalization and preserves `careers_apply_url` as the hosted\napplication entry.\n\n[iCIMS](https://community.icims.com/articles/HowTo/Candidate-Guide-to-the-iCIMS-Talent-Platform)\nand [Workday](https://developer.workday.com/rest-api-explorer) use tenant-bound\npublic career pages with source-specific structured-data fixtures, safe\nsame-origin detail routing, and browser fallback. WeRecruit uses the same\npublic-page path; its [customer API](https://werecruit.com/logiciel-de-recrutement/api-we-recruit)\nremains account-gated because WeRecruit supplies API documentation only on\nrequest. None of these three sources advertises a qualified public change token\nhere, so incremental ingestion remains explicitly gated while successful scans\nand direct detail rechecks qualify revalidation and closure evidence.\n\nCurrent WeRecruit career pages expose a source-owned `window.allOffers` JSON\npayload for listings and HTML-encoded `application/ld+json` on detail pages.\nThe direct parser consumes those public artifacts first; browser fallback\nremains available when an installation omits them.\n","sourcePath":"packages/integrations/job-sources/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/README.md","blobSha":"080ed965a439c07549124b23609c0db85bdba30e","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"intelligence-and-research","areaTitle":"Intelligence, research and applications","displayName":"integration.job-sources","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.job-sources/","contextUrl":"/docs/packages/integration.job-sources.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}