Skip to content

Get the dataset

← User guide · Public API · Questions

Download all currently open opportunities — free, without an account or API key.

Download CSV → · Download JSON → · Metadata and hashes

Choose a format

Use case Choose
Open listings in a spreadsheet CSV; import as UTF-8 and keep job IDs as text
Analyze all listings in a script JSON; all listings in one array, without fetching separate pages
Fetch a filtered page in an application Public API; camelCase fields and pagination

For a spreadsheet, download the CSV and open it using your spreadsheet's import function. Choose UTF-8 if asked for an encoding, and import job IDs as text so they are not reformatted. You do not need to install the repository.

Downloads contain every open listing at generation time, not your current search results or saved list. They contain no visitor data or private application history. They are current snapshots, not a complete historical dataset.

Fields

Download field Meaning
linkedin_job_id Numeric job ID stored as a string
company, title, location Public listing text
link Canonical HTTPS LinkedIn URL matching the ID
category Technology category identifier, such as software-engineering
industries Optional source industries text
employment_type internship or new-grad
start_date Optional stated month/season and year

JSON uses null for missing optional fields; CSV uses an empty cell. The files do not include listing status, observation timestamps, how a listing was found, search history, availability-check results, diagnostics, or internal file paths. For the public first-seen date, use the API.

Synthetic example (not a live listing):

[
  {
    "linkedin_job_id": "1000000001",
    "company": "Example Labs",
    "title": "Software Engineering Intern 2027",
    "location": "Berlin, Germany",
    "link": "https://www.linkedin.com/jobs/view/1000000001",
    "category": "software-engineering",
    "industries": "Software Development",
    "employment_type": "internship",
    "start_date": "June 2027"
  }
]

CSV details

The fixed header is:

linkedin_job_id,company,title,location,link,category,industries,employment_type,start_date

CSV uses UTF-8, LF record endings, and standard quoting for commas, quotes, and embedded newlines. Text starting with =, +, -, @, tab, or carriage return receives a leading apostrophe to prevent spreadsheet formula interpretation. This protection applies only to CSV: do not expect every cell to equal JSON text byte for byte.

JSON is UTF-8 with a final newline. Both downloads use deterministic newest-first publication order. Compare by ID when reconciling with the API, which supports different sorting. An empty JSON download is []; an empty CSV still has its header.

Check a download's integrity

This optional check helps confirm that you downloaded a complete file matching its metadata. It is useful for scripts and analysis; you do not need it to browse the directory or open the CSV.

Fetch dataset-metadata.json alongside the files. It contains:

Field Meaning
schema_version v1
generated_at UTC generation time, not a per-listing freshness guarantee
total Number of rows in each download
internship_count, new_grad_count Counts that sum to total
json_sha256, csv_sha256 Lowercase SHA-256 of exact UTF-8 file bytes, including final newline

Compute SHA-256 before editing or resaving the download. A mismatch can mean a publication occurred between requests: fetch the metadata and downloads again. Hashes detect mismatched bytes; they are not signatures and do not validate API responses. Missing files return 503 rather than stale fallback content.

Use the status endpoint to identify the dataset currently served by the website and check its collection time.

Schema, examples, and reuse

For developers, the v1 JSON Schema describes the expected fields and values so software can validate the data. Its root validates the JSON download; #/$defs/csvDataset validates decoded { "header": [...], "rows": [[...]] }, #/$defs/apiResponse validates listing API bodies, #/$defs/statusResponse validates production status, and #/$defs/metadata validates the manifest.

Complete synthetic examples are tested against that same schema. Breaking download changes require a new schema version; existing v1 consumers should not need to infer field changes.

The project uses the MIT License; third-party listing content remains subject to its owners' rights and terms. Verify availability and eligibility at the original source. These files contain only the public fields listed above, not the project's internal history of listing updates or availability checks.

Maintaining exports? See projection ownership and contract testing.