AI job risk calculator
The AI job risk calculator turns three practical ratings into a consistent estimate of how exposed a role may be to automation.
Run — free
Rate the job's task repetitiveness, required creativity, and meaningful human interaction from zero to ten. The calculator combines those signals into an automation risk percentage and a low, moderate, or high label. It is designed for comparing roles or scenarios, not predicting whether a particular person will lose a job. Use the result as a structured starting point for workforce planning, career conversations, and job redesign.
Rate the work, not the job title
Begin by describing what people in the role actually do during a normal week. Job titles hide enormous differences: one operations coordinator may spend most of the day copying information between systems, while another resolves unusual supplier problems and negotiates with partners. Give repetitiveness a high rating when tasks follow stable rules, recur frequently, and have predictable inputs and outputs. Give creativity a high rating when success depends on forming original ideas, interpreting ambiguous situations, or making judgments without a fixed procedure. Give human interaction a high rating when trust, empathy, persuasion, care, negotiation, or live coordination materially affects the outcome. Use the full zero-to-ten scale and avoid rating a factor based on a single memorable task. If a role contains several very different workstreams, calculate each workstream separately and then discuss their relative share. This produces a more useful picture than forcing a diverse occupation into one average score. Keep brief notes supporting each rating so colleagues can challenge assumptions and repeat the assessment later.
Understand how the score is calculated
The model assigns half of the score to repetitiveness, three tenths to the absence of required creativity, and two tenths to the absence of meaningful human interaction. Each rating is accepted only from zero through ten. Repetitiveness raises exposure directly, while creativity and human interaction reduce it because the calculator reverses those two scales. The weighted result is converted to a percentage and rounded to one decimal place. Percentages below 34 are labeled low, values from 34 through 66.9 are moderate, and values from 67 upward are high. These weights make the method simple, deterministic, and easy to audit; identical inputs always return identical outputs. They are an analytical framework rather than a labor-market forecast. The calculator does not use salary, industry adoption, regulation, physical dexterity, technology cost, data availability, or the pace at which organizations can change. Those variables can substantially affect real deployment. Treat the percentage as a comparison index based on the three supplied characteristics, not as a literal probability that an entire job will disappear.
Turn the estimate into a better decision
Use the result to identify questions, investments, and redesign opportunities rather than to make automatic personnel decisions. A high score can reveal a strong case for examining which repetitive tasks software could assist, what controls would be required, and how saved time could move toward customer service, quality, or creative work. A moderate score often signals a mixed role: some tasks may be readily automated while others depend on context or relationships. A low score does not mean technology will have no effect; tools can still augment research, communication, scheduling, and preparation. Compare multiple realistic scenarios, such as the role today and the role after a proposed process change. In team discussions, show the three input ratings alongside the result so disagreement focuses on observable work rather than fear about a label. Revisit the assessment when responsibilities or available tools change. For consequential workforce planning, combine this output with task inventories, employee consultation, operational evidence, legal review, and sector-specific research. The useful outcome is a clearer plan for adaptation, training, and responsible augmentation—not a verdict about an individual worker's value or future.
What you can do with it
Compare roles consistently
Apply the same three-factor framework across a team to identify roles that deserve a deeper task-level automation review.
Plan career development
Explore how adding creative judgment or relationship-centered responsibilities could change the automation exposure of a future role.
Evaluate job redesign
Score a role before and after a proposed workflow change to discuss which tasks should be automated, augmented, or retained.
FAQ
What does the calculator return?
It returns an automation risk percentage rounded to one decimal place and a low, moderate, or high risk label.
How should I choose the ratings?
Rate the job's typical tasks from 0 to 10 using evidence from real workflows. Assess repetitiveness, required creativity, and meaningful human interaction separately.
Does a high score mean the job will disappear?
No. The score is a structured comparison based on three characteristics, not a prediction of layoffs or a probability that a whole occupation will vanish.
What happens if a rating is outside the scale?
The request returns an invalid input error if any rating is below 0, above 10, missing, or not a finite number.
How much does an API calculation cost?
Each API request costs $0.002. The calculation is deterministic and does not call an external AI model.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/biz/ai-job-risk \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"repetitiveness":8,"creativity":3,"human_interaction":4}'const res = await fetch("https://api.kit.forhosting.com/biz/ai-job-risk", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"repetitiveness": 8,
"creativity": 3,
"human_interaction": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/ai-job-risk",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"repetitiveness": 8,
"creativity": 3,
"human_interaction": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/ai-job-risk", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"repetitiveness":8,"creativity":3,"human_interaction":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"repetitiveness":8,"creativity":3,"human_interaction":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/ai-job-risk", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"repetitiveness": 8,
"creativity": 3,
"human_interaction": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.ai_job_risk",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |