joa-advance / README.md
Ltzekos's picture
Upload README.md
ec81782 verified
|
Raw History Blame Contribute Delete
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.