# @lssm-tech/integration.job-sources

Named France, ATS, and job-board connectors for governed OSINT ingestion.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.0.5`
- Package path: `packages/integrations/job-sources`
- Manifest path: `packages/integrations/job-sources/package.json`
- Manifest Git blob: `105ea3dd3cc1eb896bb2098e138fc68bace1b457`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/integration.job-sources](https://lssm.co/docs/packages/integration.job-sources/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.job-sources.txt)

## Package metadata

```json
{
  "layer": "integrations",
  "physicalArea": null,
  "primaryArea": "intelligence-and-research",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "integrations",
    "catalogKind": "integration",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: not declared; publication is not verified.

Primary area: [Intelligence, research and applications](https://lssm.co/docs/areas/intelligence-and-research/)

## Package guide

```json
{
  "status": "available",
  "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"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# `@lssm-tech/integration.job-sources`

Governed connectors for La Bonne Alternance, French apprenticeship sites, Ashby, Flatchr, Greenhouse, iCIMS, Jobaffinity, Lever, Recruitee, SmartRecruiters, Taleez, Teamtailor, WeRecruit, Workable, Workday, and Indeed France.

The 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.

## Direct-first acquisition routing

Connectors may resolve an immutable `JobAcquisitionPlanV1` for each exact
installation request. `createRoutedJobSourceAcquisitionV1` always executes its
priority-zero direct-fetch route first. It escalates only explicit
`retryable_transport` or `render_required` failures to a later source-qualified
connection. Rate limits, authentication, policy, budget, source restrictions,
cancellation, unknown failures, and ambiguous effects stop routing. Provider
rotation is therefore never an access-control or rate-limit bypass.

`createWebAccessJobSourceRouteExecutorV1` binds those routes to the existing
Bright Data, Browserbase, Massive, Firecrawl, Oxylabs, Reworkd, and Apify
adapters. Reworkd requires an exact qualified scraping-group dataset profile.
Apify runs one qualified Actor, polls the same run within fixed bounds, and
reads its resulting dataset without replaying the Actor. Authority resolution
must return the plan's exact policy and budget references before an adapter is
called. Every attempt, provider-reported request/cost usage, and selected route receives a deterministic replay
receipt. An indirect provider `404` or `410` can never become job-closure
evidence; closure remains bound to a direct detail recheck. The Web Access
bridge also requires an injected acquisition rate gate, and the exact source
rate policy, installation revision, and opaque credential reference participate
in the request digest.

`InMemoryJobSourceAcquisitionRateGateV1` is the conservative reference for a
single worker process. It keys spacing and concurrency by installation or egress
profile exactly as the source policy requires, honors cancellation, and returns
a terminal `rate_limited` classification rather than rotating providers. It is
not a substitute for a shared durable gate when multiple worker replicas serve
the same source or egress identity.

`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.

`renderJobSourceCapabilityMatrixMarkdownV1` feeds the repository-level generated
job intelligence matrix; `bun run osint:job-matrices:check` prevents drift.

`jobSourceLiveQualificationPlanV1` and
`verifyJobSourceLiveQualificationReceiptsV1` provide the separate exact-SHA
live evidence plane. Partial receipt sets project passed, failed, and blocked
cells without mutating deterministic truth or promoting permission-blocked
sources. `bun run live:lever` exercises the public Lever installation through
the hardened direct-fetch adapter and production connector. It requires an
explicit live confirmation, complete scope, release SHA, policy authorization
and expiry, site, and region. Public discovery, listing, detail, cursor,
revalidation, and application discovery can pass; closure remains blocked until
an observed live transition supplies real closure evidence. The command also
requires the claimed release SHA to equal the current `git rev-parse HEAD` so a
syntactically valid but unrelated digest cannot become qualification evidence.

`bun run live:public-source` exposes the same ceremony for any named connector:
an exact source key and canonical installation URL select the existing
connector, while the common runner derives discovery, listing, detail,
incremental, revalidation, closure, and application receipts from the
executable matrix. Missing credentials, cursors, permission, application URLs,
or observed closure transitions stay explicit blockers. SmartRecruiters detail
normalization accepts the vendor's live `postingUrl` and `applyUrl` shape as
well as list-response `ref` links.

`bun run live:public-batch` consumes a strict, secret-free V1 manifest and
produces one deduplicated receipt set and summary. The repository qualification
manifest lives at
`docs/evidence/osint/job-source-public-live-manifest-v1.json`. Unknown fields,
duplicate sources, credential-bearing URLs, permission-blocked sources, or
unpaired closure evidence are rejected before network execution. Every live
command also requires a clean worktree in addition to exact Git HEAD equality.

An optional live closure probe requires both a bounded external listing ID and
an immutable prior-publication evidence reference. It can pass only when the
same source returns a current `404` or `410` with closure evidence. An absent
prior reference, ambiguous transport outcome, still-open listing, or unrelated
status cannot promote closure.

The Flatchr adapter follows the documented public
[`/company/{slug}.json`](https://developers.flatchr.io/en/docs/QuickStart/Annonces/Recuperer_les_annonces_actives/)
feed and preserves nested vacancy identifiers and application URLs. The Workable
adapter uses the vendor-documented public account endpoint
[`/api/accounts/{subdomain}?details=true`](https://help.workable.com/hc/en-us/articles/4903195036183-Troubleshooting-API-issues).
The documented Flatchr detail endpoint is used for direct revalidation and
explicit 404/410 closure evidence. Flatchr cursor paths remain gated because
the public feed exposes no qualified cursor or change token.

When Flatchr omits the optional `apply_url`, the connector derives the
source-owned careers detail URL from the qualified vacancy ID. This preserves a
public application entry without inventing an external destination or relaxing
the canonical host boundary.

Authenticated [Taleez](https://api.taleez.com/) and
[Teamtailor](https://docs.teamtailor.com/) listing/detail adapters bind bounded
pagination, source-specific payloads, and opaque credential references. Their
deterministic fixtures do not replace a credentialed live receipt. The managed
worker requires an explicitly injected credential-aware acquisition adapter and
never copies the credential reference into a generic provider payload.

[JobAffinity](https://api.jobaffinity.com/) uses the same credential boundary
for its Basic-auth REST feed. Pagination accepts only the API-provided,
same-origin `/restapi/v1/job?pagecursor=...` link; arbitrary cursor URLs and
cross-origin resource links are rejected.

Taleez `hasMore`/page state, Teamtailor `page[after]`, Lever `skip`,
SmartRecruiters offset/limit totals, JobAffinity `_next`, and credentialed
Workable `paging.next` are extracted into durable checkpoints. Unverified
cursor paths remain gated. Flatchr and Workable bind source-specific detail
URLs, direct revalidation, explicit closure evidence, and response-schema drift
comparison. Workable's public account feed remains the anonymous default; its
SPI pagination and detail routes require an opaque credential reference.
JobAffinity, Taleez, and Teamtailor application discovery accepts only
source-provided, canonical-host application URLs.

Credential-free Workable detail revalidation uses the vendor-advertised
`/jobs/view/{shortcode}.md` representation linked from each public job page.
The bounded Markdown parser accepts only the H1 title and source-owned Apply
link; credentialed installations continue to use SPI detail routes.

Every source has an executable conservative rate policy forwarded to the
acquisition port. Policies bound concurrency, request spacing, retryable
statuses, and `Retry-After` handling. The JobAffinity policy preserves its
documented 45 requests/minute per-IP ceiling and Workable preserves 10 requests
per 10 seconds.

The France-first direct HTML wave includes public ISCOD and CmonAlternance
listing cards plus direct detail rechecks. Both parsers bind only canonical
source hosts and qualified detail paths, decode stable public fields, and reject
cross-origin links. Incremental ingestion remains gated because neither public
page currently exposes a qualified cursor or change token.

ISCOD discovery tracks the current
`/offres-emploi-en-alternance/` listing path. A failed live discovery request
marks every dependent supported capability failed while retaining closure as a
separate transition blocker; downstream cells are never left looking merely
unevaluated after their prerequisite failed.

CmonAlternance discovery uses the server-rendered `/public/` latest-offers
surface. The JavaScript `/public/OFFRES` search page is Algolia-backed and does
not fabricate listing cards during direct HTML acquisition; full-index access
requires a separately qualified search adapter.

Documented public-board adapters normalize vendor-specific listing shapes for
[Ashby](https://developers.ashbyhq.com/docs/public-job-posting-api),
[Greenhouse](https://developers.greenhouse.io/job-board),
[Lever](https://github.com/lever/postings-api),
[Recruitee](https://docs.recruitee.com/reference/offers), and SmartRecruiters.
Lever global/EU routing and numeric pagination cursors are explicit. Other ATS
connectors use qualified structured-page/JSON-LD acquisition and remain subject
to their matrix and live-receipt state.

Greenhouse accepts both the legacy `boards.greenhouse.io` and current
`job-boards.greenhouse.io` public job hosts while keeping acquisition on
`boards-api.greenhouse.io`. The public `absolute_url` is the qualified hosted
application entry and never widens the accepted host set.

Recruitee list responses expose `offers[]`, while current detail responses wrap
the same public job under `offer`. The connector flattens that source-specific
envelope before normalization and preserves `careers_apply_url` as the hosted
application entry.

[iCIMS](https://community.icims.com/articles/HowTo/Candidate-Guide-to-the-iCIMS-Talent-Platform)
and [Workday](https://developer.workday.com/rest-api-explorer) use tenant-bound
public career pages with source-specific structured-data fixtures, safe
same-origin detail routing, and browser fallback. WeRecruit uses the same
public-page path; its [customer API](https://werecruit.com/logiciel-de-recrutement/api-we-recruit)
remains account-gated because WeRecruit supplies API documentation only on
request. None of these three sources advertises a qualified public change token
here, so incremental ingestion remains explicitly gated while successful scans
and direct detail rechecks qualify revalidation and closure evidence.

Current WeRecruit career pages expose a source-owned `window.allOffers` JSON
payload for listings and HTML-encoded `application/ld+json` on detail pages.
The direct parser consumes those public artifacts first; browser fallback
remains available when an installation omits them.


## Declared capabilities

### Integration Job Sources

Capability ID: `package.lssm.tech.integration.job.sources`

Named France, ATS, and job-board connectors for governed OSINT ingestion.

Use cases:

- Adopt named france, ats, and job-board connectors for governed osint ingestion

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "The @lssm-tech/integration.job-sources package constraints do not match the target runtime or platform."
  ],
  "requires": [
    "TypeScript"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "integration",
    "job",
    "sources"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "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": []
  }
]
```

## Catalogue metadata

```json
{
  "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"
  ],
  "examples": [],
  "replacements": []
}
```

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[
  {
    "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": []
  }
]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/integration.job-sources` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/index.ts); verified source file.

- `@lssm-tech/integration.job-sources/catalog` — subpath `./catalog`
  - `unconditional`: `./src/catalog.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog.ts); verified source file.

- `@lssm-tech/integration.job-sources/catalog-ats` — subpath `./catalog-ats`
  - `unconditional`: `./src/catalog-ats.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog-ats.ts); verified source file.

- `@lssm-tech/integration.job-sources/catalog-france` — subpath `./catalog-france`
  - `unconditional`: `./src/catalog-france.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/catalog-france.ts); verified source file.

- `@lssm-tech/integration.job-sources/connector` — subpath `./connector`
  - `unconditional`: `./src/connector.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/connector.ts); verified source file.

- `@lssm-tech/integration.job-sources/france-html` — subpath `./france-html`
  - `unconditional`: `./src/france-html.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/france-html.ts); verified source file.

- `@lssm-tech/integration.job-sources/incremental` — subpath `./incremental`
  - `unconditional`: `./src/incremental.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/incremental.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-direct-fetch` — subpath `./live-direct-fetch`
  - `unconditional`: `./src/live-direct-fetch.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-direct-fetch.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-lever` — subpath `./live-lever`
  - `unconditional`: `./src/live-lever.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-lever.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-public-batch` — subpath `./live-public-batch`
  - `unconditional`: `./src/live-public-batch.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-batch.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-public-source` — subpath `./live-public-source`
  - `unconditional`: `./src/live-public-source.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-source.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-public-source-receipts` — subpath `./live-public-source-receipts`
  - `unconditional`: `./src/live-public-source-receipts.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-public-source-receipts.ts); verified source file.

- `@lssm-tech/integration.job-sources/live-qualification` — subpath `./live-qualification`
  - `unconditional`: `./src/live-qualification.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/live-qualification.ts); verified source file.

- `@lssm-tech/integration.job-sources/matrix` — subpath `./matrix`
  - `unconditional`: `./src/matrix.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/matrix.ts); verified source file.

- `@lssm-tech/integration.job-sources/matrix-markdown` — subpath `./matrix-markdown`
  - `unconditional`: `./src/matrix-markdown.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/matrix-markdown.ts); verified source file.

- `@lssm-tech/integration.job-sources/normalized-fields` — subpath `./normalized-fields`
  - `unconditional`: `./src/normalized-fields.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/normalized-fields.ts); verified source file.

- `@lssm-tech/integration.job-sources/parsers` — subpath `./parsers`
  - `unconditional`: `./src/parsers.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/parsers.ts); verified source file.

- `@lssm-tech/integration.job-sources/parsers-specialized` — subpath `./parsers-specialized`
  - `unconditional`: `./src/parsers-specialized.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/parsers-specialized.ts); verified source file.

- `@lssm-tech/integration.job-sources/rate-gate` — subpath `./rate-gate`
  - `unconditional`: `./src/rate-gate.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/rate-gate.ts); verified source file.

- `@lssm-tech/integration.job-sources/rate-policies` — subpath `./rate-policies`
  - `unconditional`: `./src/rate-policies.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/rate-policies.ts); verified source file.

- `@lssm-tech/integration.job-sources/revalidation` — subpath `./revalidation`
  - `unconditional`: `./src/revalidation.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/revalidation.ts); verified source file.

- `@lssm-tech/integration.job-sources/routed-acquisition` — subpath `./routed-acquisition`
  - `unconditional`: `./src/routed-acquisition.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routed-acquisition.ts); verified source file.

- `@lssm-tech/integration.job-sources/routes` — subpath `./routes`
  - `unconditional`: `./src/routes.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routes.ts); verified source file.

- `@lssm-tech/integration.job-sources/routes-documented` — subpath `./routes-documented`
  - `unconditional`: `./src/routes-documented.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/routes-documented.ts); verified source file.

- `@lssm-tech/integration.job-sources/web-access-acquisition` — subpath `./web-access-acquisition`
  - `unconditional`: `./src/web-access-acquisition.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-acquisition.ts); verified source file.

- `@lssm-tech/integration.job-sources/web-access-acquisition.fixture` — subpath `./web-access-acquisition.fixture`
  - `unconditional`: `./src/web-access-acquisition.fixture.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-acquisition.fixture.ts); verified source file.

