Experience Level Mapping for Job Listings
Job titles vary widely between companies. One company's Senior Engineer might be another company's Staff Engineer, Lead Developer, or Principal Engineer. JobsDataAPI maps these titles into canonical experience-level tokens so your product can filter by career stage.
Canonical Tokens
The API uses these seniority tokens:
EN— Entry levelMI— Mid levelSE— Senior levelEX— Executive level
A job can expose both:
experience_level— the primary inferred levelexperience_levels— an array of matched levels
Example:
{
"title": "Staff Software Engineer",
"experience_level": "SE",
"experience_levels": ["SE"]
}
Filtering by Experience Level
Use experience_level to request one or more levels:
curl "$CLEANJOBDATA_API_BASE_URL/jobs?experience_level=SE&title=engineer" \
-H "Authorization: Bearer $CLEANJOBDATA_API_KEY"
You can request multiple levels with comma-separated values:
curl "$CLEANJOBDATA_API_BASE_URL/jobs?experience_level=MI,SE&remote=true" \
-H "Authorization: Bearer $CLEANJOBDATA_API_KEY"
The backend normalizes these values and returns the applied filters in meta.filters_applied.
Why Mapping Matters
Raw title matching is brittle. A search for senior misses titles such as:
- Staff
- Principal
- Lead
- Head of
- Director
Experience-level mapping lets your UI expose clean filters instead of relying on keyword heuristics.
UI Patterns
Common UI labels map to API tokens like this:
| UI Label | API Token |
| --- | --- |
| Entry | EN |
| Mid | MI |
| Senior | SE |
| Executive | EX |
Example:
const seniorityOptions = [
{ label: "Entry", value: "EN" },
{ label: "Mid", value: "MI" },
{ label: "Senior", value: "SE" },
{ label: "Executive", value: "EX" },
];
Combining with Other Filters
Experience-level filters work best with title, location, salary, and remote filters:
curl "$CLEANJOBDATA_API_BASE_URL/jobs?title=frontend&experience_level=SE&remote=true&location=US" \
-H "Authorization: Bearer $CLEANJOBDATA_API_KEY"
This lets you build focused feeds such as:
- senior remote engineers
- mid-level product roles
- executive technology jobs
- entry-level design roles
Recommended Implementation
- Map your UI labels to
EN,MI,SE, andEX. - Send the selected values as a comma-separated
experience_levelquery parameter. - Use
experience_levelfor server-side filtering. - Use
experience_levelswhen you need to display all matched seniority buckets. - Avoid client-side title heuristics for filtering.
Experience-level mapping gives your job board a cleaner, more consistent way to help users find roles that match their career stage.