BioSpace Scraper - Biotech & Pharma Jobs avatar

BioSpace Scraper - Biotech & Pharma Jobs

Pricing

from $1.00 / 1,000 actor starts

Go to Apify Store
BioSpace Scraper - Biotech & Pharma Jobs

BioSpace Scraper - Biotech & Pharma Jobs

Extract job listings from BioSpace, the leading US biotech and pharma job board. Returns title, company, location, salary, discipline, career level, therapy area, full description, apply URL and posting dates. From $3 per 1,000 jobs, about $8 with full job details.

Pricing

from $1.00 / 1,000 actor starts

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

BioSpace Scraper - US Biotech, Pharma & Medical Device Jobs

Pull job listings from BioSpace, a life-science career board (with positions from pharma, biotech startups and CROs). Every row returns salary, discipline, hotbed cluster, required education, the full description as text, HTML and Markdown, the employer's apply URL and exact posting timestamps. No API key needed.

Sample output

{
"id": "3081205",
"title": "Program Lead II, Clinical Program Development",
"job_url": "https://jobs.biospace.com/job/3081205/program-lead-ii-clinical-program-development",
"company_name": "AbbVie",
"company_logo_url": "https://assets.biospace.com/public/logos/397714",
"company_profile_url": "https://www.biospace.com/employer/397714/abbvie",
"company_type": "pharma",
"industry": "Pharmaceutical",
"location": "Irvine, CA",
"country": "US",
"city": "Irvine",
"region": "CA",
"employment_type": "Full-time",
"remote_option": "onsite",
"salary_min": 160500,
"salary_max": 305000,
"salary_currency": "USD",
"salary_period": "annual",
"salary_text": "USD 160,500 - 305,000 per year",
"description_snippet": "Company Description\n\nAbout AbbVie\n\nAbbVie's mission is to discover and deliver innovative medicines...",
"description_full": "Company Description\n\nAbout AbbVie\n\nAbbVie's mission is to discover and deliver innovative medicines and solutions...",
"description_html": "<p>Company Description</p><p><strong>About AbbVie</strong></p>...",
"description_md": "Company Description\n\n**About AbbVie**\n\nAbbVie's mission is...",
"posted_at_datetime": "2026-09-29T13:24:52.093Z",
"posted_at_text": "Sep 29, 2026",
"expires_at": "2026-10-29",
"apply_url": "https://careers.abbvie.com/en/job/program-lead-ii-clinical-program-development-in-irvine-ca-jid-33130",
"direct_apply": false,
"discipline": "Clinical, Clinical Research",
"career_level": "senior",
"therapy_area": "oncology",
"required_education": "Bachelors Degree",
"hotbed": "Biotech Beach",
"search_query": "clinical research",
"source_platform": "biospace.com"
}

Pricing

Pay per event. You only pay for results.

EventPrice
Actor start (job-start)$0.001 per run
Search result (job-serp-result)$0.003 per job
Detail result (job-detail-result)$0.005 per job, charged only when the full description was actually parsed
Company detail (company-detail-result)$0.005 per unique employer when includeCompanyDetails is on, charged only when the employer page resolved

That is about $3 per 1,000 jobs with Include Full Job Details off, and about $8 per 1,000 jobs with it on (the default). A detail page that fails to load or has no description is not charged the detail event. Include Company Details is off by default; when on, each employer is fetched and charged once per run, however many of its jobs are returned.

New to Apify? Every account gets a $5 free monthly platform credit, enough to test this actor properly before you commit.

Input

FieldTypeRequiredDescriptionExample
searchQueriesarrayNoKeywords, one search each. BioSpace matches them against title, employer and description text. Empty lists the newest jobs.["clinical research associate", "medical writer"]
searchUrlsarrayNoPre-built BioSpace search URLs. Filters and sort are read from the URL.["https://jobs.biospace.com/search-jobs?q=clinical&sort=Date"]
directUrlsarrayNoBioSpace job page URLs (/job/<id>/...). Fetched directly with the full description.["https://jobs.biospace.com/job/3080938/"]
locationstringNoUS city or state. Resolved with BioSpace's own location search, then combined with radiusKm.Boston, MA
radiusKmintegerNoRadius around location. Default 80 km (about 50 miles).40
sortBystringNonewest (default) or relevance. Both are applied by BioSpace and give different orderings.newest
postedWithinDaysintegerNoOnly jobs posted in the last N days. With newest sorting the run stops at the first older job.7
maxResultsintegerNoTotal cap across all queries. Default 20.200
maxResultsPerQueryintegerNoCap per keyword. Default 200.100
includeJobDetailsbooleanNoFetch each job page for the full description, apply URL, employer address and phone. Default true.true
includeCompanyDetailsbooleanNoFetch each unique employer's BioSpace page once and add company website, careers site, About text, headquarters, phone and social links to every job of that employer. Default false. $0.005 per unique employer.false
disciplinestringNoclinical, regulatory, quality, engineering, science-r-and-d, manufacturing-and-production, marketing, sales-and-service, information-technology, administration.clinical
requiredEducationstringNohigh-school-or-equivalent, associate-degree, bachelors-degree, masters-degree-mba, doctorate-phd-md, other.doctorate-phd-md
positionTypestringNofull-time, part-time, contract, consultant.contract
remoteOnlybooleanNoOnly jobs marked remote.false
titleFilterstringNoComma-separated title terms (OR-match, case-insensitive). Non-matching rows are dropped before any detail fetch, so you do not pay for them."scientist, biologist"
maxConcurrencyintegerNoConcurrent detail-page requests (1 to 20). Default 5.5

