Skip to Content
API & MCPPOSTCount job postings

REST API

Count job postings

Free.

POST/v1/jobs/count
MCP tool count_jobsscope companies:readNo record cost by default

Parameters

querystringoptional
full text over the title and the posting’s text (responsibilities, requirements, about us …); every word must occur
titlestringoptional
words that must be in the job title (e.g. ‘salesforce administrator’)
status"open" | "closed" | "all"optional
open (default) | closed (taken-down postings, with closed_at) | all
filtersobjectoptional
exclude_filtersobjectoptional
company_filtersobjectoptional
COMPANY JOIN: company facets (list_filters — country, headcount, vertical, tech, …) and the jobs company filters (uses_tech, hiring_for, has_intent, hiring_flag): only postings of companies that match (≤50,000 companies)
company_exclude_filtersobjectoptional
same shape, negated
exclude_listsstring[]optional
ids of your exclusion lists (get_lists) to apply to this call (up to 20 items)
exclude_domainsstring[]optional
extra domains/URLs/e-mails to keep out of this call’s results (up to 1000 items)
within_listsstring[]optional
ids of your lists (get_lists, any kind) to search INSIDE: only companies on at least one of them — e.g. narrow last week’s export or your CRM accounts (up to 10 items)
clientstringoptional
AGENCIES: which of your clients this call is for (e.g. ‘acme’). That client’s always-exclude lists apply on top of your organization-wide ones — never another client’s. Set once per client conversation.
group_by"country" | "city" | "workplace" | "employment_type" | "source" | "lang" | "domain" | "title_clean" | "function" | "family" | "seniority" | "work_category" | "role_tags" | "tech" | "intent"[]optional
(up to 2 items)
group_sizeintegeroptional
(min 1, max 100)

What your agent reads

The tool description exactly as an MCP client receives it in tools/list — it doubles as the full behaviour of the endpoint.

Free. How many OPEN postings (or closed / all, by `status`) and companies match, and — with `group_by` (≤2) — how they split: by country, city, workplace, employment_type, source, lang, domain (top hiring companies), title_clean, function, family, seniority, work_category, role_tags, tech, intent. Same filters, query, title and company join as search_jobs. `filters` / `exclude_filters` on POSTINGS (any of a list): country (ISO-2, any of the posting's countries), city, admin1, workplace (onsite|hybrid|remote), employment_type (full_time|part_time|contract|temporary|internship|apprenticeship|freelance| volunteer|other), lang, source (ATS), domain, title_clean, salary_eur_year_min, has_salary, posted_within_days, first_seen_within_days, closed_within_days (status closed|all); role classes (Role Tree v2 — list_filter_values field='job_function'|'job_family'|'job_seniority'| 'work_category'|'role_tag'): function, family, seniority (training|unpaid|entry|mid|senior|manager|director|vp|partner|cxo|owner; absent = unspecified), work_category, role_tags, title_canonical; tech (catalogue slugs, list_filter_values field='tech' — mentions in the posting, benefit/apply boilerplate excluded); intent (predicates, list_filter_values field='intent'). - `status`: open (default — live postings) | closed (taken down; history from 2026-10-21, `closed_at` set) | all.

Errors follow one format.