OpenOpps docs / Start here
Start Here
OpenOpps concepts, first commands, public data surfaces, and docs map.
OpenOpps v0.1 is a CLI-only Python app for discovering firm hiring boards from aggregate sources, detecting public provider routes, syncing normalized jobs, caching repeated HTTP JSON requests, and exporting an auditable local opportunity ledger. It intentionally ships without a hosted service, browser app, prompt UI, or TUI.
Use the
Jobs
surface for open-role search and posting previews, or
Explorer
for source, provider, route, and data-quality analysis.
Domain
sourcesare aggregate discovery catalogs such asa16z,accel,lsvp,sequoia,bvp,greylock,kleinerperkins,southparkcommons,signalfire, andyc.boardsare firm/company hiring boards discovered from sources.jobsare normalized postings fetched from boards.providersare adapters that detect or fetch provider-specific boards, such as Ashby, Greenhouse, Lever, Workday, Workable, Teamtailor, BambooHR, Rippling, and WP Job Manager.cache,plugins, andexamplescover operational cache inspection, installed Python plugin discovery, and deterministic demo data.
Install and Run
Use uv run while working inside the repository checkout:
uv sync
just --list
uv run openopps --help
uv run openopps statusIf you want openopps available directly from this editable checkout, install the repo as a uv tool from the repository root:
uv tool install -e .
openopps --help
openopps statusuv tool install -e . installs the console entry point from the current checkout. Runtime settings such as OPENOPPS_DB_URL still control where local SQLite state is read and written.
Contributor Command Map
The root Justfile is the quickest way to discover local validation without hiding the underlying toolchain:
just --list
just quick
just ci
just openspec-validate-all
just docs-check
just cli-helpjust ci mirrors the GitHub Actions validation lanes: Python tests, coverage, OpenSpec validation, generated docs data, docs type-check/build/lint, Kaggle metadata generation, and whitespace checks. Use the raw uv, pnpm, and OpenSpec commands from the reference pages when a CI failure needs exact reproduction.
Safe Local Smoke Path
These commands seed deterministic demo records and do not hit upstream source or provider services:
uv run openopps examples seed --seed 42 --boards 4 --jobs-per-board 2 --json
uv run openopps jobs list --source example --json
uv run openopps providers coverage --jsonLive Quickstart
The commands below read public upstream catalogs and provider endpoints. They write local SQLite state unless a command is explicitly marked no-DB or dry-run.
uv run openopps sources list
uv run openopps admin sources test a16z
uv run openopps sources sync a16z --metrics-json --refresh-cache
uv run openopps sources sync accel --metrics-json
uv run openopps sources sync greylock --metrics-json
uv run openopps boards list --source a16z --limit 10
uv run openopps admin boards enrich --source a16z --json
uv run openopps providers health --source a16z --provider any --limit 25 --json
uv run openopps admin providers probe-routes --source a16z --provider any --limit 25 --json
uv run openopps jobs sync --provider ashbyhq --metrics-json --refresh-cache
uv run openopps cache status --json
uv run openopps plugins list --jsonUnscoped list, export, and sync commands use the full known superset unless narrowed by --source, --board, or --provider. Provider filters accept any and all as aliases for removing the provider filter, which keeps reusable scripts explicit without narrowing to one provider.
Overlapping source coverage uses the persisted board keys shown by boards list, and provider requests are deduped before route probing or job sync. The relevant metrics include duplicateRoutesSkipped.
Provider Levels
| Level | Meaning |
|---|---|
detect | OpenOpps can preserve provider metadata and route hints. |
jobs | OpenOpps can fetch public jobs for the provider. |
unsupported | The provider is known only as raw metadata. |
Ashby, Greenhouse, Lever, public Workday CXS, Workable, Teamtailor, BambooHR, Rippling, and explicit WP Job Manager boards are job-capable in v0.1 through public no-auth routes. Manatal and Gem hints remain detect-only until stable public fetching is added. See Providers for the generated provider registry and route diagnostics.
Ashby postings marked isListed: false are direct-link-only and are excluded from normal job sync output.
Documentation Map
| Page | Use it for |
|---|---|
| CLI | Command groups, common flags, JSON output, filters, and exports. |
| Configuration | OPENOPPS_ environment variables, defaults, .env loading, and runtime policy. |
| Data Model | Sources, boards, providers, jobs, exports, static indices, counts, and telemetry event-lake guidance. |
| Providers | Source catalogs, provider support levels, route diagnostics, and limitations. |
| Operations | Storage, cache, exports, validation, telemetry operations, Kaggle, and troubleshooting workflows. |
| Contributing | Local setup, validation, docs generation, source-batch rules, and review expectations. |
| Jobs | Filter and preview open roles from the static search index. |
| Explorer | Analyze source/provider coverage, route health, freshness, and data quality. |
Public Docs Routes
The canonical jobs workbench is /, the canonical analytics explorer is /explorer, and thin job detail pages live at /jobs/:id for direct posting previews. Legacy /jobs redirects to /, and legacy /docs/explorer redirects to /explorer; do not add broad /jobs/:path redirects because detail pages must remain addressable.
Route Probing Summary
Provider hints from source catalogs may not include the token or URL needed for job fetching. admin providers probe-routes tries candidate tokens from upstream slugs, remote ids, names, domains, and websites, then reports both matched routes and unknown boards with the candidate tokens it tried. Its JSON output includes per-provider selected/matched counts, unresolved reason counts, and duplicate route skips.
uv run openopps admin providers probe-routes --source a16z --provider all --limit 25 --jsonProbing is read-only unless --apply is passed. Use CLI for command flags and Operations for local-state runbooks.