Skip to main content
POST
Search Jobs

Overview

The Search Jobs endpoint lets you programmatically query job listings from the Mokaru database. It is the starting point for most automation workflows - search for relevant positions, then pipe the results into your application tracker or external tools. Common use cases:
  • AI agent job hunting - connect Claude Desktop, GPT, or any AI agent to search for jobs on your behalf. The agent can evaluate listings against your preferences and automatically create applications for the best matches.
  • n8n and Make workflows - build automated pipelines that search for new jobs on a schedule, filter by your criteria, and push results to Slack, Notion, or a spreadsheet.
  • Custom job boards - pull listings into your own interface or internal tool. Combine multiple searches (different roles, locations) into a single view.
  • Market research - track hiring trends by querying specific job titles or locations over time. Monitor how many positions a company has open or how salary ranges shift.
Each search returns up to 25 results per page. To paginate, pass the nextCursor from a response back as cursor on the next request (opaque token - do not construct it yourself). The hasMore field tells you whether additional pages are available. Free-tier users receive results from the Mokaru database, which is refreshed daily with popular job titles. Plus users get additional results from external providers (JSearch, Fantastic.jobs), giving broader coverage for niche roles or less common locations. The response includes an id field for each listing. Pass this as jobListingId when creating an application to automatically link salary data and publisher information.
Scope required: jobs:search | Rate limit: 30 requests/min

Request

Body Parameters

string
required
Job search keywords (e.g. “software engineer”, “product manager”)
string
City, state, or country (e.g. “San Francisco”, “Remote”)
string
Two-letter ISO country code (e.g. DE, US, GB) for strict country filtering
boolean
Legacy shortcut for workArrangement: "remote". Prefer workArrangement(s)
string
Work model: remote, hybrid, or onsite
string[]
Multi-select work model (OR). Takes precedence over workArrangement
string
Filter by type: FULLTIME, PARTTIME, CONTRACTOR, INTERN
string[]
Multi-select employment type (OR). Takes precedence over employmentType
string
Filter by recency: day, 3days, week, month
number
Minimum annual salary in the job currency. Only matches jobs with disclosed salary
string[]
Annualised salary bands (OR), open-ended allowed: "30000-50000", "150000-"
boolean
Only return jobs that disclose a salary
string[]
Require these benefits to be present (e.g. ["remote work", "health insurance"])
string[]
Restrict results to these company names (case-insensitive substring match)
string[]
Hide listings from these companies (case-insensitive substring match)
string[]
Require all of these keywords to appear in title or description
string[]
Exclude jobs whose title or description contains any of these keywords
string[]
At least one of these substrings must appear in the job title
string[]
None of these substrings may appear in the job title
string[]
Seniority inferred from the title (OR): entry, junior, mid, senior, lead
string[]
Restrict to specific ATS providers by exact source key (e.g. greenhouse, ashby, workday)
string[]
Required job languages by English name (OR), e.g. ["English", "German"]
number
Minimum years of required experience stated by the job
number
Maximum years of required experience stated by the job
boolean
Only jobs that explicitly offer visa sponsorship
boolean
Match jobs that explicitly require a security clearance
boolean
Only jobs whose apply-link points to the employer’s own ATS
boolean
Hide likely-stale “ghost” jobs (posted 60+ days ago or repeatedly recycled)
number
default:"25"
Results per page (max 100)
string
Opaque pagination cursor from the previous response’s nextCursor. Omit on the first page; pass it back unchanged

Example

Response

array
Array of job listings
number
Number of jobs returned in this page (same as data.length, max 25)
number
Alias of count for shape uniformity - NOT the grand total across all pages
boolean
Whether more pages are available
string
Opaque cursor for the next page. Pass back as cursor. null when hasMore is false
Plus users get results from external job providers (JSearch, Fantastic.jobs) in addition to the Mokaru database. The database is refreshed daily with the top 35 most popular job titles.