OpenOpps

OpenOpps docs / Reference

Providers

Source catalogs, provider support levels, route probing, and health checks.

CLI-onlylocal ledgerproviders

OpenOpps v0.1 separates aggregate source adapters from job-capable provider adapters. Source adapters discover company boards; provider adapters detect or fetch postings from public board providers through the CLI and local SQLite state.

Python plugins can contribute additional source adapters and job providers through the openopps.plugins entry point group. Plugin capabilities appear in admin providers list and registry surfaces when loaded successfully, and load failures, disabled entries, allow-list filters, and conflicts are visible in plugins list. Installed plugins are discovered by default but only executed when their entry-point names are listed in OPENOPPS_PLUGIN_ALLOWED, unless OPENOPPS_PLUGIN_AUTOLOAD=true is set.

Use examples/plugins/minimal-openopps-plugin/ as the starting template for a packaged plugin with a pyproject.toml entry point.

Source Adapter Inventory

Generated adapter inventory

Source adapters

14 adapter ids

Source adapters discover company boards and preserve provider hints. They are detection surfaces; job fetching happens later through job-capable provider routes.

OpenOpps job provider support levels and public route behavior.
LabelIDSupportRoute rolePublic behavior
Ashby SourceashbydetectcatalogAggregate Ashby source adapter that exposes a public Ashby job board as one board route.
CNCF Landscapecncf_landscapedetectcatalogCNCF landscape source adapter that discovers cloud-native projects and vendors from public GitHub data.
ConsiderconsiderdetectcatalogAggregate Consider source adapter that discovers company boards and provider hints.
Consider/a16zconsider_a16zdetectcatalogAggregate a16z source adapter that discovers boards and provider hints.
GetrogetrodetectcatalogAggregate Getro source adapter that discovers company boards.
Public Index CSVpublic_index_csvdetectcatalogCSV source adapter for public-company index membership seeds.
Public Pagepublic_pagedetectcatalogBest-effort source adapter for public pages without a dedicated structured adapter.
Ranking CSVranking_csvdetectcatalogCSV ranking source adapter for employer and company lists.
SEC Company Tickerssec_company_tickersdetectcatalogOfficial SEC public-company ticker source that discovers listed companies as detect-only boards.
South Park CommonssouthparkcommonsdetectcatalogAggregate South Park Commons source adapter that discovers company boards and provider hints.
Venture Capital CareersventurecapitalcareersdetectcatalogAggregate Venture Capital Careers adapter that discovers public firm profiles.
VentureLoopventureloopdetectcatalogMetadata-only VentureLoop source adapter.
Workable Sourceworkable_sourcedetectcatalogAggregate Workable source adapter that exposes a public Workable job board as one board route.
Y CombinatorycombinatordetectcatalogAggregate YC source adapter that discovers company boards from Algolia.

Source Catalog Sample

Packaged source catalog

First 12 source records

12 of 2115 records

The generated table below is a sample of the packaged catalog. Use uv run openopps sources list --json for the full local, machine-readable inventory.

Source keyAdapterTypeAccessCatalog URL
01aconsidersourcepublichttps://jobs.01a.com/companies
1011vcgetrosourcepublichttps://jobs.1011vc.com/companies
1011vcportfoliopublic_pageventure_firmpublic_page_htmlhttps://www.1011vc.com/portfolio
13bookscapitalgetrosourcepublichttps://careers.13bookscapital.com/companies
1440foodsconsidersourcepublichttps://consider.com/boards/co/1440-foods
1517fundconsidersourcepublichttps://consider.com/boards/vc/1517-fund/companies
1835iconsidersourcepublichttps://consider.com/boards/vc/1835i/companies
1871workable_sourcejob_boardpublic_json_apihttps://apply.workable.com/1871/
1inchnetworkconsidersourcepublichttps://consider.com/boards/co/1inch-network
1kxpublic_pageventure_firmpublic_page_htmlhttps://1kx.network/portfolio
1xconsidersourcepublichttps://consider.com/boards/co/1x
2048vcpublic_pageventure_firmpublic_page_htmlhttps://www.2048.vc/companies

