← back to gallery

AI Job Risk Scanner

Get your AI automation risk score and upskilling roadmap in 30 seconds

productivityaijobscareerautomationupskillingworkforce
Open product ↗

AI Job Scanner

Scan any job description to get an AI automation risk score across 6, 12, and 24-month horizons — plus a personalized upskilling roadmap.

Built for RNDLAB. Powered by Claude via OpenRouter.

What It Does

AI Job Scanner answers the question every knowledge worker is asking: "Will AI replace my job, and when?"

  1. Paste a job description (or just a role title)
  2. Get an AI Risk Score (0–100) with breakdowns by 6, 12, and 24-month horizons
  3. See task-level automation probabilities — which specific duties are at risk first
  4. Generate a personalized upskilling roadmap — phased, concrete, resource-linked
  5. Share your risk card — shareable link for each scan result

Data Sources

| Source | What it provides | How used |
|--------|-----------------|----------|
| OpenRouter API (anthropic/claude-sonnet-4.5) | AI automation risk analysis | Real-time LLM call per scan |
| User-provided job descriptions | Input for analysis | User-generated data (not mock) |

No external data feeds are consumed. All analysis is performed on-demand via Claude AI based on the user's input. Results are stored in SQLite for history/sharing.

When AI is unavailable: The UI shows a clear error message (503 AI service unavailable). No fake scores are generated as fallback.

Running Locally

# 1. Install dependencies
npm install

# 2. Configure environment
cp .env.example .env
# Edit .env — set OPENROUTER_API_KEY

# 3. Start
npm start

# Visit: http://localhost:4711/ai-job-scanner
```

API Endpoints

| Method | Path | Description |
|--------|------|-------------|
| GET | /ai-job-scanner/health | Health check |
| POST | /ai-job-scanner/api/analyze | Analyze a job role |
| GET | /ai-job-scanner/api/scan/:id | Get scan by ID |
| GET | /ai-job-scanner/api/share/:token | Get scan by share token |
| GET | /ai-job-scanner/api/scans/recent | Recent scans (public) |
| GET | /ai-job-scanner/api/scans/top-risk | Highest risk roles scanned |
| POST | /ai-job-scanner/api/roadmap/:scanId | Generate upskilling roadmap |
| GET | /ai-job-scanner/api/roadmap/:scanId | Get existing roadmap |
| GET | /ai-job-scanner/api/stats | Platform statistics |

POST /api/analyze

{
  "role_title": "Data Analyst",
  "job_description": "Optional full JD text..."
}

Response:
``json
{
"id": "uuid",
"share_token": "abc123def456",
"analysis": {
"role_title": "Data Analyst",
"industry": "Finance",
"overall_risk_score": 68,
"risk_summary": "...",
"risk_horizons": {
"6mo": { "score": 35, "label": "Low", ... },
"12mo": { "score": 58, "label": "Medium", ... },
"24mo": { "score": 82, "label": "High", ... }
},
"task_breakdown": [...],
"human_moat": [...],
"comparable_roles": { "safer": [...], "riskier": [...] }
}
}
``

Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| PORT | No | HTTP port (default: 4711) |
| NODE_ENV | No | Environment (production/development) |
| OPENROUTER_API_KEY | Yes | OpenRouter API key for Claude access |
| DATABASE_PATH | No | SQLite DB path (default: ./data.db) |

Stack