EDJOIN Education Jobs Scraper avatar

EDJOIN Education Jobs Scraper

Pricing

from $0.90 / 1,000 results

Go to Apify Store
EDJOIN Education Jobs Scraper

EDJOIN Education Jobs Scraper

[💰 $0.9 / 1K] Extract K-12 school jobs from EDJOIN, the largest US education job board. Filter by keyword, location, state, category, 66 position types, employment type and posting date. Get title, district, city, county, salary range, deadline, full description and hiring contact email.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Turn EDJOIN — the largest US K-12 education job board, with roughly 18,400 live school and district postings — into a clean, structured dataset. Every row carries the job title, hiring district, county, salary range, application deadline, the full job description and the district's named hiring contact with their email address. Built for education recruiters, K-12 staffing agencies, EdTech sales teams and workforce researchers who need current district hiring data without opening thousands of posting pages by hand.

Why This Scraper?

  • The hiring contact's name and email on essentially every posting — full-detail runs return the district's actual hiring manager and a direct email address; across two separate 250-job runs both fields came back populated on 250 of 250 postings each time. That is the difference between a job list and a lead list.
  • 66 position types, not just "teacher" — target exact roles such as Teacher - Special Education, School Psychologist, Language, Hearing and Speech, Food Service Staff, Transportation Staff or Elementary School Principal, and stack as many as you like in a single run.
  • State filtering that genuinely filters — 22 states and territories that actually carry live EDJOIN postings, each resolved down to its individual counties, so "Oregon" returns Oregon districts instead of California districts that merely have "Oregon" in their name.
  • The whole board, not the 30% EDJOIN's own links hand you — EDJOIN's shareable search links quietly restrict results to postings with no online application: roughly 5,400 jobs instead of 18,400. This actor collects both kinds by default, and only narrows when you deliberately ask it to.
  • Salary on every single row, whether or not you turn on full details — structured pay range low and high, the pay unit (Annually, Per Hour, Monthly, Daily), free-text single-rate strings like $3,106.20 / $3,452.36 (with Speech Language Certificate), and the district's own additional salary note.
  • Four staffing categories and five employment types — Certificated, Certificated Management, Classified and Classified Management, crossed with Full time, Part time, Temporary, Remote and Management.
  • Complete job text, not a truncated teaser — the full description, the Requirements / Qualifications block, required credentials, required skills, length of work year (for example "185 Days + 2 Days New Teacher Orientation") and the district's EEO and additional-information section.
  • Salary-schedule and benefits documents attached to each job — full-detail runs also collect the district's "Links Related To This Job" list, typically salary schedules, formal job descriptions and benefits PDFs, as titled links.
  • Newest-first ordering with a visible cap — ask for the 500 freshest postings and get the 500 freshest, not an arbitrary slice of the board. Application deadlines come back on every row, so you always know what is still open.

Use Cases

Recruitment & Staffing

  • Build district outreach lists for the credentials you place — special education, speech and language, school psychology, school nursing.
  • Spot chronic understaffing by tracking which districts repeatedly re-post substitute and paraprofessional roles.
  • Run a daily feed of brand-new openings and push them straight into your applicant tracking system.
  • Reach the named hiring contact directly instead of routing through a generic district inbox.

EdTech & Vendor Sales Intelligence

  • Find districts staffing up in Information Technology / Computer Services ahead of a procurement cycle.
  • Watch for new Superintendent, Assistant Superintendent and Director-level hires — leadership turnover reliably precedes new vendor decisions.
  • Segment target accounts by county, district and staffing category to prioritise territory coverage.

Compensation Benchmarking

  • Compare annual pay ranges for the same position type across counties and districts.
  • Separate hourly, daily, monthly and annual pay units before you average anything.
  • Re-run the same search monthly and track how published salary schedules shift over a school year.

Labor-Market & Policy Research

  • Measure teacher-shortage pressure by counting open certificated roles per county over time.
  • Quantify the classified-versus-certificated hiring split across an entire state.
  • Study how long postings stay open by comparing posting date against application deadline.
  • Analyse summer-school and recruitment-centre hiring waves separately using the flags on each row.

Job Boards & Aggregators

  • Power a K-12-focused job board with structured postings, full descriptions and district logos.
  • De-duplicate cleanly across repeated runs using the stable posting ID on every row.
  • Populate listing pages with street addresses, ZIP codes, employment types and closing dates.

