Craigslist Jobs Scraper: Extract Local & Gig Jobs avatar

Craigslist Jobs Scraper: Extract Local & Gig Jobs

Pricing

from $3.00 / 1,000 serp results

Go to Apify Store
Craigslist Jobs Scraper: Extract Local & Gig Jobs

Craigslist Jobs Scraper: Extract Local & Gig Jobs

Extract job and gig listings from Craigslist.org - the US's largest classifieds job board. Covers 430+ city subdomains. Returns title, location, posted date, full description, salary, contact emails and phones extracted from posting body. RSS-first for speed and reliability.

Pricing

from $3.00 / 1,000 serp results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Craigslist Jobs Scraper: US Local, Gig and Small-Biz Jobs

Extract job and gig listings from Craigslist.org - the US's largest classifieds-format job board. Covers 430+ city subdomains including New York, SF Bay Area, Chicago, Los Angeles, Seattle, Boston, and more.

Built on standard HTTP with RSS feed parsing and HTML fallback. No browser automation. Craigslist session cookie (cl_b) is handled automatically.

What it does

Pulls live job and gig listings from Craigslist across any combination of US cities and search keywords. Uses RSS feeds by default for fast, reliable SERP results with clean ISO timestamps. Optionally fetches each posting page for full description, salary details, and contact information (emails, phones, apply URLs) embedded directly in posting bodies.

Supports standard employment listings (/jjj/) and short-term gigs (/ggg/) with Craigslist-specific fields including category_subcode (e.g. sof for software, hea for healthcare), is_telecommute, is_paid, has_image, and location_area (Craigslist neighborhood tags).

Sample output

{
"_type": "job",
"id": "HMhqfPGf8RGtB8GTMmrRGg",
"title": "Registered Nurse (RN) Cart Nurse",
"job_url": "https://www.craigslist.org/view/d/brooklyn-registered-nurse-rn-cart-nurse/HMhqfPGf8RGtB8GTMmrRGg",
"source_url": "https://www.craigslist.org/view/d/brooklyn-registered-nurse-rn-cart-nurse/HMhqfPGf8RGtB8GTMmrRGg",
"source_platform": "craigslist.org",
"company_name": "Brooklyn Center",
"company_website": null,
"location": "New York City",
"country": "US",
"location_area": null,
"city_slug": "newyork",
"city_name": "New York City",
"posted_at_text": "2026-08-24T19:25:54+0000",
"posted_at_datetime": "2026-08-24T19:25:54Z",
"employment_type": "full-time",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"description": "Apply Now DESCRIPTION Brooklyn Center is hiring a Registered Nurse (RN) in Brooklyn, NY. We now offer Daily Pay through a trusted third-party provider...",
"description_full": "Apply Now\n\nDESCRIPTION\nBrooklyn Center is hiring a Registered Nurse (RN) in Brooklyn, NY.\n\nWe now offer Daily Pay...",
"description_html": "<h2><a href=\"https://click.appcast.io/t/RDLsrQb5...\" rel=\"nofollow\"><strong>Apply Now</strong></a></h2>...",
"description_md": "## [Apply Now](https://click.appcast.io/t/RDLsrQb5...)\n\nDESCRIPTION\n\n**Brooklyn Center** is hiring...",
"contact_emails": [],
"contact_phones": [],
"contact_urls": [],
"apply_url": "https://click.appcast.io/t/RDLsrQb5Iyf9JI5xwuOjigrGDf6QnwJCQBfEqSLVyMssIVM23jHEsg_LbFPM1OwE?pid=3115741",
"category": "jjj",
"category_subcode": "hea",
"is_telecommute": false,
"is_paid": true,
"has_image": false,
"compensation_type": null,
"ok_for_recruiters": null,
"street_address": "170 Buffalo Ave",
"postal_code": "11213",
"full_address": "170 Buffalo Ave, Brooklyn, NY 11213, US",
"latitude": 40.670937,
"longitude": -73.93459,
"google_maps_url": "https://www.google.com/maps/search/40.670937,-73.934590",
"craigslist_reply_email": null,
"search_query": null,
"scraped_at": "2026-08-22T10:30:00Z"
}

