react returns zero projects. react-js returns hundreds. Both requests succeed with HTTP 200, and nothing in either response says which one was a mistake.
The failure mode
An unknown skill slug on Workana does not produce an error. It produces an empty result set with a 200 status, which is indistinguishable from a skill nobody is currently hiring for.
That is the worst shape a failure can take, because the wrong conclusion is reasonable: you asked for React projects in Argentina, you got zero, you conclude the market is dead. The market is fine; the slug was wrong.
Finding the right slug
From Workana's own URLs. Filter by the skill on the site and read the slug out of the address bar. That is authoritative, and it stays correct as Workana adds skills.
The pattern is usually lowercase and hyphenated, but the exceptions are exactly where the trouble is: framework names with a suffix (react-js), names with a dot removed, names in Spanish. There is no rule that predicts them, which is why guessing is not a strategy.
One skill per query
Workana keeps the first skill value and silently drops the rest, so a two-skill query is a one-skill query wearing a disguise. Run one query per skill and union the results, deduplicating on slug.
This is the same silent-drop behaviour as the thirteen decorative parameters — the site accepts more input than it uses, without saying so.
Why validation happens before the run
The Actor checks the slug first and tells you what is wrong instead of charging you for nothing. Under pay-per-result that costs you no money either way — an empty run delivers no rows — but it costs you something worse: a conclusion.
Validating before the run turns a silent wrong answer into a loud error message, which is the entire point.
Why the field is free text
It would be friendlier to offer a dropdown. It would also go stale: Workana keeps adding skills, and a fixed list in a scraper becomes a list of the skills that existed when the scraper was written.
So the field is free text — you can use any slug the site supports the day you run it — with validation to catch the typo. That trade is deliberate: flexibility where the platform changes, checking where a human can be wrong.


