Pinpoint logo

Job boards & ATS · Live on Apify

Pinpoint jobs scraper for pinpointhq.com career boards

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

About $1.38 for 1,000 jobs$0.00135 per job + $0.03 per run. Apify bills you, not us.One job in a run of its own: about $0.03.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

job_idhttps://workwithus.pinpointhq.com/jobs/562609
posting_id559663
titleFounding Legal Counsel

How to use it: 3 steps

  1. Make a free Apify accountApify 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 StartNo 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 resultsWhen 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.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

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.

Who uses it

Small job boards

Add Pinpoint jobs with title, place and link.

Remote job hunters

Keep only remote roles from companies you like.

Pay researchers

Collect published salary ranges from known employers.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

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

Examples

  • 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. That is enough for about 3,600 jobs.

Prices checked on 24 October 2026. See the current price on Apify.

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.

Details

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
TaskInputKey fields
Fill a small job boardcareerUrls, scrapetitle, job_url, location, description
Check remote hiringremoteOnly, queryworkplace_type, department, title
Track published paycareerUrlscompensation, compensation_minimum, compensation_maximum
Track changesmonitor, previousSnapshot, changesOnlyposting_id, fingerprint, change and CHANGES
Tips for better results
  • 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 and good to know

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

Troubleshooting

SymptomLikely causeCheck and action
Zero rows and completeBoard is empty, query has no match, or monitor found no changeRead scannedPostings, matchedPostings and CHANGES. Try an empty query.
not_foundWrong or removed boardOpen the board root and correct careerUrls.
partial with MAX_RESULTSMore than maxResults matchedUse a narrower filter or raise the limit, up to 30. Keep the old snapshot.
partial with source errorTimeout, access block or changed feedRead the board reason and retry later.
error before scanInvalid URL, type or snapshot scopeUse the exact input keys and matching board roots.
Snapshot is nullScan or output was partialKeep your last complete snapshot.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one 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. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
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)
cURL
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": ""}'
LangChain · langchain-apify
# 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)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (26)
FieldType
job_idstring
posting_idstring
titlestring
companystring
departmentstring
employment_typestring
locationstring
workplace_typestring
compensationstring
reporting_tostring
published_atstring
descriptionstring
job_urlstring
source_feedstring
sourcestring
scraped_atstring
boardstring
source_job_idstring
employment_type_codestring
compensation_minimumnumber
compensation_maximumnumber
compensation_currencystring
compensation_frequencystring
deadline_atstring
fingerprintstring
changestring
Input settings (8)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Pinpoint career URLscareerUrlsarray["https://workwithus.pinpointhq.com"]
Keyword filterquerystring""
Remote roles onlyremoteOnlybooleanfalse
Include full descriptionincludeDescriptionbooleantrue
Maximum saved postingsmaxResultsinteger30
Run modemodestring"scrape"
Save only new or changed postingschangesOnlybooleanfalse
Previous complete snapshotpreviousSnapshotobject

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure