|
Download README.md from JobOpportunitiesAPI/joa-advance: direct link, hf CLI and curl.
- Browser
- Download file 5.16 kB
-
https://huggingface.co/JobOpportunitiesAPI/joa-advance/resolve/main/README.md
- Command line
-
hf download hf://JobOpportunitiesAPI/joa-advance/README.md
-
curl -L -o README.md https://huggingface.co/JobOpportunitiesAPI/joa-advance/resolve/main/README.md
5.16 kB
| license: other | |
| license_name: joa-model-license | |
| license_link: LICENSE.md | |
| base_model: ibm-granite/granite-3.3-8b-instruct | |
| base_model_relation: adapter | |
| pipeline_tag: text-generation | |
| tags: | |
| - information-extraction | |
| - job-postings | |
| - lora | |
| # JOA Advance: job-posting extraction model | |
| *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 (24 October 2026): weights released.** The model was trained and evaluated, and the evaluation below is unchanged from 6 October 2026. The weights are in this repository under the JOA Model License (LICENSE.md): any use, including commercial, with visible credit and a link. | |
| ## What it does | |
| JOA Advance 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-3.3-8b-instruct](https://huggingface.co/ibm-granite/granite-3.3-8b-instruct) by IBM, licensed Apache 2.0. | |
| - **Method:** LoRA adapter (rank 16), one epoch, 38,488 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 29 September 2026). Dataset: https://huggingface.co/datasets/JobOpportunitiesAPI/joa-extraction-arena | |
| | Model | Score (rule A) | 95% range | Rank of 84 | Median output tokens | | |
| |---|---|---|---|---| | |
| | **JOA Advance** | **92.7** | 91.6–93.9 | **2** | 123 | | |
| | Stock granite-3.3-8b-instruct | 86.4 | 84.4–88.2 | 20 | 266 | | |
| | Trainer Qwen/Qwen3.5-27B | 89.2 | 86.9–91.4 | 4 | 2,946 | | |
| Per field (rule A): title 99, company 96, location 90, salary currency 93, salary min 94, salary max 94, salary period 95, seniority 83, remote type 91, posted date 84, 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-3.3-8b-instruct 71.4%, **JOA Advance 84.7%**, trainer 86.3% (n = 237). | |
| On the 244 arena listings the trainer answered, JOA Advance was ahead by 1.9 points (95% range +0.5 to +3.5). | |
| ## 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. | |
| - **Posted date is its weakest field** (84, against 88 for the trainer). | |
| - **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 | |
| The weights are licensed under the **JOA Model License** (LICENSE.md in this repository): | |
| - You may use, modify, fine-tune, redistribute and sell JOA Advance, 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 Advance 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. | |
| ## Attribution | |
| JOA Advance is a fine-tune of ibm-granite/granite-3.3-8b-instruct 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. | |