JOA Small: job-posting extraction model (status page, weights not released)

Disclosure: Job Opportunities API (JOA, jobopportunitiesapi.org) is an independent data business that sells API access to job-posting data. AI helped run the experiments, check the numbers and draft this text; Loukas (Luca) Tzekos is editorially responsible. Contact: hello@jobopportunitiesapi.org.

Status (6 October 2026): trained and evaluated, weights not published. This page records what the model does and how it scored. It will be updated if and when weights are released. Planned licence for the weights: the JOA Model License (any use, including commercial, with visible credit and a link); it applies only once weights are released.

What it does

JOA Small reads the text of one job posting and returns 11 structured fields as JSON: title, company, location, salary currency, minimum, maximum and period, seniority, remote type, posted date, and whether the poster is a staffing agency. It leaves a field empty when the posting does not state it. It answers directly, without a long reasoning trace.

How it was made

  • Base model: ibm-granite/granite-4.2-3b by IBM, licensed Apache 2.0.
  • Method: LoRA adapter (rank 16), one epoch, 80,000 training examples.
  • Training data: fields extracted by Qwen/Qwen3.5-27B (Apache 2.0) from job postings collected by Job Opportunities API (JOA), kept only when grounded in the posting text (for example, a title or salary that actually appears in it). The 250 arena listings and the 250 verification listings were excluded.
  • Compute: This work used the EuroHPC supercomputer Discoverer+ in Bulgaria, made available by the EuroHPC Joint Undertaking through an AI Factories Playground access allocation (project EHPC-AIF-2026PG01-1124).

Results

Extraction arena (250 real job listings, 11 fields, two judge models, paired bootstrap; graded 2 October 2026). Dataset: https://huggingface.co/datasets/JobOpportunitiesAPI/joa-extraction-arena

Model Score (rule A) 95% range Rank of 84 Median output tokens
JOA Small 93.3 92.2โ€“94.4 1 117
Stock granite-4.2-3b 64.5 59.7โ€“69.0 71 4,411
Trainer Qwen/Qwen3.5-27B 89.2 86.9โ€“91.4 4 2,946

Per field (rule A): title 99, company 96, location 89, salary currency 93, salary min 94, salary max 93, salary period 96, seniority 86, remote type 92, posted date 89, agency 96.

Verified listings (a second set of 250 recent listings, each verified twice by Claude Opus against the live page and the application flow; exact match on the open listings that all three models answered; scored 2 October 2026): stock granite-4.2-3b 72.3%, JOA Small 84.9%, trainer 86.3% (n = 213).

Consumer graphics card (4โ€“5 October 2026, 100 different JOA listings, richer input with the page and structured data, graded against Claude Opus references): F1 0.888 (95% range 0.85โ€“0.92), about 7 seconds per listing on an NVIDIA GTX 1070.

Known limits

  • It reads JOA's stored text, not the live page. That text is usually the description body; the page header, where the title, location and posted date often sit, can be missing. A field that is not in the input cannot be extracted.
  • It cannot tell that a job has closed. On the verification set it called a few dead listings open; the stored text carries no sign of closure. JOA checks liveness separately.
  • It cannot drive a tool-using agent. Given tools instead of a prepared input, it scored F1 0.520 on the same 100 listings, and only 54 of 100 answers could be parsed. Give it the input; do not ask it to fetch it.
  • The reference answers come from a model, and the judges are models. Two judges, a checked reference and confidence ranges reduce that risk; they do not remove it.
  • One task. This is an extraction model for job postings, not a general assistant.

What is next

Train and test on a richer input (the rendered page, structured data and the recruiting system's own data), re-run both tests, then decide on releasing the weights.

Licence (planned)

When the weights are released, they will be licensed under the JOA Model License (LICENSE.md in this repository):

  • You may use, modify, fine-tune, redistribute and sell JOA Small, including in commercial and hosted products.
  • If you distribute it, or make a product or service that uses it available to others, show "Built with JOA Small by Job Opportunities API" with a link to https://jobopportunitiesapi.org in your documentation, about page or user interface, and in the model card of any derivative.
  • Keep the base model's Apache 2.0 licence and notices.
  • Do not imply endorsement.

Nothing is released yet. This section describes the plan, not a grant.

Attribution

JOA Small is a fine-tune of ibm-granite/granite-4.2-3b by IBM, used under the Apache License 2.0. It is not made, endorsed or supported by IBM. Built by Job Opportunities API (JOA), https://jobopportunitiesapi.org.

Contact

  • General: hello@jobopportunitiesapi.org
  • Legal matters: luca@tzekos.eu
  • Phone: +30 2311 113 603
  • Job Opportunities API (JOA) is a sole proprietorship of Loukas Tzekos, Didaskalisis Papathanasiou Vas. 79, 54629 Thessaloniki, Greece. VAT EL117613696.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for JobOpportunitiesAPI/joa-small

Adapter
(5)
this model