EdJoin $1π° Education Jobs, Districts & School Hiring
Pricing
from $1.00 / 1,000 results
EdJoin $1π° Education Jobs, Districts & School Hiring
From $1/1K. Extract education job postings from EdJoin.org for K-12 and higher-ed hiring. Search by keyword, location, filters, or EdJoin URLs. Returns district, location, salary, openings, deadlines, requirements, descriptions, and optional contact/address details.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
EdJoin Scraper
Extract education job postings from EdJoin (the K-12 and higher-education hiring board used by school districts and county offices). Search by keyword, location and filters, or paste EdJoin URLs. Every job comes back as a flat record with district, location, salary, openings, deadlines and (optionally) contact details, full address, requirements and descriptions.
Why this scraper
- High throughput: up to 200 jobs per result page with about 35 fields each, plus optional per-job detail enrichment.
- More fields than other EdJoin tools: structured salary range, county and state IDs, employer logo, district portal URL, plus full detail enrichment (contact name and email, street address, requirements, skills, descriptions, apply link).
- Lowest cost tier by default: EdJoin serves fine over datacenter proxy, so you are not forced onto expensive residential bandwidth.
- Two input modes: keyword + filter search, or paste search and job-posting URLs.
- Real filters that narrow server-side: job type, category, state, online-application-only, posted-within-days, sort order.
- Forward auto-pagination, de-duplication, per-record output (a stopped run keeps everything already fetched).
- Resilient connection handling: automatic retry, exit-IP rotation, optional residential escalation with a request budget cap, and a backup pool failover.
Data you get
Sample shape: values are illustrative placeholders, not from a live posting.
| Field | Example |
|---|---|
| id | 20000001 |
| url | https://www.edjoin.org/Home/JobPosting/20000001 |
| title | Elementary Teacher, 1.0 FTE, 2026-2027 |
| districtName | Sample Unified School District |
| city | Sampleton |
| countyName | Sample |
| countyFullName | Sample County, CA |
| stateName | California |
| stateId | 24 |
| zip | 90000 |
| jobType | Teacher - K-6 |
| jobTypeId | 48 |
| categoryName | Certificated |
| categoryId | 1 |
| salaryInfo | See attached certificated salary schedule |
| payRangeFrom | $60,000 |
| payRangeTo | $117,000 |
| payRangeUnit | Annually |
| employmentType | Full Time |
| numberOpenings | 2 |
| onlineApp | true |
| datePosted | 2026-01-01T00:00:00.000Z |
| applicationDeadline | 2026-02-01T00:00:00.000Z |
| workYearLength | 2026-2027 School Year |
| contactName | Jane Doe |
| contactEmail | agent@example.com |
| streetAddress | 100 Sample Blvd. |
| postalCode | 90000-0000 |
| addressRegion | California |
| employerUrl | https://www.edjoin.org/sample |
| employerLogo | https://edjoinprodstoragewest.blob.core.windows.net/customerlogos/logo000000000.png |
| educationRequirements | Valid California Teaching Credential |
| skills | BA/BS plus subject-matter competence |
| description | See attachment on original job posting |
| offsiteUrl | https://www.example.com/apply |
| scrapedAt | 2026-01-01T00:00:00.000Z |
Listing-only runs (fetchDetails off) still return about 35 fields. The detail-only fields (contactName, contactEmail, streetAddress, educationRequirements, experienceRequirements, skills, jobSummary, description, workYearLength, employerLogo, offsiteUrl, attachmentName) are filled when fetchDetails is on.
How to use
Basic keyword search:
{"mode": "search","keywords": "teacher","maxPages": 2,"fetchDetails": true}
Search with filters (special-education teaching jobs that take an online application, posted in the last week):
{"mode": "search","keywords": "special education","jobTypeIds": ["9"],"onlineApplicationOnly": true,"postedWithinDays": 7,"maxPages": 3}
Statewide classified jobs by category and state:
{"mode": "search","keywords": "","categoryId": 2,"stateId": 24,"maxListings": 500}
Paste URLs (search results and a single job posting):
{"mode": "url","urls": ["https://www.edjoin.org/Home/Jobs?keywords=principal&location=&searchType=all","https://www.edjoin.org/Home/JobPosting/2231157"],"fetchDetails": true}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | search | search = keyword + filters; url = paste links |
| keywords | string | teacher | Job title, keyword or organization (search mode) |
| location | string | (empty) | Free-text location to narrow the search |
| jobTypeIds | array | (empty) | Restrict to job-type numeric IDs (see jobTypeId in output) |
| categoryId | integer | (empty) | 1 Certificated, 2 Classified, 3 Management, 4 Other |
| stateId | integer | (empty) | EdJoin state ID (24 = California) |
| onlineApplicationOnly | boolean | false | Only jobs accepting an EdJoin online application |
| postedWithinDays | integer | 0 | Only jobs posted within N days (0 = no limit) |
| sortBy | string | newest | newest or oldest first |
| urls | array | (example) | EdJoin search or job-posting URLs (url mode) |
| fetchDetails | boolean | true | Fetch each job's detail page for the richer fields |
| maxListings | integer | 20 | Primary cap on total jobs (0 = unlimited) |
| maxPages | integer | 500 | Safety ceiling on pages per search (200 jobs each); leave at max and cap with maxListings |
| maxResidentialRequests | integer | 0 | Cap on residential requests per run (0 = unlimited) |
| proxy | object | Apify datacenter | Connection. Datacenter is the cheapest and is enough |
Output example
Sample shape: values are illustrative placeholders, not from a live posting.
{"id": 20000001,"url": "https://www.edjoin.org/Home/JobPosting/20000001","title": "Elementary Teacher, 1.0 FTE, 2026-2027","districtName": "Sample Unified School District","city": "Sampleton","countyName": "Sample","countyFullName": "Sample County, CA","stateName": "California","stateId": 24,"zip": "90000","jobType": "Teacher - K-6","jobTypeId": 48,"categoryName": "Certificated","categoryId": 1,"salaryInfo": "See attached certificated salary schedule","payRangeFrom": "$60,000","payRangeTo": "$117,000","payRangeUnit": "Annually","employmentType": "Full Time","numberOpenings": 2,"onlineApp": true,"datePosted": "2026-01-01T00:00:00.000Z","applicationDeadline": "2026-02-01T00:00:00.000Z","workYearLength": "2026-2027 School Year","contactName": "Jane Doe","contactEmail": "agent@example.com","streetAddress": "100 Sample Blvd.","addressLocality": "Sampleton","addressRegion": "California","postalCode": "90000-0000","addressCountry": "US","employerName": "Sample Unified School District","employerUrl": "https://www.edjoin.org/sample","employerLogo": "https://edjoinprodstoragewest.blob.core.windows.net/customerlogos/logo000000000.png","educationRequirements": "Valid California Teaching Credential","experienceRequirements": "Online application required; incomplete applications are screened out.","skills": "BA/BS plus subject-matter competence","jobSummary": "Full job summary text appears here when fetchDetails is on.","description": "See attachment on original job posting","offsiteUrl": "https://www.example.com/apply","attachmentName": "Job-Description-00000000.pdf","searchQuery": "teacher","scrapedAt": "2026-01-01T00:00:00.000Z"}
Plan requirement
Runs on any Apify plan. The default connection is Apify datacenter proxy, which EdJoin accepts and which is included on the free plan. Residential proxy is optional and only needed if you ever see rejections; it requires a paid plan (Starter or higher) and you can cap how many residential requests a run may use with maxResidentialRequests. A backup connection pool is used automatically if Apify proxy is unavailable.
Pricing is pay per result: there is no monthly rental. Detail enrichment is billed only for jobs whose detail page is actually fetched (fetchDetails on); listing-only runs are not charged that event.