# Pinpoint jobs scraper for pinpointhq.com career boards

> Pinpoint jobs scraper for public pinpointhq.com boards. Get pay details, remote type and apply links. Compare snapshots for new and removed jobs.

URL: https://cliqtomedia.com/actors/pinpoint-jobs-monitor-scraper/

Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/pinpoint-jobs-monitor-scraper?fpr=cliqto

Add one to five Pinpoint career boards. You get clean job postings with pay details when listed. Monitor mode compares with your last snapshot.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `https://workwithus.pinpointhq.com` in Pinpoint career URLs. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Export job postings from public Pinpoint career boards. Compare complete snapshots to see new, changed and removed postings. Use the results for job boards, recruiting research and hiring alerts.





## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.03 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Posting saved | $0.00135 | One job posting saved to the default dataset. Unchanged postings skipped by changesOnly are not charged. |

- One job: about $0.03.
- 1,000 jobs: about $1.38.
- Every day 100 jobs, for 30 days: about $4.95 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/pinpoint-jobs-monitor-scraper?fpr=cliqto

## Questions

### Does it find every Pinpoint employer?

No. You add known board links. The tool does not search for employers.

### How many postings can I save?

Up to 30 postings from up to 5 boards per run.

### Are descriptions in HTML?

No. They are plain text. Pay fields stay empty when the board gives none.

### Can I use a custom careers domain?

No. Use the pinpointhq.com board link.

### Why do two rows have the same job_id?

One vacancy can have multiple publications. Use board plus posting_id to identify a publication.

### Does “removed” mean the job is closed?

It means that a publication ID disappeared from a complete scan. Verify the parent vacancy before making that claim.

### Can I use a board URL with a locale path?

Yes, for accepted paths. The feed is normalized to English; this Actor does not export other translations.

## Data fields

- `job_id` (string)
- `posting_id` (string)
- `title` (string)
- `company` (string)
- `department` (string)
- `employment_type` (string)
- `location` (string)
- `workplace_type` (string)
- `compensation` (string)
- `reporting_to` (string)
- `published_at` (string)
- `description` (string)
- `job_url` (string)
- `source_feed` (string)
- `source` (string)
- `scraped_at` (string)
- `board` (string)
- `source_job_id` (string)
- `employment_type_code` (string)
- `compensation_minimum` (number)
- `compensation_maximum` (number)
- `compensation_currency` (string)
- `compensation_frequency` (string)
- `deadline_at` (string)
- `fingerprint` (string)
- `change` (string)

## Input settings

- `careerUrls` (array): One to five public Pinpoint boards. Roots, jobs.rss, jobs.json and postings.json URLs are accepted. All use the English postings feed. Custom domains are not supported.
- `query` (string): All words must match title, department, location, description or other normalized job text. Up to 200 characters. Filters still read the full feed.
- `remoteOnly` (boolean): Keep roles marked remote or with remote in the location.
- `includeDescription` (boolean): Return plain text from description, responsibilities, skills and benefits. When off, description is null and query does not search description.
- `maxResults` (integer): Save at most 30 matching postings. The full feed is read. A truncated result has partial status and no accepted monitoring snapshot.
- `mode` (string): Scrape exports current postings. Monitor compares posting IDs and content with the supplied previous snapshot.
- `changesOnly` (boolean): Monitor mode only. Unchanged postings are not saved or charged. Removed IDs are in CHANGES, not the dataset.
- `previousSnapshot` (object): Optional SNAPSHOT JSON from a complete monitor run on exactly the same boards. Omit on the first run. Do not send null snapshots from partial runs. Maximum 1500 entries.

## Step by step on Apify

1. Open Input.
2. Keep `careerUrls` as `https://workwithus.pinpointhq.com`, or add your employer's Pinpoint board.
3. Keep `mode` as `scrape` and `maxResults` as `30`.
4. Set a maximum run charge of `$0.20`, then click Start.
5. Open Output to view postings. Check `RUN_SUMMARY` for board status and saved row count.

## Use cases

| Task | Input | Key fields |
|---|---|---|
| Fill a small job board | careerUrls, scrape | title, job_url, location, description |
| Check remote hiring | remoteOnly, query | workplace_type, department, title |
| Track published pay | careerUrls | compensation, compensation_minimum, compensation_maximum |
| Track changes | monitor, previousSnapshot, changesOnly | posting_id, fingerprint, change and CHANGES |

## Tips

- Turn on remote only to keep roles marked remote.
- Use changes only in monitor mode. Unchanged rows have no result fee.
- Use board plus posting_id as the key. One job can have several postings.

## Limits

The Actor accepts 5 boards and saves up to 30 postings. A live five-board test read 32 postings and saved 30, then correctly returned partial with no accepted snapshot. Each board feed is limited to 300 publications and 2 MiB. Total response data is limited to 10 MiB; there are at most 15 HTTP attempts. Runtime scan and writes stop after 55 seconds, with a 75-second Cloud timeout and 256 MB memory.

- `complete`: all boards read and all eligible rows saved. Zero matches can be complete.
- `partial`: a board failed, an item was invalid, or a save/time/charge limit stopped output.
- `not_found`: all requested boards returned 404.
- `error`: invalid input, all source reads failed or output failed before a row was saved.

## Sample result

```json
{
  "job_id": "https://workwithus.pinpointhq.com/jobs/562609",
  "posting_id": "559663",
  "title": "Founding Legal Counsel",
  "company": null,
  "department": "Operations",
  "employment_type": "Full Time",
  "location": "Remote",
  "workplace_type": "remote",
  "compensation": null,
  "reporting_to": "Chief Operating Officer",
  "published_at": null,
  "job_url": "https://workwithus.pinpointhq.com/en/postings/ce6c9e5c-a2d3-42b0-a01e-9edeae315b04",
  "source_feed": "https://workwithus.pinpointhq.com/postings.json",
  "source": "pinpoint",
  "scraped_at": "2026-10-03T23:50:21.151Z",
  "board": "https://workwithus.pinpointhq.com",
  "source_job_id": "562609",
  "employment_type_code": "full_time",
  "compensation_minimum": null,
  "compensation_maximum": null,
  "compensation_currency": null,
  "compensation_frequency": null,
  "deadline_at": null,
  "fingerprint": "dad145f28b5c1017484dc6b4a02cafc85f8f1175e7c7b4c93e18104b0660e8fe",
  "change": "current",
  "description": null
}
```

## Use it from code

Actor ID: `cliqtomedia/pinpoint-jobs-monitor-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/pinpoint-jobs-monitor-scraper").call(run_input={
    "careerUrls": [
        "https://workwithus.pinpointhq.com"
    ],
    "query": ""
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~pinpoint-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"careerUrls": ["https://workwithus.pinpointhq.com"], "query": ""}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/pinpoint-jobs-monitor-scraper")
result = tool.invoke({"run_input": {"careerUrls": ["https://workwithus.pinpointhq.com"], "query": ""}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/)
- [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/)
- [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/)
- [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/)
- [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/)
- [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/)