- `@lssm-tech/integration.job-sources/web-access-apify` — subpath `./web-access-apify`
  - `unconditional`: `./src/web-access-apify.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-apify.ts); verified source file.

- `@lssm-tech/integration.job-sources/web-access-result` — subpath `./web-access-result`
  - `unconditional`: `./src/web-access-result.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/job-sources/src/web-access-result.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "dist",
    "README.md"
  ],
  "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"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/integration.provider-web-access](https://lssm.co/docs/packages/integration.provider-web-access/): `workspace:^`
- [@lssm-tech/lib.contracts-integrations](https://lssm.co/docs/packages/lib.contracts-integrations/): `workspace:^`
- [@lssm-tech/lib.crypto-utils](https://lssm.co/docs/packages/lib.crypto-utils/): `workspace:^`
- [@lssm-tech/lib.job-source-runtime](https://lssm.co/docs/packages/lib.job-source-runtime/): `workspace:^`
- [@lssm-tech/lib.osint-spec](https://lssm.co/docs/packages/lib.osint-spec/): `workspace:^`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/tool.bun](https://lssm.co/docs/packages/tool.bun/): `workspace:*`
- [@lssm-tech/tool.typescript](https://lssm.co/docs/packages/tool.typescript/): `workspace:*`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "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"
}
```

## Declared documentation links

- [Integration Job Sources documentation](https://www.npmjs.com/package/%40lssm-tech%2Fintegration.job-sources) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Fintegration.job-sources",
  "kind": "readme"
}
```

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/integration.job-sources.txt",
  "route": "/llms/integration.job-sources",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.job-sources.txt",
  "blobSha": "080ed965a439c07549124b23609c0db85bdba30e",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
