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

FileWhat it contains
/feed/jobs.jsonAll 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.csvThe same roles as one CSV table (UTF-8, comma-separated), one row per role. Facts only, no descriptions.
/feed/jobs.xmlRSS feed of new roles.
/feed/pay-index.jsonMedian and typical hourly pay by field and platform, with sample sizes and method.
/feed/pay-index-chart.svgThe pay index chart as an SVG image.
/llms.txtPlain-text overview and role list for AI assistants (llms.txt and llms-full.txt).
/feed/jobs/<role-slug>.mdAny 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.

ColumnMeaning
idStable role identifier (the slug in the role's URL).
urlThe role's page on SOJI. Cite and link to this.
titleRole title, in the language of the file.
platformPlatform that posts the role.
remotetrue if the role is fully remote.
locationWhere applicants can be located, as written on the listing page.
worldwidetrue if open to applicants from any country.
eligible_countriesCountries applicants can be in, separated by |. Empty when worldwide or unspecified.
contract_typecontract, part_time or full_time.
pay_minLowest listed pay. Empty if the listing shows none.
pay_maxHighest listed pay. Equals pay_min for a single rate.
pay_currencyCurrency of the pay figures (mostly USD).
pay_periodPeriod the pay refers to (hour).
fieldsFields the role belongs to (for example Medicine, Law), separated by |.
languages_requiredLanguages the role requires, separated by |.
posted_atWhen SOJI first listed the role (ISO 8601, UTC).
last_verified_atWhen SOJI last confirmed the role is open (ISO 8601, UTC). Empty if never.
valid_throughExpiry 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.

CC BY 4.0 →

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.