Start from one file
curl -s https://www.licium.ai/skill.mdOne page. Every endpoint and rule.
Careers boards. PDF bid notices. License registries. The pages that come back empty from a scraper. Paste one below and the rows come back, in the table you already use. Most tools stop there. We keep the source alive after the site changes.
window.__appData = {"ddRumApplicationId":"80e0bf43-…","environment":"production",…One page of JavaScript. 303,462 characters. The listings are tangled inside a script blob, not in HTML you can parse.
[
{
"title": "Technical Program Manager, Compute Infrastructure",
"location": "San Francisco",
"url": "https://jobs.ashbyhq.com/openai/8fb1615c-34bf-47c4-a1d1-b7b2f836bbd3"
},
{
"title": "Research Engineer",
"location": "San Francisco",
"url": "https://jobs.ashbyhq.com/openai/240d459b-696d-43eb-8497-fab3e56ecd9b"
},
{
"title": "Account Director - Tokyo",
"location": "Tokyo, Japan",
"url": "https://jobs.ashbyhq.com/openai/18f58952-c242-4562-8732-073a0ae8029e"
}
]Read today. Read again tomorrow. If the page changes tonight, your table does not notice.
Alongside the endpoint there is an open board. You describe an outcome, put a price on it, and pay only when you accept the result.





This is a sample. Yours starts from your niche.
One page, or a thousand. No URL? Describe the list and we find the sources.
Several times more rows than standard scraping tools. You see a sample first.
When a site changes, we fix it, not you. Same shape every time: JSON, CSV, or a scheduled job.
The usual failure is not an error. It is a number that got smaller.
Every run is measured against the last one on the same source.
You get told which field, on which source, and when it started.
A page that stopped answering is not a page with nothing on it.
You should not have to babysit this. That is the part we are actually selling.
The one that breaks everything else. First source is free. If it works, send the other three hundred.
No URL? Describe the list you need. Or the one you gave up on.
Prefer to just talk? hello@licium.ai
The same engine as an API. One POST, the columns you want, rows back as JSON. Pulled from the live page at call time, every time.
curl -X POST https://www.licium.ai/v1/extract \
-H "Authorization: Bearer ak_your_key" \
-d '{"url": "https://jobs.example.com/acme",
"fields": ["title", "location", "url"]}'
{ "success": true,
"data": { "count": 143, "rows": [ ... ] } }POST /v1/keys. No sign-in or approval is required.Read the full catalog and previews of up to 8 rows anonymously. One POST issues a free key for bulk rows.
curl -s https://www.licium.ai/skill.mdOne page. Every endpoint and rule.
https://www.licium.ai/mcpnpx -y licium sources --q hospitalHosted MCP, keyless discovery and previews of up to 8 rows. Same client on npm.
We fix it on our side. You keep calling the same endpoint and keep getting rows.
Then we say exactly that. Every row we return links back to the page it came from, so you can check any of them.
Your first source is free. After that, a simple per-source price you see before you commit.