Pinpoint Jobs API - Career Page Scraper & Pay Ranges
Pricing
from $2.00 / 1,000 job results
Pinpoint Jobs API - Career Page Scraper & Pay Ranges
Pinpoint jobs API and career page scraper. Read live postings from any Pinpoint job board or careers page, or search hundreds of known Pinpoint ATS boards in one run. Full descriptions, and a structured pay range on 42.5% of postings.
Pricing
from $2.00 / 1,000 job results
Rating
0.0
(0)
Developer
Sulle H
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Pinpoint Jobs Scraper — 620 Career Sites, Full Descriptions
Pinpoint is a UK-rooted applicant tracking system used by mid-market and scale-up employers. Its public endpoint is unusually generous: every posting comes with structured description content, not just a title and a link.
Point it at a company, or leave the list empty and search a bundled registry of 620 live Pinpoint career sites carrying 18,241 open postings.
{ "keywords": ["analyst"], "maxJobs": 200 }
{ "companies": ["https://10kai.pinpointhq.com"] }
No login, no cookies, no proxies, no API key.
The description is split into real sections
Most ATS platforms hand you one blob of HTML. Pinpoint separates the posting into fields the employer filled in deliberately:
- the role summary
- key responsibilities
- skills, knowledge and expertise
- benefits
This Actor joins them into descriptionText as readable plain text, in that order, so the structure
survives as paragraphs rather than being lost in markup. Measured across live boards, description
content is present on 100% of rows.
What you get
| Field | Description |
|---|---|
provider | Always pinpoint — the same schema the multi-ATS Actors below emit |
company / companySlug | Employer subdomain |
jobId | Pinpoint posting id — stable, so it works as a dedupe key across runs |
title | Job title |
location | Office location, e.g. London |
department | Department, from the employer's own org structure |
employmentType | Full-time, contract, internship, as the employer classified it |
remote | Derived from Pinpoint's workplace_type (onsite / hybrid / remote) |
applyUrl | Direct link to the posting |
descriptionText | Summary, responsibilities and required skills, as plain text |
salary | Present only when the employer filled it in — see below |
scrapedAt | When this row was read |
Pay ranges, on more than a third of postings
Pinpoint asks employers for a minimum, a maximum, a currency and a period, and stores them as separate numbers rather than a sentence. Measured across every live board in this registry — 17,302 postings from 615 boards — 42.5% carry a pay range.
{ "salary": "45000–55000 GBP annual" }
Four platforms in this family publish pay, and they differ in form and in how often it is filled:
| Platform | Pay present | Form |
|---|---|---|
| Breezy HR | 45.7% | Free text, as the employer wrote it |
| Pinpoint | 42.5% | Separate numbers — min, max, currency, period |
| Ashby | 38.9% | Prose summary, sometimes with an equity note |
| Recruitee | 26.9% | Separate numbers, mostly European currencies |
Pinpoint and Recruitee are the two that give you numbers you can compare, which is what you want for benchmarking. The remaining platforms expose no salary field whatsoever, and no scraper can invent one.
The remaining 57.5% come back null because the employer left the fields blank — not because the
Actor failed to read them.
There is no posting date, though. Pinpoint exposes a deadline_at rather than a published date,
so postedAt is null and postedWithinDays keeps these rows rather than dropping them.
Input
| Option | What it does |
|---|---|
keywords | Keep only titles containing one of these. Case-insensitive. |
excludeKeywords | Drop titles containing any of these, e.g. senior, intern. |
locations | Keep only locations containing one of these. |
remoteOnly | Keep only postings Pinpoint marks as remote. |
postedWithinDays | Freshness filter. Pinpoint rows have no date and are always kept. |
companies | Subdomains or board URLs. Leave empty to search all 620. |
maxBoards | How many boards to scan, largest-first. |
maxJobs | Hard cap on rows, so a run costs what you expect. |
Finding a company slug
The board lives at <slug>.pinpointhq.com, so the slug is the subdomain. Paste the whole URL and
the Actor extracts it. Or run without companies and read the companySlug column.
Recipes
Full-text search across employers. Responsibilities and required skills come back as plain text, so one run gives you a corpus you can grep for a tool, a certification or a seniority signal that the title never mentions.
Watch one company. One slug, run on a schedule, diff jobId between runs.
Feed a niche job board. Every row carries the employer's own applyUrl, so your users apply at
the source rather than through a middleman.
Pricing
Pay per result — you are charged per job row delivered. A board that fails or returns nothing costs you nothing. Platform usage is included rather than billed on top.
Beyond Pinpoint
Companies move between applicant tracking systems, and most job-data projects need more than one:
- Career Site Job Feed — the same engine across every platform in this family, in one run, with an identical output schema.
- New Job Alerts — the same coverage, but each run returns only what appeared since the previous run.
Notes
- A dead slug never aborts the run. Failures land in a
FAILED_BOARDSrecord in the key-value store, with the reason for each. companySlug:jobIdis a stable key, safe for detecting what opened and closed between runs.- No login, no proxies, no API key. Pinpoint publishes this endpoint openly. Private boards are invisible to every scraper, including this one.