遇见数据集

KSE-RESEARCH-Group/Work_UA_vacancies

收藏
Hugging Face2026-03-10 更新2026-04-05 收录
官方服务:

资源简介:

--- license: cc-by-nc-4.0 language: - uk tags: - vacancies - job-postings - nlp - ukrainian - job-market - information-extraction - structured-data size_categories: - 10K<n<100K --- # WorkUA Job Vacancies Dataset ## Dataset Summary This dataset contains **98,702 job vacancy entries** scraped from publicly available postings on [Work.ua](https://www.work.ua/), Ukraine's largest job portal. The data covers a snapshot of the Ukrainian labor market and includes job titles, full descriptions, salary information, required skills, company attributes, and employment conditions. **Scraping window**: July – August 2025. **Intended use:** - Ukrainian-language NLP and text classification - Job market and salary analysis - Vacancy–resume matching - Skills demand analysis - Labor market research > **Privacy**: Postings are employer-authored public listings. No candidate personal data is present. The `url` field has been removed. `company_id` is a derived integer identifier (see Schema notes). --- ## Processing Pipeline | Stage | Description | |---|---| | **Scraping** | Vacancy pages scraped from Work.ua (publicly accessible employer listings) | | **HTML → text** | Raw HTML parsed; `description_text` extracted as clean text from the job description body | | **Skills** | Extracted directly from the structured skills widget on the page (platform-normalized tags) | After cleaning: **98,702 unique vacancies**. --- ## File **`vacancies.ndjson`** — Newline-delimited JSON, 98,702 rows, 15 columns. ### Schema ``` id String — Numeric vacancy ID from Work.ua title String — Job position title (0.3% null) salary String — Salary as displayed on the page, e.g. "25 000 грн" (28% null) salary_details String — Additional salary text (bonuses, commission info, etc.) (51% null) company_size String — Employer size category, e.g. "10–50 співробітників" (9% null) location_details String — Location as displayed on the page (6% null) is_remote Boolean — Whether remote work is indicated (5.5% true) employment_type String — Raw employment type text, e.g. "Повна зайнятість" (non-null) veteran_preference Boolean — Whether posting indicates veteran hiring preference (5.9% true) is_hot Boolean — Work.ua "hot vacancy" flag (1.2% true) salary_above_average Boolean — Work.ua flag: salary marked as above market average (28.5% true) skills List[str] — Skill tags from the platform's structured skills widget description_text String — Full job description as raw text (always present) language String — Language requirements as scraped from the page (87% null) company_id Int64 — Integer ID derived from company name via categorical encoding; null if company name was missing (~0.3% null) ``` > **Note on `salary`**: The field is a raw string as shown on the page — formats vary ("від 20 000 грн", "20 000–30 000 грн", "за домовленістю", etc.). Parse before use. > **Note on `company_id`**: This is **not** a Work.ua platform ID. It is derived by mapping `company_name` to a categorical integer. The same company name always maps to the same ID, but the mapping is not persisted in this file — do not treat it as a stable external identifier. > **Note on `language`**: This field is scraped from a language requirements widget that is rarely filled (87% null). Values are raw text like `"Англійська — вище середнього"`. Not normalized. --- ## Data Example ```json { "id": "14821813", "title": "Менеджер з продажу", "salary": "25 000–40 000 грн", "salary_details": null, "company_size": "10–50 співробітників", "location_details": "Київ", "is_remote": false, "employment_type": "Повна зайнятість", "veteran_preference": false, "is_hot": false, "salary_above_average": true, "skills": ["Переговори", "CRM", "Робота з клієнтами"], "description_text": "Ми шукаємо активного менеджера з продажу...", "language": null, "company_id": 4821 } ``` --- ## Known Limitations | Issue | Detail | |---|---| | **Salary is unparsed free text** | Formats vary widely; requires regex/parsing before any quantitative analysis | | **`salary_above_average` is platform-defined** | Work.ua determines this flag by its own internal market comparison — methodology unknown | | **`employment_type` is non-standardized** | Raw text scraped from the page; includes whitespace artifacts and inconsistent phrasing | | **`location_details` is non-standardized** | Can contain a city, full address, or multiple locations concatenated | | **`language` is 87% null** | Field is optional and rarely filled by employers; absence does not mean no language requirements | | **`company_id` is not stable** | Derived via categorical encoding from `company_name`; cannot be joined to any external source | | **Point-in-time snapshot** | Reflects vacancies active during July–August 2025; does not track posting lifecycle or closures | | **`description_text` noise** | Raw text from the DOM; may contain HTML entities, excessive whitespace, or emoji | | **`skills` quality** | Platform-normalized but employer-chosen; reflects what employers wrote, not a curated taxonomy | --- ## Ethical Considerations - All entries are **publicly posted employer listings** - No candidate or applicant data is present - Vacancy URLs have been removed from the published dataset - Data reflects the Ukrainian labor market during the active war period (July–August 2025); the `veteran_preference` field and geographic distribution of listings are directly shaped by this context --- ## Language Primarily **Ukrainian** (`uk`). Job descriptions are written by employers in Ukrainian; some postings contain English terms or phrases, particularly in IT-sector vacancies. --- ## License [Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/) Free to use for non-commercial research with attribution. --- ## Acknowledgments - Data source: [Work.ua](https://www.work.ua/) - Processing: [Polars](https://pola.rs/)

