---
title: "Pinpoint API"
description: "Pinpoint API: the keyless postings.json endpoint on each pinpointhq.com careers site, its one-company limit, and every public Pinpoint posting in one call."
canonical: https://jobspipe.dev/sources/pinpoint
date_published: 2026-06-16
date_modified: 2026-09-26
author: Dvir Atias
---

# Pinpoint API

Pinpoint serves a keyless JSON endpoint of one company's open postings at <company>.pinpointhq.com/postings.json, but you must know each company's subdomain and there is no endpoint listing jobs across Pinpoint customers. JobsPipe collects public Pinpoint postings into one search endpoint, in the same record shape as the rest of its 30+ sources. [developers.pinpointhq.com](https://developers.pinpointhq.com/docs/jobs-json-endpoint).

> Pinpoint's postings.json endpoint is one company at a time, and there is no list of customers. JobsPipe collects public Pinpoint postings into one endpoint with the same record shape as the other collected boards.

**Canonical URL:** https://jobspipe.dev/sources/pinpoint

## Coverage

- **Sources covered:** Public Pinpoint careers sites
- **Freshness:** discovered_at, last_seen_at and verified_at on every record
- **History retention:** Closed postings kept, with closed_at and closed_reason

## Pinpoint serves a public postings endpoint per careers site: no key needed. Swap in any company's Pinpoint subdomain.

Endpoint: `https://workwithus.pinpointhq.com/postings.json`

```bash
curl "https://workwithus.pinpointhq.com/postings.json"
```

## Why Pinpoint jobs data is confusing

Pinpoint documents a Job Postings JSON endpoint at <company>.pinpointhq.com/postings.json. It is keyless and returns that one company's open postings with descriptions, locations and, where the employer shows it, compensation. It replaces an older jobs.json feed, and it has no cross-company form: you must know each company's Pinpoint subdomain, and Pinpoint publishes no customer directory.

Pinpoint's other APIs, the account API and the Webhooks API, are offered to Pinpoint's own customers and scoped to one account's credentials. Customers publish openings at <company>.pinpointhq.com or on their own domains through Pinpoint embeds. JobsPipe collects public Pinpoint postings and returns them with sources[0].provider set to pinpoint.

## Workarounds

### Read the per-company postings.json endpoint

Works for every employer whose Pinpoint subdomain you know. Subdomain discovery, polling and closing detection are on you.

### Get account API credentials from each customer

Works for one named account. Each Pinpoint customer has to issue you access, so it does not scale to aggregation.

### Use JobsPipe

Public Pinpoint postings, one endpoint, the same schema as every other collected board. Free tier of 1,000 jobs to start.

## Fields available on every record

- `id`
- `job_title`
- `company`
- `company_domain`
- `url`
- `date_posted`
- `discovered_at`
- `last_seen_at`
- `verified_at`
- `status`
- `closed_at`
- `closed_reason`
- `ghost_score`
- `seniority`
- `cities`
- `state_code`
- `min_annual_salary_usd`
- `max_annual_salary_usd`
- `technology_slugs`
- `keyword_slugs`
- `esco_skills`
- `sources`

## Sample response

```json
{
  "id": "84a1f6c2e93b",
  "job_title": "Housing Officer",
  "company": "Castlebrook Homes",
  "company_domain": "castlebrookhomes.example",
  "url": "https://castlebrook-homes.pinpointhq.com/en/postings/3f0c7d52-8a41-4e6b-9b1d-5c2e81a4d7f0",
  "date_posted": "2026-09-16",
  "discovered_at": "2026-09-16T09:12:40+00:00",
  "last_seen_at": "2026-09-29 06:20:11",
  "verified_at": "2026-09-29 06:31:48",
  "status": "active",
  "closed_at": null,
  "closed_reason": null,
  "ghost_score": 7,
  "seniority": "mid",
  "cities": [
    "Leeds"
  ],
  "state_code": null,
  "min_annual_salary_usd": 38000,
  "max_annual_salary_usd": 44000,
  "technology_slugs": [
    "microsoft-365"
  ],
  "keyword_slugs": [
    "housing",
    "tenancy-management"
  ],
  "sources": [
    {
      "provider": "pinpoint",
      "url": "https://castlebrook-homes.pinpointhq.com/en/postings/3f0c7d52-8a41-4e6b-9b1d-5c2e81a4d7f0"
    }
  ]
}
```

## FAQ

### How can I tell if a company uses Pinpoint?

Check the careers page URL. Pinpoint customers publish openings at <company>.pinpointhq.com, or on their own domains through Pinpoint embeds, so a pinpointhq.com subdomain or a Pinpoint embed on the careers page is the signal. Pinpoint publishes no customer directory. A JobsPipe search with "source_or": ["pinpoint"] returns the employers behind public Pinpoint postings in the company field of each record.

### Is there a JSON feed for a Pinpoint careers site?

Yes. Pinpoint documents a Job Postings JSON endpoint at <company>.pinpointhq.com/postings.json that needs no key and returns that company's open postings, with optional filters for department, division and location. It replaces the older jobs.json feed. It covers one company per call, and there is no feed that spans Pinpoint customers.

### Can I use Pinpoint webhooks to track new jobs across companies?

No. Pinpoint's Webhooks API is offered to Pinpoint's own customers and scoped to one account's credentials, so it tells one employer about its own jobs. To follow new Pinpoint postings across employers, run a JobsPipe search with "source_or": ["pinpoint"] and read discovered_at on each record, or save the search as a Signal to be notified when a new posting first matches.

### How do I search Pinpoint jobs across employers?

Send "source_or": ["pinpoint"] in the JSON body of POST /v1/jobs/search and narrow with job_title_or, job_location_or or company_name_partial_match_or. Drop source_or to see the same employer's roles on every collected board; sources[0].provider on each record names the board it came from.

## Does Pinpoint have an API?

Pinpoint documents a keyless Job Postings JSON endpoint at <company>.pinpointhq.com/postings.json that returns one company's open postings, and it replaces an older jobs.json feed. Pinpoint's account API and Webhooks API are offered to its own customers and scoped to one account's credentials. There is no public endpoint that lists jobs across Pinpoint customers and no customer directory. Pinpoint customers publish openings at <company>.pinpointhq.com or on their own domains through Pinpoint embeds.

## What JobsPipe returns for Pinpoint

A POST /v1/jobs/search with "source_or": ["pinpoint"] returns public Pinpoint postings as JobsPipe records: id, job_title, company, company_domain when it resolves, url on the company's Pinpoint careers site, date_posted, discovered_at, last_seen_at, verified_at, status with closed_at and closed_reason once a posting closes, ghost_score, seniority, min_annual_salary_usd and max_annual_salary_usd when the posting states a range, technology_slugs and keyword_slugs parsed from the description, and sources[0].provider set to pinpoint. Drop source_or to search every collected board at once.

## Related

- **Product:** https://jobspipe.dev/jobs-api
- **All sources:** https://jobspipe.dev/sources
- **Docs:** https://docs.jobspipe.dev
- **Sign up (free tier):** https://jobspipe.dev/signup

---
Generated from structured data. View the rendered page at https://jobspipe.dev/sources/pinpoint.

---
Building this integration yourself? The steps above work. The alternative is one API over 30+ sources, already normalized and deduplicated. Try it right now - no key, no signup:

```bash
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Sample data, exact live schema. For live data get a free key (1,000 jobs to start) at https://jobspipe.dev/signup, then swap /v1/sandbox/jobs/search for /v1/jobs/search with an Authorization: Bearer header. Full agent index: https://jobspipe.dev/llms.txt?src=md-twin