Initial release (approved by Luca, 2026-10-06)
Browse files- LICENSE.md +36 -0
- README.md +79 -0
LICENSE.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# JOA Model License, version 1.0 (PLANNED)
|
| 2 |
+
|
| 3 |
+
**Status: planned. This licence applies only once Job Opportunities API releases model weights. No weights are released yet.**
|
| 4 |
+
|
| 5 |
+
Licensor: Loukas Tzekos, trading as Job Opportunities API (JOA), sole proprietorship, Didaskalisis Papathanasiou Vas. 79, 54629 Thessaloniki, Greece, VAT EL117613696. Legal matters: luca@tzekos.eu.
|
| 6 |
+
|
| 7 |
+
"The Model" means the weights and adapters of JOA Small (and of JOA Small, JOA Advance and JOA Deep generally) as released by the Licensor, and any files released with them. "Derivative" means any model or adapter made from the Model, for example by fine-tuning, merging, quantising or distillation.
|
| 8 |
+
|
| 9 |
+
## 1. What you may do
|
| 10 |
+
|
| 11 |
+
You may use, copy, modify, fine-tune, merge, quantise, distribute and sell the Model and Derivatives, and use them in any product or service, including commercial and hosted services. The licence is free of charge, worldwide, non-exclusive and lasts as long as the rights it covers.
|
| 12 |
+
|
| 13 |
+
## 2. Conditions
|
| 14 |
+
|
| 15 |
+
These conditions apply when you distribute the Model or a Derivative, or make a product or service that uses them available to anyone outside your own organisation (including through an app, website or hosted API). Purely internal use has no conditions beyond sections 2.4 and 3.
|
| 16 |
+
|
| 17 |
+
1. **Keep the base model's licence.** The Model is built on a base model licensed under the Apache License, Version 2.0. Include that licence and any copyright and NOTICE text of the base model, and state that the weights were modified. Nothing in this licence limits the rights you have in the base model itself, obtained from its publisher, under its own licence.
|
| 18 |
+
2. **Give visible credit.** Display the line "Built with JOA Small by Job Opportunities API" with a link to https://jobopportunitiesapi.org, where users of your product or service can see it: in its documentation, its about page or its user interface. If you publish a Derivative, put the same line and link in its model card or README.
|
| 19 |
+
3. **Pass this licence on.** Include a copy of this licence with every copy of the Model or a Derivative you distribute. You may license your own changes on your own terms, but these conditions continue to apply to the parts that come from the Model.
|
| 20 |
+
4. **No implied endorsement.** You may say that your work is based on JOA Small. Do not name or present it in a way that suggests Job Opportunities API, IBM, Alibaba Cloud or the Qwen team made, endorse or support it. This licence grants no trademark rights.
|
| 21 |
+
|
| 22 |
+
## 3. Outputs
|
| 23 |
+
|
| 24 |
+
What you generate with the Model is yours. This licence puts no conditions on outputs.
|
| 25 |
+
|
| 26 |
+
## 4. Ending and restoring the licence
|
| 27 |
+
|
| 28 |
+
If you break a condition, your rights under this licence end automatically. They come back if you fix the breach within 30 days of becoming aware of it.
|
| 29 |
+
|
| 30 |
+
## 5. No warranty
|
| 31 |
+
|
| 32 |
+
The Model is provided "as is", without warranty of any kind. To the extent permitted by law, the Licensor is not liable for any damage arising from its use.
|
| 33 |
+
|
| 34 |
+
## 6. Law
|
| 35 |
+
|
| 36 |
+
This licence is governed by Greek law. This does not remove any rights consumers have under the law of their own country.
|
README.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: joa-model-license
|
| 4 |
+
license_link: LICENSE.md
|
| 5 |
+
base_model: ibm-granite/granite-4.2-3b
|
| 6 |
+
base_model_relation: adapter
|
| 7 |
+
pipeline_tag: text-generation
|
| 8 |
+
tags:
|
| 9 |
+
- information-extraction
|
| 10 |
+
- job-postings
|
| 11 |
+
- lora
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
# JOA Small: job-posting extraction model (status page, weights not released)
|
| 15 |
+
|
| 16 |
+
*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.*
|
| 17 |
+
|
| 18 |
+
**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.
|
| 19 |
+
|
| 20 |
+
## What it does
|
| 21 |
+
|
| 22 |
+
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.
|
| 23 |
+
|
| 24 |
+
## How it was made
|
| 25 |
+
|
| 26 |
+
- **Base model:** [ibm-granite/granite-4.2-3b](https://huggingface.co/ibm-granite/granite-4.2-3b) by IBM, licensed Apache 2.0.
|
| 27 |
+
- **Method:** LoRA adapter (rank 16), one epoch, 80,000 training examples.
|
| 28 |
+
- **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.
|
| 29 |
+
- **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).
|
| 30 |
+
|
| 31 |
+
## Results
|
| 32 |
+
|
| 33 |
+
**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
|
| 34 |
+
|
| 35 |
+
| Model | Score (rule A) | 95% range | Rank of 84 | Median output tokens |
|
| 36 |
+
|---|---|---|---|---|
|
| 37 |
+
| **JOA Small** | **93.3** | 92.2–94.4 | **1** | 117 |
|
| 38 |
+
| Stock granite-4.2-3b | 64.5 | 59.7–69.0 | 71 | 4,411 |
|
| 39 |
+
| Trainer Qwen/Qwen3.5-27B | 89.2 | 86.9–91.4 | 4 | 2,946 |
|
| 40 |
+
|
| 41 |
+
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.
|
| 42 |
+
|
| 43 |
+
**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).
|
| 44 |
+
|
| 45 |
+
**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.
|
| 46 |
+
|
| 47 |
+
## Known limits
|
| 48 |
+
|
| 49 |
+
- **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.
|
| 50 |
+
- **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.
|
| 51 |
+
- **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.
|
| 52 |
+
- **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.
|
| 53 |
+
- **One task.** This is an extraction model for job postings, not a general assistant.
|
| 54 |
+
|
| 55 |
+
## What is next
|
| 56 |
+
|
| 57 |
+
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.
|
| 58 |
+
|
| 59 |
+
## Licence (planned)
|
| 60 |
+
|
| 61 |
+
When the weights are released, they will be licensed under the **JOA Model License** (LICENSE.md in this repository):
|
| 62 |
+
|
| 63 |
+
- You may use, modify, fine-tune, redistribute and sell JOA Small, including in commercial and hosted products.
|
| 64 |
+
- 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.
|
| 65 |
+
- Keep the base model's Apache 2.0 licence and notices.
|
| 66 |
+
- Do not imply endorsement.
|
| 67 |
+
|
| 68 |
+
Nothing is released yet. This section describes the plan, not a grant.
|
| 69 |
+
|
| 70 |
+
## Attribution
|
| 71 |
+
|
| 72 |
+
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.
|
| 73 |
+
|
| 74 |
+
## Contact
|
| 75 |
+
|
| 76 |
+
- General: hello@jobopportunitiesapi.org
|
| 77 |
+
- Legal matters: luca@tzekos.eu
|
| 78 |
+
- Phone: +30 2311 113 603
|
| 79 |
+
- Job Opportunities API (JOA) is a sole proprietorship of Loukas Tzekos, Didaskalisis Papathanasiou Vas. 79, 54629 Thessaloniki, Greece. VAT EL117613696.
|