End skill instability. Build careers that last.
AdaRSS is a workforce intelligence platform that helps individuals, institutions, and governments identify which skills create durable careers in a rapidly changing economy.
As technology evolves, workers increasingly invest years learning tools, frameworks, and platforms that may become obsolete within a short period of time. Educational institutions struggle to keep curricula aligned with industry needs, while employers face growing uncertainty around workforce preparedness.
AdaRSS addresses this challenge by classifying skills according to their long-term stability and relevance, helping people and organizations make better decisions about learning, workforce development, and talent investment.
The modern workforce faces an unprecedented challenge:
- Technologies evolve faster than educational systems.
- Workers frequently invest years mastering unstable skills.
- Training institutions struggle to identify lasting competencies.
- Employers face widening gaps between talent supply and workforce demand.
- Emerging economies bear a disproportionate share of these challenges.
The result is workforce instability, wasted educational investment, and reduced economic mobility.
AdaRSS provides intelligence for identifying durable, transferable, and future-relevant skills.
Using artificial intelligence and workforce intelligence methodologies, AdaRSS analyzes skills and classifies them into three categories:
| Label | Category | Description |
|---|---|---|
| 0 | Enduring Foundations | Skills that remain valuable across industries and technological shifts |
| 1 | Emergent Necessities | Skills experiencing strong growth and increasing market demand |
| 2 | Transient Skills | Skills tied to temporary technologies, frameworks, or trends |
This enables individuals, educational institutions, workforce agencies, and governments to make informed decisions about skill development and talent strategy.
Build careers on durable skills instead of temporary trends.
Design curricula around long-term workforce needs.
Improve employability outcomes through evidence-based skill planning.
Strengthen workforce resilience and economic competitiveness.
Understand the stability and transferability of workforce capabilities.
The future of work requires more than identifying today's popular skills.
It requires understanding:
- Which skills remain valuable over decades.
- Which skills are emerging as critical workforce capabilities.
- Which skills are likely to become obsolete.
- How workers can build resilient career pathways.
AdaRSS exists to provide that intelligence layer.
Our long-term vision is to become the global infrastructure for workforce stability and career resilience.
This repository contains the complete AdaRSS platform:
- ✅ DistilBERT fine-tuned model – classifies skills as Enduring / Emergent / Transient
- ✅ Sentence‑Transformer similarity – personalized career advice based on user history
- ✅ FastAPI backend – JWT authentication, PostgreSQL, rate limiting, usage tracking
- ✅ React + TypeScript frontend – Admin dashboard + client portal
- ✅ B2B-ready – Plans, API keys, client management, and usage monitoring
- ✅ Docker-ready – simple deployment to any cloud
Input: "Data Engineer: Apache Spark"
Output: Emergent (label: 1)
Reasoning: Currently dominant in big data, but competing frameworks emerging.
The system uses Sentence‑Transformer embeddings to compute semantic similarity between a user's work history and a target skill. Based on the similarity score, it delivers one of three types of advice:
| Advice Type | Description |
|---|---|
| Continuous Upscaling | Your background aligns perfectly – deepen your expertise. |
| Career Broadening | Your skills transfer well – leverage your experience to pivot. |
| Change of Profession | Significant pivot – plan for 18-36 months of dedicated learning. |
┌─────────────────────────────────────────────────────────────────────┐
│ React + TypeScript UI │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────────┐ │
│ │ Admin │ │ Client │ │ Login / Auth │ │
│ │ Dashboard │ │ Dashboard │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────────┘ │
└──────────────────────────────┬──────────────────────────────────────┘
│ JWT + API Keys
┌──────────────────────────────▼──────────────────────────────────────┐
│ FastAPI Backend │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ │
│ │ Auth │ │ Plans & │ │ API │ │ Usage / Billing │ │
│ │ (JWT) │ │ Clients │ │ Keys │ │ Tracking │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────────────┘ │
│ ┌───────────┐ ┌───────────────────────────────────────────────┐ │
│ │ Classify │ │ Personalization Engine │ │
│ │ (DistilBERT)│ │ (Sentence‑Transformer Similarity) │ │
│ └───────────┘ └───────────────────────────────────────────────┘ │
└──────────────────────────────┬──────────────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────────────┐
│ PostgreSQL │
│ ┌───────┐ ┌───────┐ ┌─────────┐ ┌───────────┐ ┌─────────────────┐│
│ │ Users │ │ Plans │ │ APIKeys │ │ UsageLogs │ │ Subscriptions ││
│ └───────┘ └───────┘ └─────────┘ └───────────┘ └─────────────────┘│
└─────────────────────────────────────────────────────────────────────┘
- Python 3.10+
- Node.js 18+ (pnpm preferred)
- PostgreSQL 14+
- (Optional) Docker
git clone https://github.com/Altruva-Lab/adarss.git
cd adarss# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up PostgreSQL
# Create a database named 'adarss'
# Update DATABASE_URL in .env file
# Seed the admin user and plans (auto-runs on first start)
python -c "import asyncio; from api.main import bootstrap_defaults; asyncio.run(bootstrap_defaults())"
# Start the backend
uvicorn api.main:app --host 0.0.0.0 --port 8000 --reloadcd adarss-ui
# Install dependencies (using pnpm)
pnpm install
# Start the development server
pnpm run dev- Admin:
.../... - Clients: Created by admin via the Admin Dashboard
adarss/
├── api/
│ ├── __init__.py
│ ├── main.py # FastAPI app – endpoints & models
│ ├── database.py # SQLAlchemy async models (Users, Plans, APIKeys, UsageLogs)
│ ├── dependencies.py # JWT auth, API key verification, admin checks
│ ├── models.py # Pydantic schemas
│ ├── config.py # Environment configuration
│ └── model/
│ └── adarss-distilbert/ # Fine‑tuned DistilBERT model
├── adarss-ui/ # React + TypeScript frontend
│ ├── src/
│ │ ├── components/ # AdminUsers, AdminKeys, Dashboard, Login, Navbar
│ │ ├── context/ # AuthContext (JWT)
│ │ ├── services/ # API client with interceptors
│ │ ├── types/ # TypeScript interfaces
│ │ ├── App.tsx # Routing
│ │ └── index.css # Global styles
│ ├── package.json
│ └── ...
├── data/
│ └── sample_annotated.csv # Training dataset (876 samples)
├── brain.py # Model training script
├── generate_data.py # Synthetic data generator
├── requirements.txt
├── .env.example
└── README.md
AdaRSS is built as a B2B platform with a clear subscription model:
| Plan | Monthly Requests | Price |
|---|---|---|
| Starter | 5,000 | Free |
| Pro | 50,000 | $49/month |
| Enterprise | 500,000 | $199/month |
Admin capabilities:
- Create client accounts
- Assign/upgrade/downgrade plans
- Monitor usage across all clients
- Generate and revoke API keys for any client
Client capabilities:
- Generate/revoke their own API keys
- View usage stats and plan progress
- Monitor key usage (total requests per key)
| Layer | Technology |
|---|---|
| AI Model | DistilBERT (fine‑tuned) + Sentence‑Transformer |
| Backend | FastAPI (Python), SQLAlchemy (async) |
| Database | PostgreSQL + asyncpg |
| Authentication | JWT + bcrypt/passlib |
| Frontend | React + TypeScript, Vite |
| Styling | Vanilla CSS (no Tailwind) |
| Deployment | Docker + Uvicorn |
| Endpoint | Method | Description |
|---|---|---|
/token |
POST | Login with email/password → returns JWT |
| Endpoint | Method | Description |
|---|---|---|
/classify |
POST | { job_title, skill } → { classification, label } |
/advice |
POST | { history, target_skill } → personalized advice |
/me |
GET | Get current user profile + plan + usage |
| Endpoint | Method | Description |
|---|---|---|
/api-keys |
GET | List user's API keys with usage counts |
/api-keys |
POST | { name } → generate new API key |
/api-keys/{key_id} |
DELETE | Revoke an API key |
/api-keys/{key_id}/usage |
GET | Usage logs for a specific key |
| Endpoint | Method | Description |
|---|---|---|
/admin/users |
GET | List all users |
/admin/users |
POST | Create a new client |
/admin/users/{id}/toggle |
PATCH | Activate/deactivate a user |
/admin/users/{id}/plan |
POST | Assign/change a user's plan |
/admin/keys |
GET | List all API keys with owner info |
/admin/generate-key |
POST | Generate key for a specific user |
| Endpoint | Method | Description |
|---|---|---|
/plans |
GET | List available subscription plans |
/ |
GET | Health check / welcome message |
- JWT tokens – expire after 30 minutes (configurable)
- API keys – use
X-API-Keyheader for programmatic access - Rate limiting – 100 requests per minute per API key (configurable)
- Monthly quotas – enforced per user based on their plan
- Password hashing – bcrypt with work factor 12
- CORS – configurable via
ALLOWED_ORIGINSenv var
# Build the image
docker build -t adarss-api .
# Run the container
docker run -p 8000:8000 \
-e DATABASE_URL="postgresql+asyncpg://user:pass@host/adarss" \
-e SECRET_KEY="your-secret-key" \
adarss-api- DistilBERT fine‑tuned on 876 synthetic samples
- B2B admin + client portals
- API key management with usage tracking
- Subscription plans (Starter/Pro/Enterprise)
- 50,000+ real job postings (scraped from LinkedIn, Indeed)
- Retrain on real data for higher accuracy
- Multi‑label classification (skills can be multiple types)
- Stripe integration for self‑service subscriptions
- Integration with LAEM Institute learning platform (Talented)
- Personalized upskilling recommendations
- Global job market analytics
- Open data releases for research
- Reduce workforce instability
- Improve educational alignment
- Increase employability outcomes
- Support workforce planning
- Strengthen economic mobility
AdaRSS is currently seeking:
- Pilot institutions
- Workforce development partners
- Research collaborators
- Grant funding
- Strategic investors
To discuss collaboration, contact: dev.abdulhakeem@gmail.com
- ATLAS AI – open‑source model teaching AI's causal evolution
- Lineage – structured curriculum of AI's intellectual lineage
- LAEM Institute – workforce development across Africa
- Concourx – social network for professionals
Altruva Lab Abdulhakeem Muhammed
- GitHub: altruva-lab
- GitHub: abdulhakeem-muhammed
- LinkedIn: altruva-lab
- LinkedIn: abdulhakeem-muhammed-ibiyemi
Business Source License.
- My brother, for asking the question that sparked this
- Altruva Lab team for believing in the vision
- LAEM Institute for the deployment partnership
- Open‑source community for Transformers, PyTorch, FastAPI, and React
Last updated: June 2026
Status: Production‑ready MVP, actively maintained
Next phase: Investment round for scaling





