PayFair employs a tiered growth model for experience-based salary adjustments:
- Early Career (0-3 years): 8-12% annual growth
- Mid-Career (4-7 years): 4-6% annual growth
- Senior (8-15 years): 2-4% annual growth
- Very Senior (15+ years): 2% annual growth
This model is based on:
- Bureau of Labor Statistics Occupational Employment Statistics
- PayScale 2024 Salary Progression Data
- Mincer (1974) earnings equation framework
Source: Bureau of Labor Statistics - National Compensation Survey
You can speed up salary queries and get more structured results by deploying a Wolfram
Language APIFunction to Wolfram Cloud and pointing the backend to that URL.
- Example Wolfram Language
APIFunction(deploy in a Wolfram Cloud notebook):
APIFunction[
{"job" -> "String", "location" -> "String"},
Module[{salary},
(* Try to get median salary for the occupation *)
salary = Quiet[EntityValue[Entity["Occupation", #job], "MedianSalary"]] &[#job];
If[MissingQ[salary] || salary === Missing["NotAvailable"],
<|"error" -> "NoData"|>,
<|"salary" -> salary|>
]
] &, "JSON"]-
Deploy with
CloudDeploy[...]and copy the generated URL. -
Set environment variables in
.env(or export in your shell):
WOLFRAM_CLOUD_API_URL=https://www.wolframcloud.com/obj/your-username/your-api
WOLFRAM_CLOUD_API_KEY=your_optional_key_if_secured- Restart the backend. The analyzer will try the Wolfram Cloud endpoint first (2s timeout), then fall back to the local baseline data immediately if the cloud call is slow or fails.
Notes:
- Public Cloud endpoints (no auth) are fastest to call from the backend since they avoid
authorization handshake; if you need authentication, use a short-lived token and set
WOLFRAM_CLOUD_API_KEY. - Keep the Wolfram Language function minimal (return a numeric salary) to reduce latency.