ApartmentJobs Scraper — Apartment Industry Job Listings avatar

ApartmentJobs Scraper — Apartment Industry Job Listings

Pricing

from $3.00 / 1,000 job listings

Go to Apify Store
ApartmentJobs Scraper — Apartment Industry Job Listings

ApartmentJobs Scraper — Apartment Industry Job Listings

Extract apartment industry job listings from ApartmentJobs.com: titles, employers, locations, salary ranges, experience levels, rent-discount perks, full descriptions, and apply links.

Pricing

from $3.00 / 1,000 job listings

Rating

0.0

(0)

Developer

Crab Walker

Crab Walker

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a month ago

Last modified

Categories

Share

ApartmentJobs Scraper

Scrape apartment industry job listings from ApartmentJobs.com, the National Apartment Association's job board — roughly 16,700 live openings for leasing consultants, maintenance technicians, property managers, community managers, and groundskeepers.

Search by keyword and location, filter by category, experience, salary band, or the employee rent-discount perk, or point the Actor straight at any job, company, city, state, or category page. No login or cookies are used.

By default the Actor visits each job page to return the full description, normalized location, job category, and remote flag alongside the search-card data.

Input

The simplest input is:

{
"keywords": "maintenance technician",
"location": "Atlanta, GA",
"maxItems": 100
}

Narrow the search with a radius and the board's own facets:

{
"keywords": "leasing",
"location": "Austin, TX",
"radiusMiles": 50,
"categories": ["leasing", "communityManager"],
"experienceLevels": ["entryLevel", "from2To5Years"],
"salaryRanges": ["from40kTo75k"],
"rentDiscounts": ["upTo50"],
"maxItems": 200,
"includeDescription": true
}

Leave keywords and location empty to browse every listing on the board. Each selected category is searched separately, as are all searchTerms × locations combinations:

{
"searchTerms": ["porter", "groundskeeper"],
"locations": ["Dallas, TX", "Houston, TX"],
"maxItemsPerSearch": 25
}

startUrls accepts any apartmentjobs.com URL — a single job (/job/108313/maintenance-technician/), a company's openings (/company/886/cottonwood-residential/), a city (/cities/jobs-in-austin/), a state (/states/jobs-in-texas/), a category (/categories/maintenance/), remote roles (/countries/remote-jobs/), or a search URL you copied from the site. The aliases keyword, position, and maxItemsPerSearch are also supported.

Output

Every row carries the same fields, whichever input produced it:

  • Job ID, canonical URL, title, and apply URL
  • Employer name, company profile URL, and logo
  • Displayed location plus split city, state, and country
  • Salary range, experience level, employment type, category, industry, and remote flag
  • Advertised employee rent discount — a perk specific to this board
  • Featured-listing flag, human-readable and ISO posting dates, and expiration date
  • Plain-text and HTML descriptions
  • Search provenance and scrape timestamp

Fields stay null when the board does not publish them for a listing. Salary, rent discount, and experience appear on search cards; descriptions, categories, and the remote flag require includeDescription.

Field notes

Four fields behave in ways worth knowing before you build on them:

  • industry is not an industry. The board populates schema.org industry with the job category, so this field mirrors category and emits values like "Community Manager". It describes the role, not the employer's line of business — never route it into a firmographic or ICP industry filter.
  • salary is not normalized. It is the string the board displays, and the period varies per listing: "$27.00 - $28.00 hourly" and "$75,000 - $85,000 yearly" both occur. Parse the trailing unit before comparing figures.
  • postedAt is display text, publishedAt is a timestamp. postedAt is what the page shows ("Jul 30, 2026"); publishedAt is RFC 3339 UTC and is the field to sort or filter on. Search cards carry a date only and are anchored to 00:00:00Z; job pages carry a precise time.
  • state format depends on the source. Search cards abbreviate ("GA"), job pages spell out ("Georgia"). Normalize if you join on it.

Featured listings repeat across result pages; saveOnlyUniqueItems (on by default) deduplicates them by job ID.

Pricing

The Actor uses pay-per-event pricing. Platform usage is included.

EventFreeBronzeSilverGoldPlatinumDiamond
Actor start (per run)$0.001$0.001$0.001$0.001$0.001$0.001
Job listing$0.005$0.004$0.0035$0.003$0.002$0.0012
Add-on: full job details$0.002$0.0016$0.0013$0.0011$0.0009$0.0006

The add-on is charged only for jobs whose detail page was actually fetched, so includeDescription: false cuts the cost of a bulk export substantially. At the Free-tier rate, 1,000 jobs with full descriptions cost about $7.00; without descriptions, about $5.00. Failed requests and listings not written to the dataset are never charged.

Responsible use

This Actor requests only publicly available, signed-out ApartmentJobs.com pages, and honours the paths the site's robots.txt disallows. Use reasonable limits and delays, respect applicable laws and the site's terms, and do not use scraped data for spam or for automated decisions about individuals.

ApartmentJobs.com answers datacenter address ranges with HTTP 403, so US residential proxies are enabled by default and are effectively required. Blocks are per exit IP rather than per fingerprint: sessions are sticky per search, a blocked address is retired and rotated immediately, and browser-level TLS/header impersonation is used without solving CAPTCHAs.

Development and deployment

npm ci
npm test
npm run lint

Add APIFY_API_TOKEN as an encrypted GitHub Actions secret. Pull requests run tests and linting; pushes to main deploy the Actor.