Job Monkey

Every open job, with a GUID, kept current.

Clean job data from the employers' own systems. One key, JSON, cursors that never skip. From $1.20 per 1,000 jobs.

Three calls

A sync is three calls. One of them costs money.

1. Load once

GET /v1/jobs pages your countries and systems in GUID order, or a snapshot file does it in one download. Every full job is charged once.

2. Read events

GET /v1/events from your cursor: new, changed with the new values, closed, reopened. Free, in order, never skips.

3. Fetch by GUID

POST /v1/jobs with the GUIDs you want after a new. Closed ones come back marked, free.

Your first sync in three calls

Live numbers

2,830,176

jobs live

72,254

companies

274,948

new jobs today (UTC)

818,812

new in 30 days

247

countries

30

applicant tracking systems

Counted from the tables the API serves. Held closures not counted. As of 2026-11-07 23:27:00 UTC. Sizes by country and system.

One record

A real job from the free sample file, as the API returns it. The fields that begin with ai_ are ours.

{
 "url": "https://stadtwerke-aalen-gmbh.jobs.personio.de/job/2625908",
 "title": "Sachbearbeiter*in Abrechnung - auf 1 Jahr",
 "source": "personio",
 "company": "Stadtwerke Aalen GmbH & Co. KG",
 "derived": [
  "ai_title",
  "ai_salary_currency",
  "ai_visa_sponsorship"
 ],
 "ai_title": "Sachbearbeiter Abrechnung",
 "benefits": "- Sicherer Arbeitgeber seit über 150 Jahren Bezahlung nach Tarifvertrag TV-V inkl. 13. Gehalt\n\n- Nach Möglichkeit flexibles und mobiles Arbeiten\n\n- Verschiedene ...",
 "industry": "Energy",
 "job_guid": "bd246946-53e0-46e5-a039-89a3a51f88b4",
 "ai_skills": [],
 "countries": [
  "Germany"
 ],
 "is_active": true,
 "timezones": [
  "Europe/Berlin"
 ],
 "ai_summary": "",
 "first_seen": "2026-10-14T06:13:29",
 "salary_max": null,
 "salary_min": null,
 "ai_keywords": [],
 "ai_noc_code": "",
 "ai_soc_code": "",
 "description": "Ihre Aufgaben\n\n- Bearbeitung von Umzügen, Neuanlagen sowie Pflege von Stamm- und Vertragsdaten\n\n- Erstellung und Plausibilisierung von Jahresverbrauchs- und Sch ...",
 "expiry_date": null,
 "posted_date": "2026-05-06T13:02:49",
 "sync_status": "Active",
 "ai_education": null,
 "ai_esco_code": "",
 "ai_isco_code": "",
 "ai_languages": [],
 "ai_noc_title": "",
 "ai_onet_code": "",
 "ai_soc_title": "",
 "company_guid": "3398d3c2-ac0e-4a76-ab56-925c5d620171",
 "requirements": "Ihr Profil\n- Erfolgreich abgeschlossene kaufmännische Ausbildung oder eine vergleichbare Qualifikation\n\n- Idealerweise erste Berufserfahrung in der Energiewirts ...",
 "ai_esco_title": "",
 "ai_isco_title": "",
 "ai_onet_title": "",
 "ai_salary_max": null,
 "ai_salary_min": null,
 "closing_since": null,
 "date_modified": null,
 "location_json": [
  {
   "lat": 48.83777,
   "lng": 10.0933,
   "city": "Aalen",
   "state": "Baden-Wurttemberg",
   "country": "Germany",
   "guessed": false,
   "precision": "town"
  }
 ],
 "salary_period": null,
 "ai_job_language": "German",
 "salary_currency": null,
 "ai_workplace_type": null,
 "ai_employment_type": "FULL_TIME",
 "ai_salary_currency": "USD",
 "ai_experience_level": "2",
 "ai_visa_sponsorship": false,
 "remote_location_json": []
}

The data

50 fields on every job, in one screen. ai_ marks a field our models or rules make; derived lists, per job, which of them the posting did not state.

Identity

job_guid company_guid title ai_title source url

Company

company industry

Text

description requirements benefits ai_summary

Terms

ai_workplace_type ai_employment_type ai_experience_level ai_education ai_visa_sponsorship ai_job_language ai_languages

Pay

salary_min salary_max salary_currency salary_period ai_salary_min ai_salary_max ai_salary_currency

Dates

posted_date expiry_date date_modified first_seen

Places

location_json remote_location_json countries timezones

Occupation

ai_onet_code ai_onet_title ai_soc_code ai_soc_title ai_noc_code ai_noc_title ai_isco_code ai_isco_title ai_esco_code ai_esco_title ai_skills ai_keywords

State

is_active sync_status closing_since derived

Every field with its type

The price

From $1.20 per 1,000 jobs, about a third of what the market charges1. One thing is charged: a full job returned by the full feed.

OfferJobs a month$ a month$ per 1,000
Free250 jobs, 25 full-feed calls; 10 free-route calls a day0
Pay as you goany, billed at month end1.20
Pro 100k100,000; overage $1.20 per 1,000990.99
Scale 500k500,000; overage $0.90 per 1,0003490.70
Volume 2M2,000,000; overage $0.60 per 1,0009990.50
Customabove 2,000,000, resellers, bulkby emailfrom 0.40

1. Fantastic Jobs' self-serve plans, read 2026-11-05: $250 at 100,000 jobs a month, $900 at 500,000, $2,800 at 2 million. USD, tax on top, cancel any time.

Plans and the calculator

Free things

What others charge a request for, we do not charge at all.

Changes

Every changed event carries the new values. No refetch, no charge.

Closures

closed and reopened, with closed_at. Free.

Companies and counts

The company list, its changes, and the counts for any cut. Free, and no request quota on a paid key.

Free taste

250 full jobs and 25 full-feed calls a month, 10 free-route calls a day. No card, no end date. Enough to build the loop and test your parser.

Get a free key

Use cases

Backfill a country or a niche in one load, then keep it current from the events: a job closes on your board the day it closes on the employer's. Pay for the jobs you list, not for the polling.

The docs

One page per route with the parameters, the answer shape, a curl and a Python snippet; a how-to guide from the free key to a running sync.