Non-VC Source Families

OpenOpps packages a small set of low-friction non-VC source families as source adapters, not job providers. These sources add company candidates and provenance metadata; they only become job-yielding after route detection, route probing, and provider job syncs find public job-capable routes.

Source familyPackaged keysNotes
Official public-company indexsec-company-tickersIncluded listed-company backbone; SEC fair-access controls can reject generic scheduled sync environments.
Public index CSVsp500, nasdaq100Included seed data for index membership; nasdaq100 remains manual until a reviewed CSV is configured.
Employer ranking CSVfortune500Included ranking seed data; supports embedded user-supplied CSV rows for reviewed local refreshes.
Ecosystem landscapecncf-landscapeReads CNCF landscape.yml public fields and intentionally excludes logos and Crunchbase-derived fields.

Each packaged source includes taxonomy metadata such as providerType, coverageMode, accessType, licenseStatus, refreshCadence, and sourceAttribution in the source raw_metadata payload.

Support Levels

LevelMeaning
detectOpenOpps can preserve provider metadata and route hints but does not reliably fetch jobs.
jobsOpenOpps can fetch public postings for the provider.
unsupportedThe provider is known only as raw upstream metadata.

Job-Capable Providers

Generated provider registry

Job-capable providers

9 job-ready adapters

OpenOpps job provider support levels and public route behavior.
LabelIDSupportRoute rolePublic behavior
AshbyashbyhqjobsroutesPublic Ashby job posting API.
BambooHRbamboohrjobsroutesPublic BambooHR careers board JSON endpoints.
GreenhousegreenhousejobsroutesPublic Greenhouse job board API.
LeverleverjobsroutesPublic Lever postings JSON API.
RipplingripplingjobsroutesPublic Rippling ATS board JSON endpoints.
TeamtailorteamtailorjobsroutesPublic Teamtailor jobs RSS feed.
WorkableworkablejobsroutesPublic Workable hosted-board JSON endpoint.
WorkdayworkdayjobsroutesPublic Workday CXS careers-site endpoints.
WP Job ManagerwpjobmanagerjobsroutesPublic WordPress WP Job Manager REST or AJAX endpoint.

Detect-Only Providers

manatal and gem are preserved as board metadata until stable public fetching is added. Health reports group these under notCovered so they are visible without being treated as failed job syncs.

Public No-Auth Board Providers

Workable, Teamtailor, BambooHR, Rippling, and WP Job Manager are job-capable in v0.1 only through public unauthenticated board routes. Workable fetches list and per-job detail endpoints separately so raw_listing and raw_detail stay distinct for audit replay. BambooHR uses public careers endpoints such as /careers/list and /careers/{job_id}/detail; OpenOpps does not call authenticated BambooHR ATS APIs. WP Job Manager requires an explicit /wp-json/wp/v2/job-listings or /jm-ajax/get_listings/ endpoint and is not inferred from arbitrary WordPress sites.

Surplus field promotion

Greenhouse list responses with content=true promote metadata, requisition_id, language, and department/office hierarchy into provider_extras; prospect posts without internal_job_id are tagged posting_kind=prospect. See the S1–S4 surplus taxonomy in Data Model and openspec/changes/ingest-data-surplus/ for the full promotion manifest.

ProviderShipped in v0.1Planned (manifest)
Greenhousemetadata, requisition_id, language, department/office trees, posting_kindpay_input_ranges (optional N+1 fetch)
Workableraw_listing / raw_detail split
Levercategories, epoch dates, sections
AshbyisListed, compensation, workplaceType
BambooHRjobOpening, requisition ids
WorkdaypostedOn, jobDescription
RipplingpayRangeDetails, workplaceType
TeamtailorRSS limits; optional HTML detail fetch
WP Job Managermeta keys

Provider Coverage

Provider coverage reports on the persisted SQLite dataset only. It does not perform live HTTP checks, source fetches, route probes, or job syncs. The deterministic smoke data proves the report shape; published real-world percentages must be measured from representative persisted source snapshots:

