Handshake Campus Jobs & Employer Showcase Extractor
Reads Handshake's public job explore page for campus internships and entry-level roles, plus the public employer showcase, returning title, company, location, salary, and deadline.
Open in Apify Store$0.99 / 1K on Free
Short answer
Handshake Campus Jobs & Employer Showcase Extractor is an Apify Store Actor for Handshake data that returns 13 published output fields, including title, company, location, salary. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 24 input settings; one is required (mode). It covers 5 of the 7 core Handshake fields this site tracks. Last updated Oct 21, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
13 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
titlecompanylocationemploymentTypesalarypostedDatejobUrlnameindustrycompanySizewebsitereviewCountprofileUrl
Not in the schema among the core Handshake fields: employment, job. The field matrix shows which other tools return them.
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | Yes | searchJobs | What to scrape. |
| searchQuery | string | No | – | Words matched against job titles and descriptions (mode=searchJobs/bySearchUrls). Leave empty to browse. |
| jobRole | string | No | any | Handshake role category used for discovery (mode=searchJobs/bySearchUrls). |
| internshipRole | string | No | any | Internship role category from the public /internships/ pages (implies internshipsOnly; mode=searchJobs). |
| location | string | No | any | City with a published Handshake jobs page (mode=searchJobs/bySearchUrls). |
| workplace | string | No | any | Remote, hybrid or on-site filter. |
| employmentType | string | No | any | Full-time or part-time filter. |
| internshipsOnly | boolean | No | false | Keep jobs whose title or description mentions an internship or co-op. |
| postedWithinDays | integer | No | – | Keep jobs posted in the last N days (1-365). Leave empty for any date. |
| companyFilter | string | No | – | Keep jobs whose employer name contains this text. |
Show the other 14 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| minSalary | integer | No | – | Keep jobs whose published maximum pay is at least this amount. Compare with the pay period selected below. |
| salaryPeriod | string | No | any | Restrict to jobs with pay published per year, month or hour. |
| jobIds | array | No | [] | Handshake numeric job IDs (mode=byJobUrls). |
| jobUrls | array | No | [] | Public Handshake job or share-preview URLs (mode=byJobUrls). |
| searchUrls | array | No | [] | Public joinhandshake.com/find-jobs/ or /internships/ listing URLs (mode=bySearchUrls). |
| employerQuery | string | No | – | Keep employers whose name contains this text (mode=employers). |
| includeProfiles | boolean | No | true | Fetch about, industry, size, ownership, address and reviews for each employer (mode=employers). |
| includeReviews | boolean | No | true | Add recent public review cards to employer profiles (mode=employers). |
| includeDescriptions | boolean | No | true | Add the full job description as HTML and plain text. |
| maxItems | integer | No | 50 | Maximum job records to return. |
| onlyNewJobs | boolean | No | false | Return only job IDs not seen in previous runs (mode=searchJobs/bySearchUrls/bySitemap). |
| resetMonitoringState | boolean | No | false | Clear the saved seen-job list before this run. |
| maxEmployers | integer | No | 100 | Maximum employer records to return (mode=employers). |
| maxReviewsPerEmployer | integer | No | 5 | Maximum recent public reviews to keep per employer profile (mode=employers, includeReviews=true). |
Example input
Built from the input form's published example values and defaults.
{
"mode": "searchJobs",
"jobRole": "software-engineering",
"internshipRole": "any",
"location": "any",
"workplace": "any",
"employmentType": "any",
"internshipsOnly": false,
"salaryPeriod": "any",
"jobIds": [],
"jobUrls": [],
"searchUrls": [],
"includeProfiles": true,
"includeReviews": true,
"includeDescriptions": false,
"maxItems": 1,
"onlyNewJobs": false,
"resetMonitoringState": false,
"maxEmployers": 1,
"maxReviewsPerEmployer": 1
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "searchJobs",
"jobRole": "software-engineering",
"internshipRole": "any",
"location": "any",
"workplace": "any",
"employmentType": "any",
"internshipsOnly": False,
"salaryPeriod": "any",
"jobIds": [],
"jobUrls": [],
"searchUrls": [],
"includeProfiles": True,
"includeReviews": True,
"includeDescriptions": False,
"maxItems": 1,
"onlyNewJobs": False,
"resetMonitoringState": False,
"maxEmployers": 1,
"maxReviewsPerEmployer": 1
}
run = client.actor("dataspryva/handshake-campus-jobs-and-employer-showcase").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "searchJobs",
"jobRole": "software-engineering",
"internshipRole": "any",
"location": "any",
"workplace": "any",
"employmentType": "any",
"internshipsOnly": false,
"salaryPeriod": "any",
"jobIds": [],
"jobUrls": [],
"searchUrls": [],
"includeProfiles": true,
"includeReviews": true,
"includeDescriptions": false,
"maxItems": 1,
"onlyNewJobs": false,
"resetMonitoringState": false,
"maxEmployers": 1,
"maxReviewsPerEmployer": 1
};
const run = await client.actor("dataspryva/handshake-campus-jobs-and-employer-showcase").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/dataspryva~handshake-campus-jobs-and-employer-showcase/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"searchJobs","jobRole":"software-engineering","internshipRole":"any","location":"any","workplace":"any","employmentType":"any","internshipsOnly":false,"salaryPeriod":"any","jobIds":[],"jobUrls":[],"searchUrls":[],"includeProfiles":true,"includeReviews":true,"includeDescriptions":false,"maxItems":1,"onlyNewJobs":false,"resetMonitoringState":false,"maxEmployers":1,"maxReviewsPerEmployer":1}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=dataspryva/handshake-campus-jobs-and-employer-showcase",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Handshake routes
It ranks 1 of 1 catalogue Actors for Handshake on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Handshake Campus Jobs & Employer Showcase Extractor 13 output fields, pay per event 5 of 7 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 6 of 7 core fields
from $0.05 / 1K - API Handshake EDU API Limited access fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: Handshake EDU API
Limited access. Handshake documents an EDU API for partner universities to read their own institution's data (applications, appointments and related tables), plus ATS integrations for employers. There is no public API for its job marketplace.
No public self-serve price is published; access is part of institution or employer accounts.
Other Store tools for Handshake
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Handshake Jobs Scraper | 31 | $1.00 |
| Handshake Jobs Scraper: Internships, Salaries & Job Deadlines | 26 | $0.05 |
| Handshake Jobs Scraper | 15 | $0.05 |
| Handshake Jobs Scraper | 9 | $0.99 |
| Handshake Jobs Scraper | 27 | $0.05 |
What people use it for
- find campus jobs
- browse employer profiles
- filter internships
Similar Actors
Czech Jobs.cz Postings, Salary & Brigady Finder
Search Jobs.cz Czech job postings and part-time brigady gigs by keyword, city, or profession, with salary, employment type, education, and…
Jobs.ch Swiss Job Listings by Region & Industry
Scrape job listings from jobs.ch, Switzerland's largest job board. Search by keyword or browse by canton, industry, occupational field, or…
JobsDB Hong Kong & Thailand Job Listings Extractor
Pull job listings from JobsDB's Hong Kong and Thailand markets by keyword, category, location, or company, with salary, work-type,…
LinkedIn Jobs Scraper with Salary & Company Enrichment
Search public LinkedIn job listings by keyword, location, salary band, job type and more, with full descriptions, parsed salary ranges, inferred…
Wellfound Startup Jobs Finder with Pay & Remote Filters
Find startup jobs on Wellfound and filter by title, keyword, location, remote status, job type, experience level, salary range and company.
Y Combinator Startup Directory with Founders & Jobs
Search Y Combinator's company directory by batch, industry, status, or keyword, and get each company's profile, founders, and open job postings.…
Questions people ask
How much does Handshake Campus Jobs & Employer Showcase Extractor cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Handshake Campus Jobs & Employer Showcase Extractor return?
Its published output schema lists 13 fields: title, company, location, employmentType, salary, postedDate, jobUrl, name, industry, companySize, website, reviewCount, and 1 more. A listed field is not guaranteed to be filled in every row.
What input does Handshake Campus Jobs & Employer Showcase Extractor need?
Required: mode. Optional settings include searchQuery, jobRole, internshipRole, location, workplace, employmentType.
How do I run Handshake Campus Jobs & Employer Showcase Extractor from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("dataspryva/handshake-campus-jobs-and-employer-showcase").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("dataspryva/handshake-campus-jobs-and-employer-showcase").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/dataspryva~handshake-campus-jobs-and-employer-showcase/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Handshake Campus Jobs & Employer Showcase Extractor on Apify Store
- Published build with input and output schema (JSON)
- Handshake EDU API documentation
Cite this page
Scraper Finder. "Handshake Campus Jobs & Employer Showcase Extractor." https://scraperfinder.com/catalogue/handshake-campus-jobs-and-employer-showcase/ (data checked 2026-11-12).
Run Handshake Campus Jobs & Employer Showcase Extractor
$0.99 per 1,000 results. Paste the example input above, set your Handshake query, then export the dataset. Still choosing? Compare every Handshake route.