# Changelog of Job Posting Classifier — remote, visa, salary · $0.5/1k (`leoworks/job-posting-classifier`) Actor

- **URL**: https://apify.com/leoworks/job-posting-classifier/changelog.md
- **Full Actor documentation**: https://apify.com/leoworks/job-posting-classifier.md

## Changelog

### 0.2 (2026-10-11)

- **Works with more job scrapers** — field names matched ignoring case, `_` and `-`, including nested fields: LinkedIn (curious_coder, valig, bebity, cheap_scraper, fantastic-jobs), Indeed (valig, borderline, misceres, kaix, curious_coder), Glassdoor, Google Jobs, JobSpy-style and hirebase outputs. Numeric job IDs are kept.
- **No more charges for title-only rows** — postings with a description under 120 characters are skipped (adjustable). If nothing could be classified, the run stops with the field names it found.
- **Salary as numbers** — `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod` and annual USD (`salaryAnnualMinUsd` / `MaxUsd`) from structured salary fields or the salary text.
- **Skills** — list skills, tools or licences; each posting gets the ones it mentions (code, free).
- **Free filters and dedupe** — only postings from the last N days, title must / must not contain, max postings per company; the same job ID, URL or title + company + city is classified once. Skipped postings are not charged; the status message counts each reason.
- **Board context kept** — `postedAt`, seniority, applicant count, company size and industry from the scraper.
- **Flat columns** `workMode`, `experience`, `employmentType`, `visa`, `customLabelsMatched` next to the full `labels` (unchanged). Three table views (Job postings, Salaries, Labels with probabilities).
- **REPORT_COMPANIES.csv** — one row per hiring company: open jobs, top titles, remote/hybrid/on-site shares, visa share, salary disclosure, median salary, top skills and locations, latest posting. REPORT adds median salary, skills, top titles and locations, and postings per week.
- Price and judgment unchanged.

### 0.1

- First version: job posting classification — work mode (remote / hybrid / on-site), minimum experience, employment type, visa sponsorship, salary disclosed (with the salary as written), custom labels, summary by company (REPORT). Reads LinkedIn and Indeed jobs scraper outputs.
