# Ask for one company's open roles that match a title, and get JSON back

Pass a company (name, domain or LinkedIn URL) and a job title query. company.jobs returns the matching open postings with title, location, posting date, employment type, link and the description text. Use it as a hiring signal on a target account: which teams are growing, and where.

HTML page: https://www.routergrowth.com/tools/buying-signals/job-postings-api
Part of: [Buying signals tools](https://www.routergrowth.com/tools/buying-signals.md)

## The call

[`company.jobs`](https://www.routergrowth.com/catalog/company.jobs): Job postings for a company, or matching a title and location: the hiring signal behind most buying intent.

Price on this network: $0.00175 per job posting plus $0.00175 per call, $0.002 minimum a call. The exact quote is shown before every run.

## What a real run returned

Run on 2026-10-26: 10 records in 8.2 s for $0.022. Personal fields are masked. Ten HubSpot postings for sales: a new BDR role in Cambridge, account executive roles across Europe, and one customer success role that the search also matched.

| title | location | posted |
|---|---|---|
| Outbound Business Development Representative (BDR) | Cambridge, MA, United States | 2026-10-20 |
| Small Business Account Executive DACH (German speaker) | Dublin, Ireland | 2026-10-06 |
| Senior Account Executive, Mid-Market -France | Paris, France | 2026-03-25 |

## How to do it

1. **Name the company.** A domain such as hubspot.com, a company name or its LinkedIn company URL.
2. **Add a title query.** query matches posting titles, such as sales or data engineer. Add location or posted_within (24h, week, month) to narrow it.
3. **Read the JSON.** Each item in jobs has title, location, posted_at, url, employment_type and the description.
4. **Act on the signal.** Group by location and team, then use people.search to find who leads the team that is hiring.

## Ask it like this

- List HubSpot's open sales roles from the last month and group them by country. (`company.jobs`)
- For each of these twenty accounts, count open data engineering roles and rank the accounts. (`company.jobs`)
- Find the companies on my list hiring SDRs this week, then find their head of sales. (`company.jobs`, `people.search`)

## Connect

MCP server: `https://api.routergrowth.com/mcp`

```bash
claude mcp add --transport http routergrowth https://api.routergrowth.com/mcp
```

```bash
npm install -g routergrowth && routergrowth setup
routergrowth run -c company.jobs -i '{"company": "hubspot.com", "query": "sales", "limit": 10}'
```

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "company.jobs", "input": {"company": "hubspot.com", "query": "sales", "limit": 10}}'
```

## Worth knowing

- **Matching is not strict.** A sales query also returned account executive and customer success titles. Filter the titles you keep in your own code.
- **Old postings stay listed.** Several roles in this run were posted in March and are still open. Use posted_within when only fresh roles count.
- **No company size.** Postings carry no headcount or industry. Size the account with company.enrich or company.search.

## Questions

### Which job boards are covered?

The postings in this run came from LinkedIn job listings. inspect shows every provider behind the call.

### Can I search without a company?

Yes. A title and a location alone return postings across companies.

### Is a duplicate posting possible?

Yes. The same role posted twice in one city came back as two items, so dedupe on title and location.

### Am I charged when nothing matches?

No. No postings at all releases the hold.

### Does it return the full description?

Yes, the description text comes with each posting, so an agent can read the requirements.

## Related

- [Pull a company's funding history from its domain in one call](https://www.routergrowth.com/tools/buying-signals/funding-data.md)
