---
name: looot-job-postings
description: Search job postings. Use when the user says things like "find data engineer jobs in Berlin", "what is this company hiring for" or "list open roles for sales managers in London". Runs through looot, billed per call.
---

# Search job postings

Job postings API for an agent: it sends a job title and a location, or a company to a catalog endpoint and reads job title, company and domain back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

This skill needs the looot skill set up first: https://looot.ai/skill.md

## Ask for these inputs

The job takes a job title and a location, or a company. Example: data engineer in Berlin.

- A job title and a location, or a company

## Run it

1. Find the endpoint: `looot discover --mode auto --query "job postings"`. The endpoints listed below are the known matches.
2. Read the price and the input schema before spending: `looot inspect <endpoint-id>`. Tell the user the price, then run.
3. Run it: `looot run anyapi-run-linkedin-jobs-thin --input '{"query":"data engineer","location":"Berlin"}' --idempotency-key <new-key> --wait`. Reuse the same key only to retry the same request.
4. Read the run's `status` and `error`, not the HTTP status. A run can return `failed` with a normal response.
5. If a run fails with a provider error or times out, try the next endpoint from the list below, cheapest first. If it fails on your input (a 4xx style error), fix the input. Do not retry it on other providers.

## Endpoints

Each endpoint reads the same job from a different provider. They differ in inputs, fields and price. Run `looot inspect` on the ones that take the input you hold, start with the cheapest, and move to the next on a provider error.

- `anyapi-run-linkedin-jobs-thin`: returns a thin index of title, company, location, posted date and URL, with a flat price per request
- `anysite-api-linkedin-search-jobs`: filters by keywords, location, company, industry, job type, work type and experience level
- `theirstack-jobs-search`: searches postings from company career sites and job boards, and returns the company domain, cities, salary and the date a posting closed
- `sumble-jobs`: returns the fields you select from a jobs search, with filters, a limit and an offset

## What comes back

- Job title
- Company and domain
- Location
- Posted date and link
- Salary when the provider has it

## Answer rule

List title, company, location, posted date and link. Say how old the newest posting is.

## Before you start

- Decide whether you need the description. The thin index has none, and a second call per posting costs more than a deeper provider would have.
- Set a result limit. Several of these providers bill per result, so an open query on a common title gets expensive fast.
- Dates matter. Ask for a posting window, because a posting that closed last year says little about this quarter.

## Cost rules

- Searching and inspecting are free. Running is billed per call at the price `looot inspect` shows.
- Say the price before the first run, and the total after a batch.
- Never loop a failing call. Stop after two failures and report what failed.

## When not to use this skill

Use `looot-company-list-builder` instead when you want companies that match a profile, not the roles they post.

Page for people: https://looot.ai/agent-skills/job-postings
