Edjoin Jobs Scraper
Pricing
Pay per usage
Edjoin Jobs Scraper
Scrape teaching job listings from Edjoin instantly. Extract educator positions, salaries, locations & qualifications in bulk. Perfect for job aggregators, recruitment platforms & education career data analysis.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Share
Extract EdJoin job listings with clean, structured output for monitoring, research, and hiring workflows. Collect posting metadata, deadlines, salary details, and optional API description fields in one dataset. Built for fast job tracking, reporting, and automation-ready exports.
Features
- Comprehensive Job Collection — Gather EdJoin listings with title, district, location, type, salary, and posting URL.
- Description Mapping — Build
Description_htmlandDescription_textfrom available listing and posting data. - API Description Enrichment — Enrich descriptions from multiple API feeds and fill remaining gaps from posting metadata.
- Clean Dataset Output — Removes empty and null-like values so output stays compact and analysis-friendly.
- Duplicate-Safe Pagination — Prevents duplicate postings across paginated runs for stable exports.
- Flexible Search Inputs — Filter by keyword, location, and start URL query settings.
- Pagination Controls — Limit collection with
results_wantedandmax_pages.
Use Cases
Job Market Monitoring
Track newly posted education jobs by role or location. Monitor changes in demand and posting volume over time.
Recruitment Intelligence
Build structured hiring datasets for district-level analysis. Compare posting activity, job types, and application timelines.
Career Opportunity Dashboards
Feed internal dashboards with normalized EdJoin data. Keep opportunities searchable for staff, counselors, or candidates.
Deadline and Salary Tracking
Capture key timing and compensation fields for reporting. Use the dataset to prioritize urgent applications and salary benchmarking.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | https://www.edjoin.org/home/jobs | Optional EdJoin jobs URL with existing filters. |
keyword | String | No | "" | Search keyword such as role, district, or specialty. |
location | String | No | "" | Location filter such as city, county, state, or ZIP. |
collectDetails | Boolean | No | false | Backward-compatibility flag. Description extraction is now attempted automatically. |
results_wanted | Integer | No | 20 | Maximum number of job records to collect. |
max_pages | Integer | No | 10 | Maximum number of pages to request. |
proxyConfiguration | Object | No | Residential proxy preset | Optional proxy settings for reliability. |
Output Data
Each dataset item includes normalized job data with empty values removed.
| Field | Type | Description |
|---|---|---|
posting_id | Number | Unique EdJoin posting ID. |
title | String | Job title. |
district_name | String | Hiring district or organization. |
city | String | Job city. |
county_name | String | County name. |
full_county_name | String | Full county label. |
state_name | String | State name. |
job_type | String | Job category/type. |
employment_type | String | Employment type (for example full time or part time). |
salary_info | String | Salary details text. |
pay_range_from | String | Lower bound of listed pay range. |
pay_range_to | String | Upper bound of listed pay range. |
pay_range_unit | String | Pay range unit (for example annually, hourly). |
single_rate | String | Single rate value when available. |
single_rate_unit | String | Unit for single rate value. |
online_application | Boolean | Whether online application is available. |
date_posted | String | Posting date in ISO format. |
deadline | String | Application deadline in ISO format. |
display_flag | String | Posting visibility mode. |
number_openings | Number | Number of openings when provided. |
category_id | Number | Category ID from source. |
job_type_id | Number | Job type ID from source. |
creation_date | String | Record creation timestamp in ISO format. |
Description_html | String | Sanitized description HTML (p, ul, ol, li, br, strong, em). |
Description_text | String | Plain text description mapped from available API description fields. |
source_page | Number | Page number where the listing was collected. |
url | String | Job posting URL. |
Usage Examples
Basic Search
Collect a small dataset by keyword and location:
{"keyword": "teacher","location": "California","results_wanted": 20}
Include Description Conversion
Collect listings and include Description_html and Description_text:
{"keyword": "special education","location": "Los Angeles","collectDetails": true,"results_wanted": 30,"max_pages": 3}
Start from a Filtered URL
Run from a pre-filtered EdJoin jobs URL:
{"startUrl": "https://www.edjoin.org/home/jobs?keywords=math&location=California&sort=postingDate&order=desc","collectDetails": true,"results_wanted": 50,"max_pages": 5}
Sample Output
{"posting_id": 2189365,"title": "Mandarin Dual Language Immersion Teacher (2nd Grade) 2026-2027","district_name": "El Monte City School District","city": "El Monte","county_name": "Los Angeles","state_name": "California","job_type": "Teacher - Other","employment_type": "Full Time","salary_info": "Salary Schedule 2 - $73,118 to $113,152+ Benefits","online_application": true,"date_posted": "2026-02-27T00:00:00.000Z","deadline": "2026-08-27T07:00:00.000Z","creation_date": "2026-02-26T11:08:50.193Z","Description_html": "<p>Requirements content...</p><ul><li>Credential copy</li><li>Resume</li></ul>","Description_text": "Requirements content... Credential copy. Resume.","source_page": 1,"url": "https://www.edjoin.org/Home/JobPosting/2189365"}
Tips for Best Results
Start Small, Then Scale
- Begin with
results_wantedbetween 10 and 30 for quick validation. - Increase limits after confirming output quality for your filters.
Improve Relevance
- Use specific keywords like subject area, credential type, or district.
- Pair
keywordandlocationto reduce noise and improve precision.
Handle Large Collection Runs
- Use proxy settings for long or high-volume runs.
- Keep
max_pagesaligned with your expected result volume.
Integrations
Connect your dataset with:
- Google Sheets — Build live job trackers.
- Airtable — Create searchable hiring databases.
- Make — Automate routing and notifications.
- Zapier — Trigger downstream tasks from fresh job data.
- Webhooks — Deliver dataset updates to custom systems.
Export Formats
- JSON — For APIs and custom apps.
- CSV — For spreadsheet workflows.
- Excel — For business reporting.
- XML — For legacy integrations.
Frequently Asked Questions
How many jobs can I collect in one run?
You can collect as many as available for your filters, controlled by results_wanted and max_pages.
Can I scrape from a custom filtered URL?
Yes. Provide a filtered startUrl and the actor will continue from that context.
Are empty fields removed automatically?
Yes. Empty and null-like values are omitted from dataset items to keep output clean.
Can duplicate jobs appear across pages?
Runs are deduplicated by posting ID, so repeated jobs from pagination overlap are skipped.
What are Description_html and Description_text?
They are mapped description fields from available API description content.
Why might some jobs not include description fields?
Most jobs now include description fields, but a small subset can still be empty when no description text is available in source responses.
Can I run this on a schedule?
Yes. You can schedule runs to keep job feeds updated automatically.
Support
For issues or feature requests, contact support through the Apify Console.
Resources
Legal Notice
Use this actor only for legitimate data collection purposes and in compliance with website terms and applicable laws. You are responsible for lawful and ethical use of collected data.