Getting Started

In the Apify Console you pick State, Job Category and Position Types from dropdowns of plain English names. If you write the input as JSON instead, those three fields take EDJOIN's own short code for each option — "state": "24" is California. Every code is listed in the Input Reference below, and each example here spells out what its codes mean.

{
"searchKeyword": "special education teacher",
"maxResults": 100
}

Fresh openings for specific roles in one state

{
"state": "24",
"positionTypes": ["9", "65"],
"postedWithinDays": 7,
"sortBy": "desc",
"maxResults": 500
}

California, limited to Teacher - Special Education and School Psychologist, posted in the last week, newest first.

{
"startUrls": [
"https://www.edjoin.org/Home/Jobs?keywords=school%20psychologist",
"https://www.edjoin.org/Home/JobPosting/2258100"
],
"includeJobDetails": true,
"maxResults": 200
}

Mix full search pages and individual postings — results are merged and de-duplicated.

Everything dialled in

{
"searchKeyword": "counselor",
"location": "Sacramento",
"state": "24",
"jobCategory": "1",
"positionTypes": ["16"],
"employmentType": "Full",
"applicationType": "true",
"postedWithinDays": 30,
"includeJobDetails": true,
"sortBy": "desc",
"maxResults": 1000
}

Counselor roles near Sacramento, California (24), certificated category (1), the Counselor position type (16), full time, online applications only, posted in the last month. Note that Application Type is a quoted string — "true", not true.

Input Reference

What to Collect

ParameterTypeDefaultDescription
searchKeywordstring"teacher"Job title, keyword, or the name of a school district or county office (e.g. "school psychologist", "Mt. Diablo Unified"). Leave blank to collect everything matching your filters.
locationstring""City, county or ZIP code to search near (e.g. "Sacramento", "94519"). Matched loosely, so a place name can also pull in districts with that word in their name.
statestringRestrict to a single state or territory. A dropdown of state names in the Console; in JSON, the state's code. All 22 options carry live postings: California 24, Washington 84, Michigan 46, Arizona 21, New York 57, Oregon 68, Kansas 38, Idaho 34, Nevada 52, Florida 30, Minnesota 47, Tennessee 78, Colorado 25, Maryland 44, New Jersey 55, District of Columbia 28, Hawaii 33, Indiana 36, North Carolina 59, North Dakota 60, Pennsylvania 70, Texas 79.
startUrlsarray[]Paste EDJOIN search links or links to individual job postings. Each is collected as its own task and results are merged and de-duplicated. Overrides the keyword, location, state and filter fields. maxResults applies to the whole run, so the first links can use up the budget before later ones start. A link to a single posting returns that page's own fields; a search link additionally carries position type, category, county and the structured pay range.

Filters

ParameterTypeDefaultDescription
jobCategorystringEDJOIN's top-level staffing category. In JSON, its code: Certificated 1, Certificated Management 2, Classified 3, Classified Management 4. Leave blank for all four.
positionTypesarrayPick any number of the 66 specific position types, from Teacher - Kindergarten through Superintendent, Custodial / Facilities / Maintenance and Confidential Employee. Ticked by name in the Console; in JSON, a list of codes — for example Teacher - K-6 48, Teacher - Special Education 9, Counselor 16, School Psychologist 65, Teacher Assistant / Aide / Paraprofessional 23, Custodial / Facilities / Maintenance 26. The full 66 are in the Console dropdown. Leave empty for every type.
employmentTypestringFull (full time), Part, Temporary, Remote, or Management. Remote is genuinely rare on a school-jobs board.
applicationTypestring"true" for online application only, "false" for no online application — quoted strings, not booleans. Leave blank to collect both, which is the widest result set; roughly three quarters of EDJOIN jobs accept online applications.
postedWithinDaysinteger0Only jobs posted in the last N days — 1 for the past 24 hours, 7 for a week, 31 for a month. 0 includes postings of any age.

Output Detail

ParameterTypeDefaultDescription
includeJobDetailsbooleantrueOpen each posting to collect the full description, requirements, required credentials and skills, length of work year, street address, ZIP, number of openings, district logo, related documents and the hiring contact's name and email. Turn off for a faster, lighter run that keeps the results-list summary.

Sorting & Limits

