Data / GIS Specialist – Build NJ Solar Homeowner Dataset (Satellite + Automation)

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

TYPE OF WORK

Any

SALARY

$1000/month

HOURS PER WEEK

40

DATE UPDATED

Mar 16, 2026

JOB OVERVIEW

**Only applications submitted with audio or video résumé will be considered **

Please answer the following questions in your submittal.

1. What technical approach you would use to identify homes with solar installed.
2. Any tools or software you would use (Python, GIS, APIs, etc.).
3. Your estimated timeline to produce 10,000 addresses.

Job Overview
We are a U.S.-based solar company looking for a data-savvy researcher or developer who can build a targeted dataset of residential properties in New Jersey that have rooftop solar installed.

This project will require using satellite imagery, mapping tools, automation, and/or existing datasets to identify properties with solar panels and compile a clean, verified address list.

We are specifically looking for someone who understands how to combine imagery analysis, parcel data, and automation to generate large datasets efficiently.

?

Project Goal

Create a dataset of 10,000–50,000+ residential properties in New Jersey that have rooftop solar systems.

The final dataset should include:

• Property Address
• City
• State
• ZIP Code
• Phone
• Latitude / Longitude (if available)
• Confirmation method (imagery detection, permit data, etc.)

Bonus data (if available):

• Homeowner name
• Year solar was installed
• Property characteristics

?

Preferred Technical Approach

You may use any combination of the following methods:

• Satellite imagery analysis (Google Maps, Bing, Mapbox, etc.)
• AI / computer vision models to detect rooftop solar panels
• GIS tools (QGIS, ArcGIS, etc.)
• Parcel boundary datasets to convert coordinates into addresses
• Automation or scripting (Python preferred)
• Public solar permit or incentive datasets
• Property data providers

We are not looking for purely manual research unless it is combined with automation or structured grid-based mapping workflows.

?

Expected Workflow (Example)

Typical workflows may include:
1. Identify rooftops with solar panels using satellite imagery or AI detection.
2. Extract coordinates of those properties.
3. Match coordinates with parcel boundary datasets to retrieve addresses.
4. Compile results into a structured spreadsheet.

?

Required Skills

• Experience with data scraping or extraction
• Familiarity with satellite imagery or mapping platforms
• Ability to work with large datasets
• Strong problem-solving skills

?

Strongly Preferred

• Python scripting
• GIS tools (QGIS / ArcGIS)
• Experience with mapping APIs (Google Maps API, Mapbox, etc.)
• Computer vision / image detection
• Real estate or parcel datasets

?

Deliverables

A clean spreadsheet or database containing verified NJ properties with solar panels.

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.0162
Total Execution Time  0.0176
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,944 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Data-GIS-Specialist-Build-NJ-Solar-Homeowner-Dataset-Satellite-Automation-1602352
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0108 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1602352
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 793039
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1602352
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-15',ej.date_added) duration_daysDATEDIFF('2026-04-15',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-04-15',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1602352' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1602352 
0.0008   UPDATE employer_jobs SET hit_counts '***Mar-16-2026=739***Mar-17-2026=65***Mar-18-2026=53***Mar-19-2026=31***Mar-20-2026=17***Mar-21-2026=8***Mar-22-2026=20***Mar-23-2026=17***Mar-24-2026=16***Mar-25-2026=8***Mar-26-2026=11***Mar-27-2026=15***Mar-28-2026=15***Mar-29-2026=11***Mar-30-2026=16***Mar-31-2026=21***Apr-01-2026=6***Apr-02-2026=7***Apr-03-2026=9***Apr-04-2026=4***Apr-05-2026=11***Apr-06-2026=8***Apr-07-2026=14***Apr-08-2026=3***Apr-09-2026=6***Apr-10-2026=13***Apr-11-2026=9***Apr-14-2026=2***Apr-15-2026=1' WHERE job_id'1602352'  
0.0008   UPDATE employer_jobs SET monthly_hits '***Mar-2026=1062***Apr-2026=93' WHERE job_id'1602352'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1602352' 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` = 1602352 
0.0042   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '793039'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)