--- license: apache-2.0 language: - en library_name: onnx base_model: BAAI/bge-small-en-v1.5 pipeline_tag: text-classification tags: - business - website-classification - industry-classification - operating-model - requstory --- # Requ Classify Small (preview) **Reads a company's website and says what kind of business it is and which parts of the site describe real work.** 33 million parameters, about 50 MB, runs on a laptop CPU. Made by [Requstory Labs](https://requstory.com/lab) in Manchester, UK. This is the model behind the free company maps on [requstory.com](https://requstory.com): it gives each map an industry, finds the offerings, teams and processes on the website, and picks the sentences that prove them. > **Preview.** On 341 held-out websites it gets the industry right 52% of the time (top 3: 75%). Our release target is > 65%. Use the `sure` flag: when the model is sure (36% of sites) it is right 75% of the time. ## What it does | Task | Output | Classes | | --- | --- | --- | | Industry | one industry with a probability, `sure`, and the top 3 | 64 industries, from accounting to water and waste | | Item type | a type for each menu item, heading and button | offering, team, activity, audience, website, other | | Page stage | the customer-journey stage of each page | discover, evaluate, buy, start, use, support, company | | Process evidence | sentences that show a known business process of that industry | ~500 processes in 344 teams | ## Use it ```bash pip install -r requirements.txt python requ_classify.py < example.json ``` ```python from requ_classify import RequClassify model = RequClassify() # loads from this folder result = model(site) # site = {"name", "description", "pages": [{"url", "title", "text", "items": [...]}]} print(result["industry"]) # {"id": "dental", "p": 0.81, "sure": true, "top3": [...]} ``` Each page's `items` are `{"text", "kind"}` with kind one of `menu`, `footer`, `h1`, `h2`, `h3`, `button`. Read a site's homepage and up to 5 inner pages; that is what the model was trained on. ## How it works 1. Text is embedded with [bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5) (frozen, quantised ONNX). 2. Small linear heads, trained on our labels, give the industry, item types and page stages (`heads.safetensors`). 3. Process evidence: a gate keeps sentences that describe work, then matches them to the industry's processes in `library.json`, using the library wording and similar sentences from training sites (`memory`). ## Training data - 2,536 business websites found through Wikidata and OpenStreetMap, read from their public pages (homepage and up to 5 inner pages). - Labels came from an open-weight teacher model (DeepSeek, MIT licence) reading the same pages, checked by hand on a sample. - The industry and process library (64 industries, 344 teams, ~500 processes) was written for Requstory and reviewed by people. - No page text is published in this package. `memory` holds sentence embeddings from training sites, not the sentences. ## Results On 341 held-out websites (`eval.json`): | Measure | Score | | --- | --- | | Industry, top 1 | 52% | | Industry, top 3 | 75% | | Share of sites where the model is sure | 36% | | Industry when sure | 75% | | Item type | 68% | | Page stage | 55% | | Process match, top 1 | 41% | | Before this model (rules) | 21% industry right | ## Limits - English only. Sites built entirely in JavaScript need a browser to read first. - Known confusions: trades and personal services (a plumber labelled as beauty services), holding groups, marketplaces. - It describes what a website shows, not how a company really works inside. - Do not use it to make decisions about people, credit or employment. ## Licence Apache 2.0 for the heads, library and code. The bundled bge-small-en-v1.5 model is MIT (see `NOTICE`). ## Cite ``` @misc{requstory2026requclassify, title = {Requ Classify Small}, author = {Requstory Labs}, year = {2026}, url = {https://huggingface.co/requstory/requ-classify-small} } ```