ParameterTypeDefaultDescription
sortBystring"desc"Newest first or Oldest first. Newest first is the right choice whenever you also set a maximum.
maxResultsinteger100Cap on jobs collected. Set to 0 to collect every job matching your search. Results arrive in pages and the run always keeps the whole page it is on, so you may receive a few extra results beyond your limit. Duplicates are removed, so a search whose pages overlap can also finish a few short of the cap. Any number from 10 to 1,000 comes back exactly; EDJOIN's smallest page is 10 jobs, so a cap below 10 still returns 10. The cap covers the whole run, not each Start URL.

Output

One row per job posting. Fields marked below as detail fields are filled in when includeJobDetails is on.

{
"postingId": 2258100,
"url": "https://www.edjoin.org/Home/JobPosting/2258100",
"title": "School Psychologist (2026-27 School Year)",
"jobType": "School Psychologist",
"jobTypeId": 65,
"jobCategory": "Certificated",
"categoryId": 1,
"employmentType": "Full Time",
"numberOpenings": 2,
"onlineApplication": true,
"isSummerSchool": false,
"isRecruitmentCenter": false,
"districtName": "Mt. Diablo Unified School District",
"districtLogo": "https://edjoinprodstoragewest.blob.core.windows.net/customerlogos/logo1320.png",
"employerUrl": "https://www.edjoin.org/mdusd",
"streetAddress": "1936 Carlotta Drive",
"city": "Concord",
"countyName": "Contra Costa",
"countyId": 7,
"fullCountyName": "Contra Costa County, CA",
"state": "California",
"stateId": 24,
"zip": "94519",
"salary": "$66,925.60 - $123,398.70 Annually",
"salaryType": "Pay Range",
"payRangeFrom": 66925.6,
"payRangeTo": 123398.7,
"payRangeUnit": "Annually",
"salaryInfo": "Placement on the salary schedule is based on verified prior experience.",
"datePosted": "2026-07-24T00:00:00+00:00",
"applicationDeadline": "2026-08-22T00:00:00+00:00",
"createdAt": "2026-07-24T09:12:00+00:00",
"scrapedAt": "2026-07-31T14:02:11+00:00",
"jobSummary": "Provide psychological services to students across three elementary sites.",
"description": "Under the direction of the Director of Special Education, the School Psychologist conducts assessments, participates in IEP teams...",
"requirements": "Valid California Pupil Personnel Services Credential with School Psychology authorization. Three letters of recommendation dated within the last 12 months.",
"educationRequirements": "Master's degree in School Psychology or a closely related field",
"requiredSkills": "Psychoeducational assessment, IEP development, crisis response, bilingual Spanish preferred",
"workHours": "185 Days + 2 Days New Teacher Orientation",
"commentsAndOtherInformation": "The District is an equal opportunity employer and does not discriminate on the basis of race, color, national origin...",
"contactName": "Jennifer Alvarez",
"contactEmail": "jalvarez@mdusd.org",
"relatedLinks": [
{ "title": "Certificated Salary Schedule 2026-27", "url": "https://www.edjoin.org/.../salary-schedule.pdf" },
{ "title": "Job Description", "url": "https://www.edjoin.org/.../school-psychologist.pdf" }
]
}

Core Job Fields

FieldTypeDescription
postingIdintegerEDJOIN posting ID — stable de-duplication key across runs
urlstringDirect link to the posting on EDJOIN
titlestringPosition title as advertised by the district
jobTypestringPosition type label, e.g. "Teacher - K-6", "School Psychologist"
jobTypeIdintegerNumeric position type ID
jobCategorystringCertificated, Certificated Management, Classified, or Classified Management
categoryIdintegerNumeric staffing category ID
employmentTypestringe.g. "Full Time", "Part Time, Remote"
numberOpeningsintegerNumber of positions on this posting (detail)
onlineApplicationbooleanWhether the district accepts an EDJOIN online application
isSummerSchoolbooleanFlagged as a summer-school position
isRecruitmentCenterbooleanPosted through an EDJOIN recruitment centre

Employer & Location

FieldTypeDescription
districtNamestringHiring school district or county office of education
districtLogostringDistrict logo image URL (detail)
employerUrlstringThe district's own EDJOIN listings page (detail)
streetAddressstringStreet address of the work site (detail)
citystringCity
countyNamestringCounty name
countyIdintegerNumeric county ID
fullCountyNamestringe.g. "Contra Costa County, CA"
statestringFull state name, e.g. "California"
stateIdintegerNumeric state ID
zipstringZIP code (detail)

Compensation