Copy-paste example:

{
"searchQueries": ["clinical research", "biotech sales"],
"location": "Boston, MA",
"radiusKm": 80,
"sortBy": "newest",
"postedWithinDays": 14,
"maxResultsPerQuery": 100,
"maxResults": 200,
"includeJobDetails": true
}

What you get

FieldDescription
idBioSpace job ID (stable dedup key)
titleJob title
job_urlJob page URL on jobs.biospace.com
company_nameEmployer name
company_logo_url, company_profile_urlEmployer logo and BioSpace employer page
company_address, company_phoneEmployer contact address and phone (detail mode)
company_website, company_careers_url, company_about, company_headquarters, company_social_urlsEmployer's own website, careers site, About text, headquarters address and social profile URLs from its BioSpace page (only with Include Company Details; company_phone is also taken from that page). When BioSpace links a careers site as the website, the site root is derived into company_website and the careers link goes to company_careers_url
company_type, industryEmployer type (pharma, biotech, medical-device, diagnostics and so on) and BioSpace industry
location, city, region, countryLocation as shown by BioSpace, split into parts
employment_typeFull-time, Part-time, Contract or Consultant
remote_optiononsite, hybrid or remote
salary_min, salary_max, salary_currency, salary_period, salary_textSalary when disclosed (structured field, or parsed from the pay range in the description), otherwise null
description_snippetFirst 300 characters of the description
description_full, description_html, description_mdFull description as plain text, HTML and Markdown (detail mode)
posted_at_datetimeISO 8601 UTC posting timestamp
posted_at_textPosted date as printed by BioSpace
expires_atISO date the listing expires
apply_url, external_apply_url, direct_applyWhere to apply (the job page when the application happens on BioSpace, the employer link otherwise), the employer link, and whether it happens on BioSpace (detail mode)
disciplineBioSpace discipline tags, comma separated
career_levelentry, mid, senior or executive, inferred from the title
therapy_areaTherapy area keyword found in the description (detail mode)
required_educationRequired education level
hotbedBioSpace biotech cluster tag (Genetown, Biotech Beach, BioForest and so on)
security_clearancerequired or preferred when the description mentions a clearance, otherwise null
search_queryThe keyword and location that produced the row
source_platform, scraped_atAlways biospace.com, and the scrape timestamp

With Include Full Job Details off you get the search-result fields and the short description_snippet only.

Deprecation notes

The following field names are deprecated and will be removed after 2027-09-29:

  • company, use company_name
  • source_url, use job_url
  • posted_at, use posted_at_datetime (the old field holds the date only)

Both the deprecated and canonical fields are emitted in every row during the window. Please migrate downstream consumers before the removal date.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Configure the MCP server with BioSpace Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/biospace-scraper.

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=santamaria-automations/biospace-scraper",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

For per-tool schemas and copy-paste snippets for MCP clients, see the MCP tab.

See the auto-generated API tab for language-specific examples (cURL, JS, Python, .NET, Ruby, PHP).

Example prompt once connected:

"Use biospace-scraper to find senior clinical research associate roles posted in the last 7 days within 80 km of Boston. Return company, salary and apply URL as a table."

Why this actor

  • Life-science-native fields that generalist boards do not carry: discipline, hotbed, required_education, therapy_area and industry.
  • Real server-side filtering and sorting: keyword, location with radius, discipline, education, position type, remote and newest or relevance ordering are all applied by BioSpace, so you only pay for rows you asked for.
  • Recent-only runs are cheap: with postedWithinDays and newest sorting the scrape stops at the first older job.
  • Full description as text, HTML and Markdown, plus the employer's own apply URL.
  • Failed detail fetches are not charged.

Common use cases

  • Build a Genetown or Biotech Beach prospect list for a life-science recruiter (filter hotbed).
  • Track new senior regulatory-affairs openings across pharma weekly with postedWithinDays: 7.
  • Refresh a clinical research associate pipeline for a CRO's talent team every Monday.
  • Monitor hiring signals at specific employers by running one keyword per company name.

Notes and limits

  • BioSpace lists around 3,900 jobs at any time. BioSpace returns 20 jobs per search page. With details on, expect roughly 1.5 seconds per job at the default concurrency (about 2 minutes for 90 jobs); raise maxConcurrency for faster large runs, or turn details off for search-only speed.
  • Keywords match title, employer and description text, so a broad keyword can return loosely related roles. Use titleFilter to keep only rows whose title matches.
  • The location index is US-centric. Some jobs outside the US are listed by BioSpace and appear in unfiltered searches.
  • BioSpace sometimes tags Canadian jobs as US (or US jobs as another country). The actor corrects country when the location ends in a Canadian province or in "United States".
  • Include Company Details reads the employer page BioSpace maintains, so fields such as phone or social links are only present when the employer filled them in (fill rates vary by employer). Employer pages cannot be listed as a job source: BioSpace has no employer filter on its job search.
  • Many listings do not disclose salary. That is the employer's choice, not a scraping issue.
  • therapy_area and career_level are inferred from the description and title. Treat them as hints.

Support

  • Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours. You can also open a ticket in the Issues tab on the actor page.
  • Feature request for this actor? Open a ticket in the Issues tab or email contact@nanoscrape.com with the field you need and, if possible, a URL that shows the data live.
  • Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume. We ship one-off boards regularly.