MLOps Community Jobs API: ML & AI Jobs Archive
Pricing
$0.20 / 1,000 job results
MLOps Community Jobs API: ML & AI Jobs Archive
$0.2/1K jobs | Extract ML, MLOps and AI jobs from the small MLOps Community job board with the complete description, employer and posting date. Newest stored posting dated 2026-01-25. No login or API key.
MLOps Community Jobs Scraper: ML & AI Jobs (No Login)
$0.2/1K jobs | Extract ML, MLOps and AI jobs from the small MLOps Community job board with the complete description, employer and posting date. Newest stored posting dated 2026-01-25. No login or API key. Independent, unofficial tool. Not affiliated with or endorsed by MLOps Community.
MLOps Community Jobs Bulk Scraper
Our scraper collects job postings from the MLOps Community job board and lets you filter by keyword, work arrangement and posting age. Every row carries the complete original description in text and HTML, the employer, the posting date, the work schedule and a link to the posting on jobs.mlops.community. It is ideal for ML and AI job alerts, talent-market research and niche job-board aggregation. Optional AI enrichment and English translation run on us: no key to bring and no extra charge.
It serves the postings stored from the public MLOps Community job board, up to 200 per run. This is a small board (51 postings counted on 2026-09-24) and its newest stored posting is almost nine months old: in our tests on 2026-10-16 it was dated 2026-01-25. Expect windows such as 7d or 30d to return nothing, and check the posting dates before you rely on a result.
- Want recent remote jobs for ML and software roles? Our Himalayas Actor holds a rolling window of fresh postings, and most of its sampled rows carry a salary. Our Jobgether Actor does the same for remote postings from Jobgether, without a salary on most rows.
- Looking for ML research positions such as PhD and postdoc? Use our EURAXESS Actor. For jobs at Y Combinator startups, use our Y Combinator Actor.
- Need a broader search across employers? Use our LinkedIn Actor.
Key Benefits
- No login or API key: the Actor reads stored postings, so it never asks the MLOps Community website for anything on your behalf and you need no account there.
- Low pricing: $0.20 per 1,000 jobs, with no start fee.
- Quick to try: ten jobs came back in under 8 seconds of run time in our test runs.
- Complete descriptions: every row has the full original text and HTML. Postings without a verified full description are not delivered.
- Checked on a schedule: each run's
RUN-SUMMARYshows when the source was last checked (sourceFreshAt). - No repeats across runs: schedule the same search daily and postings already delivered to you are skipped.
How It Works
- Provide your search. Every field is optional. Results come newest first, and an empty search returns the newest stored postings:
- Keyword (e.g.,
machine learning,data engineer,MLOps): a case-insensitive phrase matched against the title, the employer name and the complete description. Because it also reads the description, a keyword can match jobs that only mention it. - Work arrangements (
remote,hybrid,onsite): empty means all. Postings in our test runs wereonsiteorhybridwhen the board stated one, and many stated none (a posting titled "Remote" in our tests carried none), so this filter can drop rows with no stated arrangement. - Posted within (e.g.,
48h,7d,2w,1m, orany): default isany.
- Keyword (e.g.,
- Run the Actor. Results go to the dataset, and the key-value store holds
RUN-SUMMARYwith the data freshness, the candidates, the delivery counts and the final status. - Run the same search again and you get only postings you have not received yet; set
dedupe.enabledtofalseto see everything again.
More settings:
maxItems- Maximum jobs per run. The upper bound is 200, and0also means 200. Filters and repeat suppression can return fewer.dedupe- Repeat-delivery suppression. On by default. Postings already delivered to your Apify user for the same search are skipped. A non-emptydedupe.keynames the alert history, so searches that use the same key share delivery history within your account. If delivery or the ledger cannot be confirmed, the run fails instead of reporting a delivery it cannot prove.filters- Advanced filters over the normalized fields. See "Advanced filters" below.aiEnrichmentandtranslateToEnglish- Optional processing, both off by default. See "Optional AI enrichment and English translation" below.
Cost: you are billed $0.0002 per job delivered, which is $0.20 per 1,000 jobs. There is no start fee, and Apify platform usage for the run is included in that price.
The board shows its own posting date. When it has none, the reported date is the first time the posting was seen, and later refreshes do not make a posting look new.
Postings are returned in the language they were written in. Turn on translateToEnglish if you need English display text.
If job data is unavailable or stale, the run fails instead of falling back to scraping the website.
Data You'll Receive
- Job details: title, complete description (text and HTML), posting date and work schedule such as
full_time(every row in our test runs). - Employer: company name. There is no separate employer link or logo field.
- On most jobs: location text such as
United Kingdomindata.locations(7 or 8 of 10 rows in our test runs) and anonsiteorhybridarrangement (also 7 or 8 of 10). - Salary: none of the rows in our test runs carried one, so
data.compensationwas empty. - Link: the posting URL on jobs.mlops.community (
identity.url). The board gives no separate apply link, sodata.application.urlis empty. - Identity:
identity.sourceandidentity.externalId, a stable key for comparing runs.
Missing facts stay null, and a known empty list is [].
Sample output data
Here is an example job from this Actor. Descriptions are shortened here; real rows carry the full text.
{"llm": {"model": null,"status": "not_requested","provider": null,"completedAt": null,"filledFields": [],"promptVersion": null,"requestedFields": []},"raw": {"description": "We’re looking to hire our first Founding ML engineer to help shape and lay the foundations of ML/AI at CUR8. From a team perspective, you will be work [...]","descriptionHtml": "<p><span style=\"color: rgb(49, 59, 70);\">We’re looking to hire our first Founding ML engineer to help shape and lay the foundations of ML/AI at CUR8. From a team perspect [...]"},"data": {"title": "Founding ML Engineer","company": {"url": null,"name": "Foundation Partners","logoUrl": null,"sourceId": null,"department": null},"domains": null,"funding": {"programme": null},"benefits": null,"locations": [{"raw": "United Kingdom","city": null,"region": null,"latitude": null,"longitude": null,"postalCode": null,"countryCode": null,"countryName": "United Kingdom","facilityName": null,"streetAddress": null,"positionsAvailable": null}],"seniority": {"raw": null,"levels": null},"domainsRaw": null,"employment": {"startDate": null,"hoursPerWeek": null,"startDateRaw": null,"contractTypes": null,"workSchedules": ["full_time"],"durationMonths": null,"hoursPerWeekRaw": null,"workArrangements": ["hybrid"],"applicantLocationRequirements": null},"application": {"url": null,"email": null,"deadline": null,"postedAt": "2025-10-13T08:59:32Z","directApply": null,"availability": null,"applyMethodRaw": null,"hiringContacts": null,"referenceNumber": null,"selectionProcess": null,"applicantSnapshot": null,"eligibilityCriteria": null,"referenceNumberIssuer": null},"constraints": {"visaSponsorship": null,"securityClearance": null,"workAuthorization": null,"locationPreference": null},"compensation": {"raw": null,"exact": null,"period": null,"maximum": null,"minimum": null,"currency": null},"requirements": {"education": null,"languages": null,"experience": null,"certifications": null,"requiredSkills": null,"preferredSkills": null,"skillsQualifications": null,"specificRequirements": null},"classification": {"industries": null,"jobFunctions": null}},"custom": {"data": {"slug": "founding-ml-engineer-foundation-partners-4-years","jobId": "68ecbf10d64f4e4e3c046e8d","vendor": "artha-job-board"}},"identity": {"url": "https://jobs.mlops.community/job/founding-ml-engineer-foundation-partners-4-years","source": "mlops_community","externalId": "68ecbf10d64f4e4e3c046e8d"},"schemaVersion": "nomad-agent-job-v1"}
Every row follows the same nomad-agent-job-v1 format with six roots: schemaVersion, identity, data, llm, raw and custom. Source-specific facts sit in custom; custom.schemaId identifies the version of the custom.data shape.
Advanced filters
Use the shared nomad-agent-job-filter-v1 expression format for fields other than the ones above. This example keeps jobs located in the United Kingdom:
{"schemaVersion": "nomad-agent-inventory-search-v1","keyword": "engineer","postedWithin": "any","maxItems": 100,"filters": {"schemaVersion": "nomad-agent-job-filter-v1","expression": {"field": "data.locations[].countryName", "operator": "eq", "value": "United Kingdom"}},"dedupe": {"enabled": true, "key": ""}}
Location filters only match postings that have a location (7 or 8 of 10 rows in our test runs). None of our sampled rows had a salary, so salary rules are unlikely to help. With AI turned off, filters check source facts only, and unknown values do not satisfy ordinary comparisons.
With AI enrichment on, rows that visibly fail your filter are removed before any AI call, and unknown values are checked again after enrichment.
Optional AI enrichment and English translation
Both are independent opt-ins, off by default, funded by us. You do not supply an API key, and they are not billed separately.
{"schemaVersion": "nomad-agent-inventory-search-v1","keyword": "machine learning","maxItems": 50,"aiEnrichment": {"enabled": true, "accuracy": "silver"},"translateToEnglish": true,"dedupe": {"enabled": true, "key": ""}}
- AI enrichment fills supported unknown fields and records its provenance in
llm. It cannot overwrite a known source fact. Jobs whose requested enrichment fails are withheld, so you can get fewer rows. - Translation turns selected display text into English.
raw.descriptionandraw.descriptionHtmlalways keep the original text, and filters run on the normalized values before translation. - Only when you turn them on, description text goes to OpenRouter for extraction, and selected display text goes to DeepL for translation. The configured routes deny provider data collection but do not guarantee zero retention or EU-only processing. Extracted facts and translations may be cached by us.
- Without enrichment,
llm.statusisnot_requested. When enrichment runs, the key-value store also holdsOWNER-USAGE, which separates actual provider costs from unpriced token counts. - The top-level
accuracyfield is a compatibility override foraiEnrichment.accuracy. It never turns enrichment on by itself.
MLOps Community Jobs API
Results are stored in a dataset that you can export as CSV, JSON or Excel, or read on demand through the Apify API. Use latest as the build and keep the build number your run returns if you need to reproduce a result.
Support and Feedback
We improve these scrapers from your feedback. If something breaks or you need a filter:
- Open an issue on the Actor's Issues tab.
- If this Actor saved you time, a short review on the Store helps other users find it.
Good to know
- Coverage follows what the MLOps Community job board listed when we last stored it, and only postings with a verified complete description are delivered. The Actor does not read the website at run time.
- Restrictive filters, repeat suppression or a narrow
postedWithincan produce zero results. A successful run status alone does not prove complete coverage, so check the dataset andRUN-SUMMARYtogether.
Migrating from the previous release
schemaVersionmust benomad-agent-inventory-search-v1. Inputs from the previous release, which used source-specific fields, fail with migration guidance. Replace them withkeywordorfilters.identity.externalIdis the source's own posting ID as represented in this output, and it may be spelled differently from earlier releases. The stable key is the pair(identity.source, identity.externalId). Update stored comparison keys; existing delivery history can permit a one-time repeat.customnow carries source facts under a newcustom.schemaId. The other five roots keep thenomad-agent-job-v1contract.- Relative posting-age windows are limited to 36500 days. Use
anyfor an unrestricted search.
Run evidence
- Test run on 2026-10-16, build 1.0.5, run
RBIiupQWLUyceReAE: keywordmachine learning, 10 jobs, 7 different employers, all 10 with a complete description. Run time 4.4 seconds. The postings were dated between 2025-07-24 and 2026-01-16. - Two runs for
engineer(NhFcLDcWPUzJAZXAc) and for an empty keyword (ENmtte5O4dAE9QP6i) returned the same 10 jobs from 9 different employers, dated between 2025-08-11 and 2026-01-25. Run times were 6.8 and 7.2 seconds. - In all three runs the source had been checked within about 3 minutes before the run started (
sourceFreshAt16:50 UTC). - No sample row carried a salary or
data.application.url. Locations and work arrangements were present on 7 or 8 of 10 rows. - On 2026-09-24 we counted 51 postings on the board.
- Filter test, run
gOPZnTpoLvzSjkSVK: keywordengineerwith the United Kingdom rule from "Advanced filters" returned 3 jobs, all located in the United Kingdom. - Cost per run = jobs delivered x $0.0002.
Job Atlas
Explore the Job Atlas job-data and matching Actors. Use latest and keep the build number each run returns.
Product guide | Source and client examples | Setup skill | Setup guide
Independent tool. We built and run this Actor ourselves. MLOps Community does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from.