Pricing

Start free. Scale when you need to.

Every plan gets the same normalized job data — titles, companies, structured locations, salary, remote type — just sized differently by request volume (daily on Trial, monthly on paid plans) and jobs per response.

Questions? Email us at [email protected]

Trial

$0/mo

free, forever

  • 300 requests / day across jobs endpoints
  • Up to 6,000 jobs / day (300 requests × 20 jobs)
  • Max 20 jobs per response
  • Full job data access
  • No credit card required — build and validate your product here
  • Apply links redirect through cleanjobdata.com; upgrade for the direct employer URL
Start Trial

or try the playground without signing up

Most Popular

Starter

$97/mo

billed monthly

  • 50,000 requests / mo
  • Up to 2.5M jobs / mo (50,000 requests × 50 jobs)
  • Max 50 jobs per response
  • All filters & metadata
  • Direct employer application URL on every job
  • Geo Suggest API included
  • Licence: power your own job board, app or internal tool. Sync into your own database allowed
Get Started

Pro

$297/mo

billed monthly

  • 200,000 requests / mo
  • Up to 20M jobs / mo (200,000 requests × 100 jobs)
  • Max 100 jobs per response
  • All filters & metadata
  • Direct employer application URL on every job
  • Geo Suggest API included
  • Priority support
  • Licence: power your own job board, app or internal tool. Sync into your own database allowed
Go Pro

Enterprise

Custom

tailored scale

  • Unlimited API requests, no monthly cap
  • Daily flat-file database dumps (gzipped NDJSON)
  • Licence to redistribute, resell & train AI models
  • Dedicated account manager
Talk to Us
For Job Seekers

Solo MCP ($20/mo)

Connect CleanJobData to Claude, Cursor, or any MCP client for your own personal job search. This is a different kind of plan from the job-board tiers above: you can be on this or one of those, not both at once.

  • For personal use via Claude, Cursor, and other MCP clients
  • 20,000 requests / mo
  • Up to 1M jobs / mo (20,000 requests × 50 jobs)
  • Unlock up to 1,000 job application links / mo (each job only counts once)
Get Solo MCP ($20/mo)
Plansolo_mcp
Requests / mo20,000
Up to jobs / mo1M
Application links / mo1,000
ClientClaude · Cursor
Job-board plan—

How syncing into your own database works

Most job boards keep a local copy and top it up on a schedule. Every plan can do this. On Trial, the daily request quota limits how much you can load, so scope it to the slice you need.

  1. First load. Page through the jobs you want with the next_page cursor. Filter by country, role or remote to load just your slice. One request returns up to 50 jobs on Starter and 100 on Pro, so loading N jobs takes about N ÷ page size requests.
  2. Stay current. On a schedule (hourly or daily is typical), fetch what was added since your last run with created_max_age (for example 2h for an hourly run, with some overlap). It filters on when we indexed a listing, so a job posted last week but added today is still caught. Most listings are under 24 hours old when they reach the API.
  3. Remove closed jobs. Call /jobs/expired with max_age to get ids that closed since your last run (up to 1,000 ids per request) and delete them locally.

Job list, single-job and expired-jobs requests all count against the same monthly request quota. Location suggestions and company lookups do not. Your database is as live as your schedule: a sync every hour keeps it about an hour behind the API. There is no separate sync limit, only the monthly quota above and a per-second cap (15 requests a second on Starter, 40 on Pro). As a guide, a Starter quota covers a first load of up to 2.5M jobs, or a smaller first load plus daily updates for the rest of the month.

Read the full sync guide, with code

How many jobs can each plan access?

Requests × jobs per response is the most job records a plan can pull in a period — a day on Trial, a month on every paid plan. It's an upper bound, since it assumes every request returns a full page.

PlanRequestsJobs per responseUp to jobs
Trial300 / day206,000 / day
Starter50,000 / mo502.5M / mo
Pro200,000 / mo10020M / mo
EnterpriseUnlimited100No capor the full dataset as daily dumps
Solo MCP20,000 / mo501M / mopersonal use, not a job-board plan

Each job's application_url depends on your plan. The redirect is a Trial-only behaviour; paid plans get the employer's own page.

Planapplication_url
TrialA cleanjobdata.com/apply/{id} redirect that resolves to the employer's page
StarterThe employer's direct application page
ProThe employer's direct application page
EnterpriseThe employer's direct application page
Solo MCPOmitted from list results; unlock the direct URL per job (1,000 unlocks a month)
FAQ

Pricing questions, answered.

Can I sync all the jobs into my own database?
Yes, that is what most job boards do. Page through the whole catalogue with the next_page cursor, use created_max_age to pull only listings added since your last run, and call the expired jobs endpoint to remove closed ones (see the sync guide). Starter and Pro both allow storing the data in your own database to power your own product. Because each request returns up to 50 jobs on Starter, a full page works out to about $0.04 per 1,000 jobs at best ($97 ÷ 2.5M jobs); real usage is higher because not every request returns a full page.
Does “jobs per response” limit how many jobs I can pull?
No, it's just a page size. Each call returns up to that many jobs at once; page through the rest with the next_page cursor. Your request quota (daily on Trial, monthly on every paid plan) is what limits total volume, and multiplying it by the page size gives the most jobs a plan can pull in that period (for example, 50,000 requests × 50 jobs = 2.5M a month on Starter). That is an upper bound: it assumes every request returns a full page.
Can I resell or redistribute the job data?
Only on the Enterprise plan, which includes an explicit licence for redistribution, resale, and using the data to train AI models. Starter and Pro let you run your own job board, app or internal tool on the data, including a public job board and a copy in your own database. They do not let you pass the raw records on to others, for example through your own API or data feed. See the Terms of Service.
What happens if I go over my request quota?
Requests past your quota return a rate-limit error until it resets — the next day on Trial, your next billing cycle on a paid plan. Every response includes an X-RateLimit-Remaining header so you can watch usage and upgrade before you hit the ceiling.
Can I switch between plans later?
Yes. Upgrades apply immediately with prorated billing; downgrades take effect at the start of your next billing cycle. Switching to or from Solo MCP works the same way, replacing whichever job-board tier you were on.
Do I need a credit card to try the API?
No. The Trial plan is free forever and doesn't ask for a card. It includes 300 requests/day at up to 20 jobs per response (up to 6,000 jobs/day) — resetting every day, not a fixed monthly bucket you can run out of, so there's room to actually build and test your product before you ever need to upgrade. Apply links redirect through cleanjobdata.com on Trial; paid plans get the employer's direct URL.
How do I sync jobs on 300 requests/day?
You don't sync the whole catalog on Trial — that's what Starter and Pro are for. Instead, scope a request to one slice you actually need (one country and role, for example), page through just that slice once with next_page, and spend the rest of each day's budget polling created_max_age for new listings and /jobs/expired for closed ones. That's enough to run a real, working prototype of a focused job board while you're building an audience.
What's the difference between Solo MCP and the job-board plans?
The job-board tiers (Trial through Enterprise) are for building a product on top of the data. Solo MCP is a separate, personal-use plan for searching jobs yourself through Claude, Cursor, or another MCP client, not a rung on that same ladder. You're on one or the other, not both.
Which endpoints count against my request quota?
Job list, job detail and expired-jobs requests count. Geo Suggest and Companies requests don't use up your quota (they only have per-second rate limits). A single call that returns a page of results counts once, regardless of how many jobs come back in that page (up to your plan's limit).

Have more questions?

Rate limits, billing, upgrading between plans — see our FAQ, or reach out directly.