Schoolspring Scraper avatar

Schoolspring Scraper

Pricing

from $4.90 / 1,000 results

Go to Apify Store
Schoolspring Scraper

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

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Norm Data

๐Ÿซ 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

CapabilityThis actorClosest competitor
Multiselect category, grade level, and job type in one runyesno, one value at a time
Every category and subcategory a job is tagged underyessingle category field
Specific school name, separate from the districtyesnot shown
Search by ZIP codeyesstate/city only
Full detail on every search result, no extra stepyesseparate detail lookup
Minimum advertised pay filteryesyes
Posted-within-days filteryesyes

๐Ÿ“ฆ What data you get

EntityUseful fields
JobTitle, full description, employment type, positions, shift, EOE statement, external job code, and application instructions.
CategoriesEvery category and subcategory the job is tagged under.
EmployerThe district name and, separately, the specific school this posting belongs to.
PayDisplay text, stated pay period, parsed min/max, and pay type.
ContactName, title, phone, fax, email, and full address.
LocationsEvery school location for this job, each with exact latitude and longitude.
LinksThe real external application link, plus the district's own job board and SchoolSpring site.
DatesPosted, 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:

SectionWhat it's for
1 ยท ModeChoose whether to search by filters or look up known job IDs.
2 ยท Search filtersKeyword, 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 upKnown 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 install
bun test
bun run src/main.ts