Tools

What the model sees. Descriptions are written for the model, so they say exactly what each filter does.

describe_catalog#

Every filter with its type and allowed values, live facts about the data (counts, freshness, sources, countries, industries, field coverage) and the caller’s usage. Free. Models should call it first.

search_jobs#

Search open jobs, newest first. Filters combine with AND. Returns {jobs, count, next_cursor}.

Arguments (all optional)
titlestring[]
Title has ANY of these as words, case and punctuation ignored; the last word may continue ('Product Lead' finds 'Product Leader').
title_excludestring[]
Drop jobs whose title contains ANY of these.
title_whole_wordsboolean
Match title and title_exclude as whole words only: the last word is not continued ('Lead' does not find 'Leader'). Words are always whole: 'CTO' never finds 'Director', excluding 'IT' keeps 'Security Analyst'.
companystring[]
Only these companies (substring of the company name or its board key).
exclude_companystring[]
Drop these companies (substring match).
sourcesstring[]
Only jobs from these applicant-tracking systems.
workdaygreenhousesmartrecruitersleverashbyteamtailorbreezypersoniopinpointgem
exclude_sourcesstring[]
Drop jobs from these applicant-tracking systems, e.g. ['manatal'] (its boards are mostly recruiting agencies).
industrystring[]
Company industry contains ANY (LinkedIn industry names).
exclude_industrystring[]
Drop companies whose industry contains ANY of these. Jobs whose industry is unknown are kept.
skillsstring[]
The job lists ANY of these skills (whole skill, case-insensitive).
company_sizestring[]
Company headcount bucket(s). Unknown size is excluded.
12-1011-5051-200201-500501-10001001-50005001-1000010000+
exclude_agenciesboolean
Drop staffing and recruiting agencies.
sectorstring[]
Company sector(s), from our company profile (98.7% of jobs).
AGRICULTURECONSTRUCTION_AND_REAL_ESTATECONSUMER_GOODSEDUCATIONENERGYFINANCIAL_SERVICESGOVERNMENTHARDWARE_AND_ELECTRONICSHEALTHCAREHOSPITALITYINSURANCEMANUFACTURINGMEDIA_AND_ENTERTAINMENTNONPROFITOTHERPHARMA_AND_BIOTECHPROFESSIONAL_SERVICESRETAILSOFTWARESTAFFINGTELECOMMUNICATIONSTRANSPORTATION_AND_LOGISTICS
company_kindstring[]
Kind of employer: OPERATING_COMPANY, CONSULTING, STAFFING_AGENCY …
CONSULTINGEDUCATIONGOVERNMENTHEALTH_PROVIDERNONPROFITOPERATING_COMPANYSTAFFING_AGENCY
customerstring[]
Who the company sells to.
B2BB2CB2GBOTH
ownershipstring[]
PUBLIC, PRIVATE, NONPROFIT … Companies with unknown ownership are excluded.
EDUCATIONGOVERNMENTNONPROFITPRIVATEPUBLIC
work_modestring[]
ANY of: On-site (the posting never mentions remote, hybrid or work from home, or its text says the job is on site), Remote OK (it mentions remote anywhere and its text does not say the job is hybrid or on site), Remote Solely (title or location says remote, same exception), Hybrid (title or location says hybrid, or its text does). All four = no filter.
On-siteHybridRemote OKRemote Solely
exclude_work_modestring[]
Drop jobs matching ANY of these work modes (same rules as work_mode). ['Remote Solely'] keeps every job someone could go in to.
On-siteHybridRemote OKRemote Solely
descriptionstring[]
The title or full description contains ANY of these, as whole words (case-insensitive). Needs title or company in the same search.
exclude_descriptionstring[]
Drop jobs whose full description contains ANY of these, as whole words (case-insensitive). Needs title or company in the same search.
taxonomiesstring[]
Job category, Fantastic's names. Read from the job's function flags, the company's sector or kind, and title words; any one is enough.
TechnologyHealthcareManagement & LeadershipFinance & AccountingHuman ResourcesSalesMarketingCustomer Service & SupportEducationLegalEngineeringScience & ResearchTradesConstructionManufacturingLogisticsCreative & MediaHospitalityRetailData & AnalyticsSoftwareEnergyAgricultureGovernment & Public SectorArt & DesignTransportationConsulting
educationstring[]
The job's requirements ask for ANY of these.
high schoolassociate degreebachelor degreeprofessional certificatepostgraduate degree
visastring
only = the job offers visa sponsorship (the company sponsors, or the posting says so, and the posting never refuses); exclude = it does not.
onlyexclude
remote_friendlyboolean
true = the posting mentions remote/hybrid/WFH anywhere; false = it does not. Prefer work_mode.
countriesstring[]
ISO-3166 alpha-2 country codes.
locationsstring[]
ANY of these places. Each is 'City, State', 'State' or 'City'; every comma part must match. US states in full or as postal codes.
exclude_locationsstring[]
Drop jobs in ANY of these places (same rules as locations).
experiencestring[]
Years of experience asked for. Postings that do not say are kept.
0-22-55-1010+
employment_typestring[]
Employment type. Postings that do not say are kept.
FULL_TIMEPART_TIMECONTRACTORTEMPORARYINTERN
min_salary_annualnumber
Published annual pay at least this much. Postings that publish no pay are kept; add has_salary=true to drop them. Estimates never count.
has_salaryboolean
Only jobs whose posting states pay.
posted_within_daysinteger 1-365
Posted (or first seen) in the last N days, today included.
posted_sincedate (YYYY-MM-DD)
Posted (or first seen) on or after this date, YYYY-MM-DD.
posted_beforedate (YYYY-MM-DD)
Posted (or first seen) before this date, YYYY-MM-DD.
include_internshipsboolean
Internships and co-ops are included by default; false leaves them out.
limitinteger
Jobs per page.
cursorstring
next_cursor from the previous page. The way to page.
offsetinteger
Skip N jobs (max 5,000). Use cursor for deeper paging.
include_descriptionboolean
Include each job's full description, requirements, responsibilities, job function and AI flags (large).
include_companyboolean
Attach each job's full company profile (size, headcount, revenue range, funding, founded, headquarters, followers).

count_jobs#

How many jobs match. Same filter arguments as search_jobs, without paging. Add group_by (company, country, state, city, source, experience, employment_type or industry) for the biggest groups, top (1-50) at a time; pass the answer's next_group_offset as group_offset for the next ones (companies 51-100, and so on). include_pay_stats adds published-pay figures; over very broad searches it can be too slow, so add a title or place.

get_job#

Arguments
job_idstringrequired
The id from search_jobs.

One job in full, including the description.

get_jobs#

Arguments
job_idsstring[] (max 100)required
Ids from search_jobs.

Several jobs in full, in the order given. Ids that no longer exist come back in missing.

search and fetch#

The two tools ChatGPT deep research and company knowledge call, in OpenAI’s exact shape: search(query) returns {results: [{id, title, url}]} from a free-text query; fetch(id) returns {id, title, text, url, metadata} with the full posting as text.

get_company#

Arguments
companystringrequired
A name (Stripe) or LinkedIn slug (stripe).

The company profile (industry, size, headcount, revenue range, funding, founded, headquarters, followers) and its live hiring: open jobs, top locations and titles.

find_companies#

Companies by name, industry or company_size, each with its open-job count.

catalog_stats#

Totals and date range of the index. Free.