Web Crawler / Data Scraping Developer

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

TBD

HOURS PER WEEK

5

DATE UPDATED

Feb 11, 2026

JOB OVERVIEW

We're looking for a developer to build a web crawling service that automatically searches school websites for:

Bid postings
Job openings
Board documents

The tool should crawl multiple school and district sites, extract relevant data, and deliver it in a clean, usable format (dashboard, spreadsheet, or feed).

Requirements:

Proven experience with web scraping/crawling
Ability to handle different site structures and PDFs
Clean, reliable data output
Clear communication and documentation
Please include the word “RED” in the subject line to confirm you’ve read this.
Ongoing support or updates a plus

Please send your resume, sample web scraping projects, and your proposed rate/budget for this work.

Applications WITHOUT these will NOT be reviewed.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0192
Total Execution Time  0.0206
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,497,120 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Web-Crawler-Data-Scraping-Developer-1552701
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0135 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1552701
 LIMIT 1 
0.0015   SELECT *
FROM `employers`
WHERE `employer_id` = 361846
 LIMIT 1 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1552701
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-25',ej.date_added) duration_daysDATEDIFF('2026-07-25',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-07-25',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1552701' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1552701 
0.0008   UPDATE employer_jobs SET hit_counts '***Jan-12-2026=35***Jan-13-2026=92***Jan-14-2026=20***Jan-15-2026=13***Jan-16-2026=8***Jan-17-2026=10***Jan-18-2026=5***Jan-19-2026=6***Jan-20-2026=5***Jan-21-2026=7***Jan-22-2026=119***Jan-23-2026=20***Jan-24-2026=6***Jan-25-2026=5***Jan-26-2026=10***Jan-27-2026=7***Jan-28-2026=3***Jan-29-2026=3***Jan-30-2026=3***Jan-31-2026=5***Feb-01-2026=4***Feb-02-2026=10***Feb-03-2026=5***Feb-05-2026=3***Feb-06-2026=1***Feb-07-2026=1***Feb-08-2026=2***Feb-09-2026=5***Feb-10-2026=5***Feb-11-2026=79***Feb-12-2026=14***Feb-13-2026=9***Feb-14-2026=11***Feb-15-2026=17***Feb-16-2026=11***Feb-17-2026=18***Feb-18-2026=5***Feb-19-2026=6***Feb-20-2026=4***Feb-21-2026=6***Feb-22-2026=5***Feb-23-2026=2***Feb-24-2026=5***Feb-25-2026=8***Feb-26-2026=3***Feb-27-2026=5***Feb-28-2026=3***Mar-01-2026=5***Mar-02-2026=9***Mar-03-2026=1***Mar-04-2026=2***Mar-05-2026=1***Mar-07-2026=3***Mar-08-2026=2***Mar-09-2026=2***Mar-10-2026=2***Mar-11-2026=4***Mar-12-2026=1***Mar-13-2026=4***Mar-14-2026=1***Mar-15-2026=2***Mar-16-2026=2***Mar-17-2026=3***Mar-18-2026=3***Mar-19-2026=4***Mar-21-2026=1***Mar-23-2026=2***Mar-25-2026=2***Mar-26-2026=1***Mar-27-2026=3***Mar-31-2026=84***Apr-01-2026=50***Apr-02-2026=2***Apr-04-2026=1***Apr-05-2026=1***Apr-06-2026=1***Apr-07-2026=1***Apr-08-2026=1***Apr-12-2026=2***Apr-16-2026=2***Apr-17-2026=3***Apr-20-2026=2***Apr-21-2026=24***Apr-22-2026=14***Apr-23-2026=2***Apr-24-2026=7***Apr-26-2026=1***Apr-27-2026=2***Apr-28-2026=2***Apr-29-2026=1***Apr-30-2026=3***May-03-2026=5***May-04-2026=2***May-05-2026=2***May-08-2026=2***May-09-2026=3***May-11-2026=1***May-12-2026=3***May-13-2026=1***May-15-2026=2***May-16-2026=2***May-17-2026=1***May-19-2026=1***May-20-2026=1***May-25-2026=1***May-26-2026=3***May-27-2026=1***May-28-2026=1***May-30-2026=1***May-31-2026=1***Jun-01-2026=4***Jun-02-2026=2***Jun-03-2026=3***Jun-11-2026=2***Jun-14-2026=1***Jun-20-2026=1***Jun-23-2026=4***Jun-24-2026=3***Jun-26-2026=4***Jun-28-2026=1***Jun-30-2026=1***Jul-02-2026=1***Jul-04-2026=4***Jul-05-2026=5***Jul-06-2026=2***Jul-07-2026=1***Jul-09-2026=3***Jul-10-2026=1***Jul-11-2026=1***Jul-12-2026=1***Jul-13-2026=1***Jul-15-2026=1***Jul-17-2026=1***Jul-25-2026=1' WHERE job_id'1552701'  
0.0005   UPDATE employer_jobs SET monthly_hits '***Jan-2026=382***Feb-2026=247***Mar-2026=144***Apr-2026=121***May-2026=34***Jun-2026=26***Jul-2026=23' WHERE job_id'1552701'  
0.0019   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1552701' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1552701 
0.0042   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '361846'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)