许可协议:CC BY-NC 4.0 语言: - 乌克兰语 标签: - 职位空缺 - 招聘启事 - 自然语言处理(Natural Language Processing) - 乌克兰语 - 劳动力市场 - 信息抽取(Information Extraction) - 结构化数据(Structured Data) 数据量范围:1万至10万条 # WorkUA 职位空缺数据集 ## 数据集概述 本数据集包含98702条职位空缺条目,均抓取自乌克兰最大招聘门户网站Work.ua(https://www.work.ua/)上的公开招聘启事。该数据集呈现了乌克兰劳动力市场的时间切片快照,涵盖职位名称、完整招聘描述、薪资信息、所需技能、企业属性及用工条件等内容。 **抓取窗口期**:2025年7月至8月。 **预期应用场景**: - 乌克兰语自然语言处理与文本分类 - 劳动力市场与薪资分析 - 职位-简历匹配 - 技能需求分析 - 劳动力市场研究 > **隐私说明**:本数据集的条目均为雇主发布的公开招聘启事,未包含任何求职者个人信息。已移除`url`字段,`company_id`为衍生整数标识符(详见字段架构说明)。 --- ## 处理流程 | 处理阶段 | 描述 | |---|---| | **抓取阶段** | 从Work.ua抓取职位空缺页面(公开可访问的雇主招聘启事) | | **HTML转文本** | 解析原始HTML,从招聘描述主体中提取`description_text`字段,转换为纯净文本 | | **技能字段提取** | 直接从页面上的结构化技能组件(平台标准化标签)中提取 | 数据清洗后,共得到98702条唯一职位空缺条目。 --- ## 数据文件 **`vacancies.ndjson`** — 换行分隔JSON格式,共98702行,包含15个字段。 ### 字段架构 id 字符串类型 — 来自Work.ua的数值型职位ID title 字符串类型 — 职位名称(0.3%的条目为空) salary 字符串类型 — 页面展示的薪资格式,例如“25 000 грн”(28%的条目为空) salary_details 字符串类型 — 薪资补充说明(奖金、佣金信息等)(51%的条目为空) company_size 字符串类型 — 企业规模分类,例如“10–50 співробітників”(9%的条目为空) location_details 字符串类型 — 页面展示的工作地点(6%的条目为空) is_remote 布尔类型 — 是否标注支持远程办公(5.5%的条目为真) employment_type 字符串类型 — 原始用工类型文本,例如“Повна зайнятість”(非空字段) veteran_preference 布尔类型 — 是否标注有退伍军人雇佣偏好(5.9%的条目为真) is_hot 布尔类型 — Work.ua“热门职位”标记(1.2%的条目为真) salary_above_average 布尔类型 — Work.ua标记:薪资标注为高于市场平均水平(28.5%的条目为真) skills 字符串列表 — 来自平台结构化技能组件的技能标签 description_text 字符串类型 — 完整招聘描述的原始文本(始终存在) language 字符串类型 — 页面抓取的语言要求(87%的条目为空) company_id 64位整数类型 — 通过企业名称进行分类编码得到的衍生整数标识符; 若企业名称缺失则为空值(约0.3%的条目为空) > **薪资字段说明**:该字段为页面展示的原始字符串,格式多样(如“від 20 000 грн”、“20 000–30 000 грн”、“за домовленістю”等),使用前需进行解析处理。 > **`company_id`字段说明**:本字段并非Work.ua平台原生ID,而是通过将`company_name`映射为分类整数得到的衍生标识符。相同的企业名称始终映射至同一ID,但本数据集未存储该映射关系,请勿将其视为稳定的外部标识符。 > **`language`字段说明**:该字段从语言需求组件中抓取,该组件通常未被雇主填写(87%的条目为空),取值为原始文本,例如“Англійська — вище середнього”,未经过标准化处理。 --- ## 数据示例 json { "id": "14821813", "title": "Менеджер з продажу", "salary": "25 000–40 000 грн", "salary_details": null, "company_size": "10–50 співробітників", "location_details": "Київ", "is_remote": false, "employment_type": "Повна зайнятість", "veteran_preference": false, "is_hot": false, "salary_above_average": true, "skills": ["Переговори", "CRM", "Робота з клієнтами"], "description_text": "Ми шукаємо активного менеджера з продажу...", "language": null, "company_id": 4821 } --- ## 已知局限性 | 问题 | 详细说明 | |---|---| | **薪资为未解析的自由文本** | 格式差异极大;进行量化分析前需通过正则表达式或其他方式进行解析 | | **`salary_above_average`为平台自定义标记** | Work.ua通过其内部市场对比确定该标记,具体方法未知 | | **`employment_type`未标准化** | 为从页面抓取的原始文本,可能包含空格冗余和表述不一致的问题 | | **`location_details`未标准化** | 可包含城市名称、完整地址或多个地点的拼接内容 | | **`language`字段87%为空** | 该字段为可选字段,雇主通常未填写;字段为空并不代表无语言要求 | | **`company_id`不稳定** | 通过`company_name`进行分类编码得到,无法与任何外部数据源关联 | | **仅为时间切片快照** | 反映2025年7月至8月期间活跃的职位空缺,未追踪职位发布周期或关闭状态 | | **`description_text`存在噪声** | 来自DOM的原始文本,可能包含HTML实体、多余空格或表情符号 | | **`skills`字段质量** | 经平台标准化,但由雇主自行填写;仅反映雇主所标注的内容,并非经过人工精选的标准化分类体系 | --- ## 伦理考量 - 所有条目均为**公开发布的雇主招聘启事** - 未包含任何求职者或申请人数据 - 已从发布的数据集中移除职位空缺URL - 本数据集反映了2025年7月至8月俄乌冲突期间的乌克兰劳动力市场;`veteran_preference`字段及职位的地理分布均受该历史背景直接影响 --- ## 语言属性 主要为**乌克兰语**(`uk`)。招聘描述由雇主以乌克兰语撰写,部分IT行业职位可能包含英语术语或短语。 --- ## 许可协议 [知识共享署名-非商业性使用4.0国际许可协议(CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/) 可免费用于非商业性研究,但需注明原作者。 --- ## 致谢 - 数据来源:[Work.ua](https://www.work.ua/) - 数据处理工具:[Polars](https://pola.rs/)

提供机构:
KSE-RESEARCH-Group
二维码
社区交流群
二维码
科研交流群
商业服务