Pricing

EventPrice
Actor start$0.001
SERP result (includeJobDetails=false)$0.003 per job
Detail result (includeJobDetails=true)$0.005 per job

Typical cost: $3 per 1,000 jobs in SERP mode (title, city, location area, posted date, category). Detail mode ($5/1,000) adds full description in 4 formats, salary, contact emails and phones, company name, and apply URL.

New to Apify? Every account gets a $5 free monthly platform credit - enough for around 1,000 results before you pay anything.

Input

FieldTypeDefaultDescription
searchQueriesarray of strings-Keywords like "software engineer", "warehouse", "delivery driver". Combine with cities to target specific metros.
searchUrlsarray of strings-Direct Craigslist search URLs. Any city subdomain.
startUrlsarray of strings-Direct Craigslist posting URLs for targeted scraping.
citiesarray of strings-City slugs: "newyork", "sfbay", "chicago", "losangeles", "seattle", "boston", "washingtondc", "atlanta", "miami", "denver". Required when using searchQueries.
categoriesarray select["jjj"]"jjj" = employment jobs. "ggg" = gigs (short-term, freelance, hourly).
includeJobDetailsbooleanfalseFetch each posting page for full description, salary, contacts, and apply URL. Charges job-detail-result.
includeCompanyDetailsbooleanfalseExtract company name and website from posting body (requires includeJobDetails=true).
postedWithinDaysinteger-Only return postings from the last N days. Requires includeJobDetails=true.
minSalaryinteger-Skip postings where disclosed salary falls below this USD amount.
useRSSbooleantrueUse RSS feeds for SERP (faster, cleaner dates). Disable only if RSS parsing fails.
maxResultsinteger5Total cap across all cities, queries, and categories.
maxResultsPerQueryinteger5Cap per city+keyword+category combination.
maxConcurrencyinteger3Parallel detail page fetches (when includeJobDetails=true).

Output fields

Identity

  • id: Craigslist 10-digit post ID
  • title: job title as listed
  • job_url, source_url: canonical Craigslist posting URL

Company

  • company_name: extracted from posting body (Craigslist does not require posters to provide this)
  • company_website: URL from posting body when poster includes it

Location

  • location: display string combining city and area
  • country: always "US" for US Craigslist sites
  • location_area: Craigslist neighborhood or area tag (e.g. "manhattan", "east bay", "downtown")
  • city_slug: subdomain slug (e.g. "newyork", "sfbay")
  • city_name: human-readable city name (e.g. "New York City", "SF Bay Area")
  • street_address: street address extracted from schema.org JSON-LD ("170 Buffalo Ave"). Empty string when the listing has no structured address.
  • postal_code: ZIP/postal code from JSON-LD ("11213"). Empty string when not present.
  • full_address: concatenated full address from JSON-LD parts ("170 Buffalo Ave, Brooklyn, NY 11213, US"). Empty when no structured address.
  • latitude: decimal latitude from schema.org GeoCoordinates JSON-LD (40.670937). Null when no geo data.
  • longitude: decimal longitude from schema.org GeoCoordinates JSON-LD (-73.934590). Null when no geo data.
  • google_maps_url: Google Maps search URL built from lat/lon ("https://www.google.com/maps/search/40.670937,-73.934590"). Empty when no coordinates.

Job Details

  • employment_type: full-time, part-time, contract, temporary, internship, gig
  • salary_min, salary_max: parsed salary bounds (when disclosed)
  • salary_currency: always "USD" for US sites
  • salary_period: year, month, week, hour
  • salary_text: raw salary text as listed (e.g. "$18-22/hr", "DOE")

Contact & Application (available when includeJobDetails=true)

  • apply_url: external application URL. Extracted first from the "Apply Now" link in the listing's JSON-LD description (covers ATS redirect links like appcast.io, Workable, Greenhouse), then falls back to regex patterns in the posting body. Null when the poster doesn't include a direct apply link.
  • craigslist_reply_email: the @job.craigslist.org relay email shown when a user clicks the reply button on a listing. Always null: Craigslist reveals this address only via an AJAX call triggered by a button click; it is not present in the page HTML source. Included as a field for schema completeness.