uv run openopps providers coverage
uv run openopps providers coverage --source a16z --provider any --json
uv run openopps providers coverage --source a16z --provider greenhouse
uv run openopps providers audit --source a16z --json
uv run openopps admin sources yield --json

Use coverage to answer whether the local data is complete enough for analysis. The JSON report includes source, board, route, and job counts; route counts by provider, support level, and last status; executable route counts; missing route metadata counts; duplicate route skips derived from the durable route registry; job counts by provider, source, and board; non-supported provider coverage; detect-only provider examples; boards with job-capable hints but no executable route; and boards with executable routes but zero persisted jobs.

admin sources yield reports source-family conversion from persisted records only: company candidates, canonical boards, provider hints, job-capable routes, route-ready routes, active job routes, duplicate board rate, active boards added, yield score, and taxonomy totals by provider type and access type.

Coverage also reports enrichment completeness percentages from deterministic provider-field mapping. These data-quality metrics cover posting URLs, apply URLs, locations, departments, descriptions, normalized compensation or salary, remote level, and employment type.

Provider adoption audit

Candidate provider targets

10 audit surfaces

providers audit reports persisted-board evidence for smartrecruiters, workable, recruitee, teamtailor, bamboohr, rippling, wpjobmanager, icims, jobvite, jazzhr. It includes candidate route and board counts, example boards, and do-not-adopt rationales for providers that do not yet have reliable generic public fetching in v0.1.

Route Probing

Some sources report provider hints without the public route token required for job fetching. Route probing tries candidate tokens derived from upstream slugs, remote ids, names, domains, and websites. Board keys such as a16z:acme are durable record identifiers, not provider route-token candidates.

Candidate tokens

Derived from source slugs, remote ids, names, domains, and websites.

Dry-run first

Route probing reports matches and unknowns without persistence by default.

Apply deliberately

Add --apply only after inspecting matched route metadata.

uv run openopps admin providers probe-routes --source a16z --provider any --limit 25 --json

By default, probing only checks routes missing token or URL metadata and does not persist results. Use --include-existing to recheck existing routes and --apply to persist matched metadata.

Provider Health

Provider health samples source adapters and job-capable routes, then reports status counts:

uv run openopps providers health --source a16z --provider any --limit 25 --json

Health checks report active, empty, error, missing_route, not_covered, and duplicate route skips. Add --apply to persist source health under raw_metadata.health and board-provider route health under last_status.

Use provider health for live sampled HTTP status. Use provider coverage for offline persisted route coverage and enrichment quality. Use provider audit for candidate-provider adoption evidence.

Board Route Registry

The board_providers registry is the executable route layer between discovered boards and job sync. Use it before large syncs to confirm which routes are ready:

uv run openopps admin providers registry --provider any
uv run openopps admin providers registry --provider any --passed-probe-only --json
uv run openopps admin providers registry --provider any --include-missing --limit 50

Without --include-missing, admin providers registry skips job-capable hints that still lack executable metadata, such as an Ashby board token or complete Workday CXS route. --passed-probe-only narrows output to routes verified by a persisted admin providers probe-routes --apply result.

Use Explorer to inspect the generated static snapshot of persisted boards, board-provider routes, latest job rows, source/provider coverage, and data-quality signals.

Provider Limits

  • Workday support is limited to public postings visible through careers sites; it is not official tenant API access.
  • Ashby sync excludes isListed: false direct-link-only postings from normal output.
  • Overlapping board records from multiple sources are merged by company domain. Board JSON includes source_keys and source_board_keys for every source currently represented by the canonical board, and provider requests are deduped before route probes and job syncs.
  • Installed Python plugins are not sandboxed and run in the same process as OpenOpps.
  • Use OPENOPPS_PLUGIN_ALLOWED to opt in trusted entry-point names before plugin code executes.
  • Use OPENOPPS_PLUGIN_AUTOLOAD=true only in controlled environments where every installed openopps.plugins entry point is trusted.

On this page