Schoolspring Scraper
Pricing
from $4.90 / 1,000 results
Schoolspring Scraper
Search SchoolSpring's US K-12 job board by keyword, location or ZIP, district, or multiselect category, grade level, and job type filters, or look up job IDs. Every job includes the full description, tagged categories, the specific school, pay range, contact info, and the application link.
Pricing
from $4.90 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share

๐ซ SchoolSpring K-12 Jobs Scraper
Search SchoolSpring, a major US K-12 education job board, by keyword, location, district, and real multiselect category, grade level, and job type filters, or look up known job IDs directly. No login, no account.
Every job comes back with the full description, every category and subcategory it's tagged under, the specific school's name, pay range, the district contact's real name, phone, and email, exact school coordinates, and the real external application link, useful for education staffing, teacher job search tools, district hiring research, and edtech outreach.
๐ฏ Who uses it?
๐ Education staffing agencies
Build a current list of open teaching and support positions by district, subject, and category, with a direct contact to reach out to.
๐ฉโ๐ซ Teacher job search tools
Power a search or alert product on top of live, structured listings instead of scraping raw HTML yourself.
๐ District hiring researchers
Compare a district's advertised pay ranges, job types, and posting volume against nearby districts.
๐ฃ Edtech sales and outreach teams
Build a list of districts currently hiring, with contact details, for targeted outreach.
โจ What it does
- Search: by keyword, location (city, state, or ZIP code), district or organization name, or a specific district's own SchoolSpring site.
- Real multiselect filters: pick several job types, grade levels, or categories in one run, not just one at a time.
- Quality filters: only jobs posted within a chosen number of days, or only jobs meeting a minimum listed pay.
- Look up: specific, already-known job IDs directly, one row per ID.
- Full detail on every row: complete job description, every category and subcategory the job is tagged under, pay range, requirements, degree and experience preferences, the specific school's name alongside the district name, the district contact's name, title, phone, fax, email, and address, every school location with exact coordinates, and the real external application link.
Missing source values are returned as null, never invented.
Why this scraper
- Real multiselect filters. Pick several job types, grade levels, or categories at once, the source's own filters only take one value each.
- The specific school's name, not just the district, so a lead or a listing points at the actual building.
- Search by ZIP code, not just city or state text.
- Full detail already included. Every search result comes fully enriched, no separate lookup or toggle needed.
- The district contact's real phone and email come standard, not stripped out or held back.
How it compares
| Capability | This actor | Closest competitor |
|---|---|---|
| Multiselect category, grade level, and job type in one run | yes | no, one value at a time |
| Every category and subcategory a job is tagged under | yes | single category field |
| Specific school name, separate from the district | yes | not shown |
| Search by ZIP code | yes | state/city only |
| Full detail on every search result, no extra step | yes | separate detail lookup |
| Minimum advertised pay filter | yes | yes |
| Posted-within-days filter | yes | yes |
๐ฆ What data you get
| Entity | Useful fields |
|---|---|
| Job | Title, full description, employment type, positions, shift, EOE statement, external job code, and application instructions. |
| Categories | Every category and subcategory the job is tagged under. |
| Employer | The district name and, separately, the specific school this posting belongs to. |
| Pay | Display text, stated pay period, parsed min/max, and pay type. |
| Contact | Name, title, phone, fax, email, and full address. |
| Locations | Every school location for this job, each with exact latitude and longitude. |
| Links | The real external application link, plus the district's own job board and SchoolSpring site. |
| Dates | Posted, displayed, start date, application deadline, and close date. |
๐ก Use cases
๐ Build a district contact list for staffing outreach
{ "mode": "search", "keyword": "special education", "jobTypeIds": [1], "maxItems": 200 }
๐ซ Search near a ZIP code, multiple grade levels at once
{ "mode": "search", "location": "97124", "gradeLevelIds": [3, 5], "maxItems": 100 }
๐ฐ Only recent, well-paid openings
{ "mode": "search", "keyword": "principal", "postedWithinDays": 14, "minPay": 70000, "maxItems": 100 }
๐ Resolve known job IDs directly
{ "mode": "lookup", "jobIds": ["5929662", "5936800"] }
โ๏ธ How the input is organised
Maximum results sits at the very top, since it applies no matter what you're doing. Below it, the form is split into three numbered sections:
| Section | What it's for |
|---|---|
| 1 ยท Mode | Choose whether to search by filters or look up known job IDs. |
| 2 ยท Search filters | Keyword, location (city, state, or ZIP), district or organization name, a specific district's SchoolSpring subdomain, multiselect job type, grade level, and category filters, and optional posted-within-days and minimum-pay quality filters. |
| 3 ยท Look up | Known SchoolSpring job IDs to resolve directly. |
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
๐ก๏ธ Limits & responsible use
This Actor reads only SchoolSpring's own public job board. It never signs in and never accesses anything gated behind an account.
District contact details are public directory data the district itself publishes, not personal information scraped from elsewhere. Use them in line with SchoolSpring's terms and applicable law.
A job ID in Look up mode that doesn't resolve writes a row with an error field instead of failing the run.
๐ง Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
Local development
bun installbun testbun run src/main.ts