edwarddgao/open-apply-jobs · Datasets
Hugging Face
RemoteRemote OKContract$140k – $220k / year
About this role
edwarddgao/open-apply-jobs · Datasets at Hugging Face
Open-Apply Jobs
A daily-refreshed open dataset of active job postings sourced directly from public ATS APIs (Greenhouse, Lever, Ashby). Every record can be traced back to the hiring company's own career board.
- Refresh: automated daily at 06:00 UTC
- Partitioning: Hive-partitioned Parquet (`date=YYYY-MM-DD/source={ats}`)
- Source code: https://github.com/edwarddgao/openapply
Usage
```
from datasets import load_dataset
ds = load_dataset('edwarddgao/open-apply-jobs')
```
```
Latest snapshot only
import duckdb
duckdb.sql("""
SELECT title, source_slug, apply_url, locations
FROM read_parquet('hf://datasets/edwarddgao/open-apply-jobs/data//.parquet',
hive_partitioning=1)
WHERE date = (SELECT MAX(date) FROM read_parquet(
'hf://datasets/edwarddgao/open-apply-jobs/data//.parquet', hive_partitioning=1))
AND 'Software Engineer' = ANY(string_split(title, ' '))
""").show()
```
Partition layout
```
data/
├── date=YYYY-MM-DD/
│ ├── source=greenhouse/part-.parquet
│ ├── source=lever/part-.parquet
│ └── source=ashby/part-.parquet
├── date=YYYY-MM-DD/
│ └── ...
```
Each`date=` folder is a full snapshot of that day's active postings — not an incremental delta. Diff two consecutive dates to get added / removed / modified jobs.
Schema
| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | `{source}:{slug}:{native_id}`— unique across the dataset |
| `source` | string | `greenhouse`|`lever`|`ashby` |
| `source_slug` | string | Tenant slug on that ATS (e.g.`databricks`,`spacex`) |
| `title` | string | Job title |
| `apply_url` | string | Canonical URL on the ATS career site |
| `description_html` | string? | Full HTML description (~100% populated) |
| `employment_type` | string? | e.g.`FullTime`,`Contract`,`Internship` |
| `department` | string? | Free-form; ATS-dependent |
| `locations` | liststring | Always a list; may be empty for fully-remote |