Open data
Open data on remote and AI-training jobs
SOJI publishes facts about the open roles it lists as free, read-only data. No key and no sign-up. Updated daily.
Files
| File | What it contains |
|---|---|
| /feed/jobs.json | All open roles as a JSON Feed, with pay, eligibility and the fields below. Add ?lang=pt, es, fr, de, it or hi for another language. |
| /feed/jobs.csv | The same roles as one CSV table (UTF-8, comma-separated), one row per role. Facts only, no descriptions. |
| /feed/jobs.xml | RSS feed of new roles. |
| /feed/pay-index.json | Median and typical hourly pay by field and platform, with sample sizes and method. |
| /feed/pay-index-chart.svg | The pay index chart as an SVG image. |
| /llms.txt | Plain-text overview and role list for AI assistants (llms.txt and llms-full.txt). |
| /feed/jobs/<role-slug>.md | Any role as Markdown: /feed/jobs/<role-slug>.md |
MCP server for AI assistants
SOJI runs a public, read-only Model Context Protocol (MCP) server, so an AI assistant can search the open roles and read the pay index directly. No key and no sign-up. Add this address to a client that supports remote MCP servers (Streamable HTTP):
https://hiring.sojistudio.com/mcp
Tools
- search_jobs: Find open roles by words, field, platform, country and minimum pay.
- get_job: One role by id, with a short summary and its links.
- pay_stats: Median and typical hourly pay by field and platform.
- list_filters: The fields, platforms and countries in use, with counts.
Up to 60 requests a minute per caller. Answers are CC BY 4.0: credit SOJI and link to each role.
Columns in the CSV
Column names and descriptions are in English in every language.
| Column | Meaning |
|---|---|
| id | Stable role identifier (the slug in the role's URL). |
| url | The role's page on SOJI. Cite and link to this. |
| title | Role title, in the language of the file. |
| platform | Platform that posts the role. |
| remote | true if the role is fully remote. |
| location | Where applicants can be located, as written on the listing page. |
| worldwide | true if open to applicants from any country. |
| eligible_countries | Countries applicants can be in, separated by |. Empty when worldwide or unspecified. |
| contract_type | contract, part_time or full_time. |
| pay_min | Lowest listed pay. Empty if the listing shows none. |
| pay_max | Highest listed pay. Equals pay_min for a single rate. |
| pay_currency | Currency of the pay figures (mostly USD). |
| pay_period | Period the pay refers to (hour). |
| fields | Fields the role belongs to (for example Medicine, Law), separated by |. |
| languages_required | Languages the role requires, separated by |. |
| posted_at | When SOJI first listed the role (ISO 8601, UTC). |
| last_verified_at | When SOJI last confirmed the role is open (ISO 8601, UTC). Empty if never. |
| valid_through | Expiry date given by the platform (ISO 8601, UTC). Empty if none. |
License and attribution
Our compilation of this data is shared under Creative Commons Attribution 4.0 (CC BY 4.0). You may copy, redistribute and build on it, including commercially, as long as you credit SOJI and link to hiring.sojistudio.com. Role titles and facts come from the public pages of the platforms that post them; the roles themselves stay subject to those platforms' own rights and terms.
Cite as
SOJI open data, accessed 2026-11-05. https://hiring.sojistudio.com/open-data (CC BY 4.0)
Limits
- Pay is the range each listing shows, per hour and in USD unless a currency is given. It can change.
- A role can close between two updates. Check last_verified_at and the role's page.
- There is no personal data here: the files describe roles, not people.
- SOJI is independent and not affiliated with the platforms it lists. The data is not an offer of employment.
- We update daily. If you use the files often, cache them and keep to a few requests per hour.
Questions or corrections
Write to info@sojistudio.com.
