open-apply-jobs
收藏Open-Apply Jobs 数据集概述
数据集基本信息
- 名称: Open-Apply Jobs
- 标识符:
edwarddgao/open-apply-jobs - 许可证: MIT
- 主要语言: 英语 (en)
- 任务类别: 文本分类、文本检索
- 标签: 工作、招聘、greenhouse、lever、ashby、ats
- 数据规模: 100K < n < 1M
- 数据格式: Hive分区Parquet文件
数据内容与来源
- 数据描述: 一个每日刷新的开放数据集,包含直接从公共ATS API(Greenhouse、Lever、Ashby)获取的活跃职位发布。每条记录均可追溯到招聘公司自身的招聘网站。
- 覆盖范围: 涵盖三个“现代”的开发者友好型ATS。重点覆盖科技、初创公司、AI/ML、生物技术、机构和其他知识密集型行业的雇主。
- 未覆盖范围: Workday、Oracle Cloud HCM、iCIMS、SuccessFactors、Taleo、SmartRecruiters、Workable、Jobvite。这些系统要么有私有API,要么偏向高容量零售,要么是SMB噪音,要么仅提供HTML源。
更新与存储
- 更新频率: 每日UTC时间06:00自动刷新。
- 分区方式: Hive分区Parquet (
date=YYYY-MM-DD/source={ats})。 - 存储结构: 每个
date=文件夹是该日活跃职位发布的完整快照,而非增量更新。对比两个连续日期的数据可获取新增、删除或修改的职位。 - 分区布局示例:
data/ ├── date=YYYY-MM-DD/ │ ├── source=greenhouse/part-.parquet │ ├── source=lever/part-.parquet │ └── source=ashby/part-*.parquet ├── date=YYYY-MM-DD/ │ └── ...
数据模式(Schema)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
string | {source}:{slug}:{native_id} — 数据集中唯一 |
source |
string | greenhouse |
source_slug |
string | 该ATS上的租户标识(例如 databricks, spacex) |
title |
string | 职位标题 |
apply_url |
string | ATS招聘网站上的规范URL |
description_html |
string? | 完整的HTML描述(约100%填充) |
employment_type |
string? | 例如 FullTime, Contract, Internship |
department |
string? | 自由格式;取决于ATS |
locations |
list[string] | 始终为列表;对于完全远程职位可能为空 |
remote |
bool? | 在可用时提供结构化数据;否则从位置文本推断 |
posted_at |
string? | ISO 8601 UTC格式 |
salary_min / salary_max |
float? | 仅Ashby/Lever公开结构化薪酬数据(约30%)。Greenhouse的薪酬信息嵌入在 description_html 中 |
salary_currency |
string? | ISO 4217 货币代码(USD, EUR, GBP) |
salary_period |
string? | HOUR |
使用方法
使用 datasets 库加载
python from datasets import load_dataset ds = load_dataset(edwarddgao/open-apply-jobs)
使用 duckdb 查询最新快照
python 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()
收集方法
- 租户发现: 针对
boards.greenhouse.io/*、jobs.lever.co/*、jobs.ashbyhq.com/*进行Common Crawl CDX查询,并在五个爬取快照中合并。每次刷新约发现10,000个不同的租户。 - 获取: 以16路并发调用每个租户的公共JSON招聘板API;仅在发生瞬态5xx/408/429/网络错误时重试。
- 规范化: 每个ATS的记录被映射到规范模式(上表)—— 3个适配器函数,总计约200行代码。
- 发布: 使用
zstd压缩,通过pyarrow.parquet.write_to_dataset写入每日分区,并通过huggingface_hub.HfApi.upload_folder上传。
已知限制
- 约30%的租户获取失败率: 输入列表中的标识符包含Common Crawl仍引用的已失效/已更名公司。这些返回404并被丢弃。
- 无墓碑标记: 出现在
date=N但未出现在date=N+1中的职位会直接消失;没有明确的closed_at标志。需通过对比计算。 - 跨ATS未去重: 一家公司在Greenhouse和Lever上发布相同职位将出现两次。实践中罕见。
- 薪酬字段稀疏且有噪音: 在公开结构化薪酬数据的地方,通过正则表达式从ATS的自由格式
compensationTierSummary字符串中解析。如需完整信息,请回退到description_html。
许可证与引用
- 许可证说明: 数据集打包采用MIT许可证。底层的职位描述版权归各自雇主所有,并根据合理使用原则为研究和产品目的而重新分发。
- 引用格式:
@misc{openapply2026, author = {edwarddgao}, title = {Open-Apply Jobs}, year = {2026}, url = {https://huggingface.co/datasets/edwarddgao/open-apply-jobs} }
相关链接
- 源代码: https://github.com/edwarddgao/openapply
- 数据集页面: https://huggingface.co/datasets/edwarddgao/open-apply-jobs




