
Bilingual Skills Engine
Private Arabic-English skills taxonomy and search library with autocomplete, typo matching, and job-text extraction.
Project Overview
Skills Engine is a private JavaScript library and local browser demo for searching a bilingual skills taxonomy. It serves the skills-matching work used in Leviro's job tooling. A developer can load the generated data, search for a skill, inspect its place in the taxonomy, or extract skills from a job description.
The problem
Job posts use different spellings and languages for the same skill. A plain string search misses aliases, Arabic letter variants, and small typing errors. Broad category labels can also make a job alert too noisy. The engine creates one searchable representation from source lists and returns the taxonomy path with each match.
Key features
- An offline build pipeline loads source skills, merges aliases, classifies entries, and writes JSON data files.
- Exact lookup resolves a normalized name or alias to a canonical skill.
- Prefix suggestions use sorted keys for autocomplete.
- Token search finds skills when the words appear in a different order.
- Trigram candidates and edit distance support typo-tolerant lookup.
- Arabic normalization handles diacritics and common letter variants before matching.
- Job-text extraction prefers longer non-overlapping skill phrases and returns their taxonomy paths.
- Browser pages let a developer browse the tree and test extraction on sample text.
Technical architecture
Build scripts read source data and classification rules, then emit skills and tree JSON files. At runtime, an ES module loads those files into memory and builds exact maps, a sorted prefix list, token postings, and a trigram index. The extractor scans word groups in supplied job text and calls the same resolver. A small Node.js server serves the browser demos; the core modules can also be imported directly.
Engineering highlights
- Canonical names retain priority when another skill uses the same text as an alias.
- Longest-match span selection avoids counting a phrase and its contained word as separate matches.
- The targeting module distinguishes specific skills from broad leaves before planning notifications.
- The package has no runtime npm dependencies.
Image Gallery
No media available for this project.
Client Reviews
Feedback from people who used or collaborated on this project.
Share your experience with this project
Related projects

WhatsApp Channel and Chat API
Self-hosted API for WhatsApp channels and private chats, with media checks, send queues, and SQLite deduplication.

Vertex AI Proxy
Open-source Gemini-compatible API gateway for Vertex AI with prepaid keys, usage tracking, limits, and an admin console.

Levix Self-Hosted WhatsApp Bot
MIT-licensed WhatsApp bot with AI tools, moderation, scheduling, Android hosting, and a companion website.