PracticeLink Physician Jobs Search Scraper
Pricing
from $2.99 / 1,000 practicelink job records
PracticeLink Physician Jobs Search Scraper
Scrape physician and healthcare job listings from PracticeLink.com. Extract detailed postings including employer info, specialty, location, recruitment type, and categories with advanced pagination handling.
Pricing
from $2.99 / 1,000 practicelink job records
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
PracticeLink Jobs Search Scraper
This Actor collects complete, verified public physician and healthcare job postings from PracticeLink. It uses official PracticeLink HTTPS pages only: the search form is submitted directly, result cards are parsed from HTML, and each posting is enriched from its official detail page using JobPosting JSON-LD plus semantic HTML.
Every run is bounded by item, candidate, page, request, and per-request timeout limits. Records are buffered and written only after the detail page passes identity, canonical URL, source-record, HTTP, rich-description, and more-than-20-meaningful-source-field checks. If the public site returns an access-control page or incomplete content, the Actor fails closed and writes a diagnostic rather than inventing a row.
Input modes
search: submit one keyword/specialty search. Exact specialties such asfamily medicineuse the PracticeLink specialty selector.searchMultiple: submit each value insearchQueries(orqueries), sharing the profession and location filters.single: fetch one exact public job URL fromjobUrl.multiple: fetch exact public job URLs fromjobUrlsorjobs.startUrls: mix official filtered search URLs and official job URLs.
The compatibility modes jobUrl and jobUrls are accepted and normalized to single or multiple. query, keyword, state, maxJobs, and timeoutSecs are also accepted as aliases. This implementation does not launch a browser or use a proxy.
Useful limits are maxItems, maxCandidates, maxPages, maxRequests, and timeoutMs. The checked-in primary input requests three family-medicine jobs in Texas. Public input does not expose retry, proxy, cookie, fixture, debug, or temporary context controls.
Output
Complete dataset rows include:
- stable PracticeLink job identity and official detail/canonical URLs;
- title, employer, facility, location, state, specialty, provider type, recruitment labels, employment, remote/telemedicine, salary, and address fields;
- normalized dates, application links, contact-redaction signals, external links, and source-backed JSON-LD;
- rich plain-text, HTML, section, heading, bullet, responsibility, benefit, and qualification fields;
- request receipt, HTTP status, retrieval timestamps, and verification flags.
Published email addresses and telephone numbers are redacted from descriptions and nested source evidence. The key-value store contains RUN_SUMMARY, RUN_DIAGNOSTICS, RUN_METADATA, and RUN_HEALTH, including request receipts, execution metadata, source transport, counts, status, and omission diagnostics.
Local commands
npm cinpm run checknpm testnpx --yes apify-cli validate-schema .actor/input_schema.jsonnpx --yes apify-cli run --resurrect --input-file INPUT.jsonnpm run validate -- storage
For safe local validation, confirm the selected relative storage directory and legacy apify_storage are absent before running; never use --purge or reuse an existing dataset directory. The validator accepts the path argument (for example, npm run validate -- storage-practicelink-final-20260926-01) and rejects missing required fields, duplicate records, invalid URLs/dates, placeholder values, unverified rows, insufficient meaningful source fields, and inconsistent run counts.
Source and compliance
The Actor uses PracticeLink's public search and detail routes over native HTTPS with ordinary request headers and one attempt per request. It does not use third-party mirrors, alternate transports, a proxy, browser automation, CAPTCHA solving, or access-control bypasses. HTTP 401, 403, 429, 451, or visible source-authored denial/CAPTCHA/human-verification/security-challenge content is terminal SKIPPED; requests stop, staged rows are discarded, and receipts/evidence are preserved. Generic transport failures are DEFERRED, not treated as proof of a source block. Search and detail failures do not produce partial or fabricated records.