Recruiter policy (available when includeJobDetails=true)

  • ok_for_recruiters: nullable boolean. true when the poster explicitly marks the listing "OK for recruiters to contact this job poster". false when marked "Principals only. Recruiters, please don't contact this job poster". null when neither notice appears (most listings; poster did not state a preference).

Craigslist-specific

  • category: "jjj" (jobs) or "ggg" (gigs)
  • category_subcode: subcategory code from URL path ("sof" = software, "adm" = admin, "hea" = healthcare, "ret" = retail, etc.)
  • is_telecommute: true when posting includes remote/telecommute flag
  • is_paid: false for unpaid/volunteer gig listings
  • has_image: true when posting includes photos
  • compensation_type: free-text pay type field from posting attributes

Description (available when includeJobDetails=true)

  • description: short plain-text snippet (~500 chars)
  • description_full: full plain text with line breaks
  • description_html: raw HTML from posting body
  • description_md: Markdown rendering (headings, lists, links preserved)

Contacts (extracted from posting body, available when includeJobDetails=true)

  • contact_emails[]: direct email addresses - many Craigslist posters include these
  • contact_phones[]: phone numbers
  • contact_urls[]: external URLs (job board self-references excluded)

Meta

  • posted_at_text: raw date string from RSS or HTML
  • posted_at_datetime: ISO 8601 UTC timestamp
  • search_query, scraped_at

Use with AI Agents

This actor is available as an MCP tool:

https://mcp.apify.com?tools=santamaria-automations/craigslist-jobs-scraper

Point any MCP-compatible agent at that URL to let it search and retrieve Craigslist job listings on demand across US cities.

Why this scraper

  • Unique content: small business, gig, hyper-local, and informal roles that never appear on Indeed or LinkedIn - Craigslist is where local employers post without needing corporate HR accounts
  • Contact info in body: Craigslist posters frequently include direct email addresses and phone numbers in the posting body - this scraper extracts them for lead generation workflows
  • 430+ US city subdomains: federated structure means you can target exactly the markets you care about, from major metros to mid-size cities
  • RSS-first for reliability: Craigslist's RSS feeds return clean ISO timestamps and structured titles without fragile CSS selectors
  • Gig market coverage: the /ggg/ category covers freelance, short-term, and informal work that no traditional job board indexes

Common use cases

  • Recruiter sourcing for hard-to-fill local roles (trades, hospitality, healthcare support) posted by small employers who don't use ATS platforms
  • Gig platform aggregation and competitive monitoring across cities
  • Hyper-local hiring market research by city and job category
  • Lead generation from contact emails embedded in posting bodies
  • Small business hiring intent signals (companies posting on Craigslist indicate active immediate hiring)

Fleet - international extraction

  • Job Feed: normalized feed across 50+ international job boards, use alongside Craigslist for employer-brand roles
  • Career Site Jobs Scraper: direct-from-career-pages extraction for companies that don't post on aggregators
  • Website Job Extractor: any-website job extractor, works on any domain including smaller US job boards

USA-focused peers

  • Indeed Scraper: largest US job aggregator; employer-brand and corporate postings that complement Craigslist's informal listings
  • LinkedIn Jobs Scraper: global job board with strong US coverage, structured company data and seniority levels
  • USAJobs Federal Scraper: US federal government jobs with GS pay grades, agency, and series codes
  • SnagAJob Scraper: US hourly and local shift-work jobs, strong overlap with Craigslist's gig and retail categories
  • ZipRecruiter Scraper: broad US job market across all sectors, fast-moving listings
  • Levels.fyi Scraper: US FAANG and tech-company roles with verified total-compensation data
  • WayUp Scraper: US intern and entry-level jobs, complements Craigslist for campus recruiting

Enrichment

  • Website Email Scraper: enrich Craigslist contact URLs with additional email addresses from company sites

Support

Found an issue or have a question? Open a ticket via the Issues tab or email contact@nanoscrape.com - we reply within 6 hours on business days.