search_jobs
Search active job listings in Portugal. Use this whenever the user wants to find a job — by title, skills, location, salary or schedule. Combines semantic ranking on the query (title/skills) with structural filters. Returns company, city, region, remote mode, seniority, salary and a citable URL, plus total: the exact number of listings matching the filters, which makes this useful for market-size questions. Listings are aggregated from ATSs, boards and public-sector portals and refreshed daily; each result carries postedAt and lastSeenAt. Salaries are published in EUR.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 10, max 20). | |
| query | No | Free-text semantic hint: job title, skills or field (e.g. 'data engineer', 'react developer', 'marketing manager'). Ranks results by meaning; combine with structural filters. | |
| company | No | Restrict to jobs from this employer (free-text name). | |
| escoCode | No | ESCO occupation code (see europa.eu/esco). Optional and precise: when the caller has one, it filters much more sharply than free text. | |
| location | No | City or region within the market (e.g. Lisbon, Porto, Berlin). Do not include the country — it is set by the host. | |
| schedule | No | Hours: FULL_TIME, PART_TIME, SHIFTS or FLEXIBLE. | |
| seniority | No | Level of the role. | |
| remoteMode | No | Work arrangement. REMOTE, HYBRID or ONSITE. | |
| contractType | No | Contract type in market-local vocabulary (e.g. permanent, CDI, B2B, umowa o pracę). | |
| salaryMinYearly | No | Minimum gross yearly salary, in the market currency (EUR, GBP or PLN). Non-yearly periods are normalised. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | ||
| shown | Yes | ||
| total | Yes | Exact number of listings matching the filters. | |
| market | Yes | ||
| currency | Yes |