FieldTypeDescription
salarystringReady-to-display summary, e.g. "$66,925.60 - $123,398.70 Annually"
salaryTypestring"Pay Range" or "Single Rate"
payRangeFromnumberNumeric bottom of the pay range
payRangeTonumberNumeric top of the pay range
payRangeUnitstringAnnually, Per Hour, Monthly, Daily
singleRatestringFlat-rate text when the district posts one rate rather than a range
singleRateUnitstringUnit that applies to the flat rate
salaryInfostringDistrict's free-text note on placement, stipends and differentials

Dates

FieldTypeDescription
datePostedstringWhen the district published the posting (ISO 8601)
applicationDeadlinestringClosing date for applications (ISO 8601)
createdAtstringWhen the record was created on EDJOIN (ISO 8601)
scrapedAtstringWhen this row was collected (ISO 8601)

Job Detail & Contact

FieldTypeDescription
jobSummarystringDistrict-written summary of the role (detail)
descriptionstringFull job description and essential duties (detail)
requirementsstringRequirements / Qualifications — credentials, documents and experience (detail)
educationRequirementsstringDegree or credential required, where the district states one (detail)
requiredSkillsstringSkills and competencies listed on the posting (detail)
workHoursstringLength of work year, e.g. "185 Days + 2 Days New Teacher Orientation" (detail)
commentsAndOtherInformationstringEEO statement and additional district information (detail)
contactNamestringNamed hiring contact at the district (detail)
contactEmailstringHiring contact's email address (detail)
relatedLinksarrayTitled links attached to the job — salary schedules, job descriptions, benefits documents (detail)

Tips for Best Results

  • Leave Application Type blank unless you truly need one kind. EDJOIN's own shareable links restrict results to postings with no online application, which drops roughly 70% of the board. Blank is the widest and usually the right answer.
  • Use State rather than Location for anything geographic. Location is a loose text match, so "Washington" will surface California districts named "Washington Unified". State resolves to real counties and filters properly.
  • Pair Newest first with a maximum for monitoring runs. postedWithinDays: 1 plus sortBy: "desc" and a modest cap gives you a clean daily delta feed instead of re-collecting the whole board.
  • Turn off full job details when you only need a market snapshot. Salary range, district, county, employment type, posting date and application deadline all come from the results list, so a details-off run is much faster — and still fully priced-out for compensation analysis.
  • Turn full job details on whenever you want contacts. The hiring contact's name and email live only on the posting page, alongside the full description, credentials and salary-schedule links. This single switch is what turns a job feed into an outreach list.
  • Watch the pay unit before you compare numbers. Classified roles are frequently posted Per Hour or Monthly while certificated roles are Annually — normalise on payRangeUnit first, and note that singleRate is descriptive text (it can carry conditions like "with Speech Language Certificate"), not a plain number.
  • Split very large sweeps by state, county or category. EDJOIN will not serve past roughly 100,000 results within one search, and narrower searches also cost less because filtering happens before results are returned.
  • De-duplicate on postingId. Districts occasionally re-post the same role under a new title, and posting ID is the only field guaranteed stable across runs.

Pricing

From $0.90 per 1,000 results — cheaper than the alternatives on the store, with far more filtering and the hiring contact included. Bronze, Silver and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.105$0.100$0.095$0.090
1,000$1.05$1.00$0.95$0.90
10,000$10.50$10.00$9.50$9.00
100,000$105.00$100.00$95.00$90.00

A result is one job posting — one row in your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Standard Apify platform fees apply on top.

Integrations

Export data in JSON, CSV, Excel, XML or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation, straight into your CRM or ATS
  • Google Sheets — Direct spreadsheet export for compensation tracking
  • Slack / Email — Notifications when new postings match your search
  • Webhooks — Trigger your own systems the moment a run finishes
  • Apify API — Full programmatic access and scheduling

This actor collects publicly available job postings that EDJOIN publishes for candidates to read. Use the data responsibly and in line with EDJOIN's terms of service.

Hiring contact names and email addresses are published by school districts specifically so that applicants and interested parties can reach them. If you use these details for outreach, you remain responsible for complying with applicable anti-spam, marketing and data-protection laws in your jurisdiction — including CAN-SPAM, GDPR and CCPA where they apply — and for honouring opt-out requests. Do not use the data to harass individuals or to misrepresent an affiliation with any district. You are responsible for how you use the data you collect.