Craigslist For Sale Scraper with Deal Intelligence avatar

Craigslist For Sale Scraper with Deal Intelligence

Pricing

from $4.80 / 1,000 results

Go to Apify Store
Craigslist For Sale Scraper with Deal Intelligence

Craigslist For Sale Scraper with Deal Intelligence

Scrape Craigslist for-sale listings from any city and get AI-powered deal scoring, trust analysis, freshness ratings, red flag detection, and opportunity scores. Ideal for bargain hunters, resellers, and market researchers.

Pricing

from $4.80 / 1,000 results

Rating

0.0

(0)

Developer

Ian Dikhtiar

Ian Dikhtiar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

6 days ago

Last modified

Share

Craigslist For Sale Scraper

Scrape Craigslist for-sale listings with AI-powered deal scoring, trust analysis, and opportunity metrics. Get intelligent insights on every listing to find the best deals.

What it does

This actor scrapes Craigslist "for sale" listings across any US city and enriches each result with 16 intelligence metrics including deal scoring, trust analysis, freshness indicators, and market demand signals.

Input Parameters

ParameterTypeDefaultDescription
locationstring(required)Craigslist subdomain (e.g. sfbay, newyork, chicago)
categorystringsssCategory code (sss=all, ele=electronics, fua=furniture, etc.)
searchQuerystringKeywords to search for
maxResultsinteger50Max results (1-500)
minPriceintegerMinimum price filter
maxPriceintegerMaximum price filter
postedTodaybooleanfalseOnly today's listings
hasPicsbooleanfalseOnly listings with photos
conditionstringnew, like new, excellent, good, fair, salvage
proxyConfigurationobjectApify proxy settings

Output Schema

Each result contains the listing data plus an intelligence object:

FieldTypeDescription
idstringCraigslist listing ID
titlestringListing title
pricenumberParsed price (null if not listed)
priceFormattedstringDisplay price (e.g. "$250")
urlstringFull listing URL
locationstringNeighborhood/area
postedAtstringISO timestamp
descriptionstringFull listing text
conditionstringItem condition
allImagesarrayImage URLs
intelligenceobjectSee below

Intelligence Metrics

1. Deal Score (dealScore: 0-100)

Percentile-based price ranking within the result set. Cheapest items score highest. Uses title heuristics ("OBO", "firm") when price is missing.

2. Value Category (valueCategory: string)

Human-readable deal label based on dealScore thresholds.

3. Listing Freshness (listingFreshness: 0-100)

How recently the item was posted. Higher = newer.

4. Freshness Label (freshnessLabel: string)

"Just Listed" | "Recent" | "A Few Days Old" | "Stale Listing"

5. Photo Quality Score (photoQualityScore: 0-100)

Based on photo count with bonuses for visual diversity and high-resolution images.

6. Description Quality (descriptionQuality: 0-100)

Evaluates length, word variety, specs/measurements, contact info, with penalties for ALL CAPS and excessive punctuation.

7. Trust Score (trustScore: 0-100)

Composite seller trust indicator. Factors: photos, description detail, contact method, location, spam keywords.

8. Price Per Unit (pricePerUnit: number|null)

Computed when listing mentions "lot of X", "pack of 5", etc.

9. Red Flags (redFlags: string[])

Warning indicators: no photos, short description, suspicious pricing, ALL CAPS, spam keywords, relisting.

10. Opportunity Score (opportunityScore: 0-100)

The main "should I buy?" signal. Weighted composite of deal, freshness, trust, and photo scores with demand signal boost.

11. Opportunity Label (opportunityLabel: string)

"Act Now" | "Worth Checking" | "Maybe" | "Pass" | "Avoid"

12. Estimated Retail Price (categoryEstimatedRetailPrice: number|null)

Best-effort MSRP lookup from 100+ product keyword matches.

13. Savings vs Retail (savingsVsRetail: number|null)

Retail price minus listing price. Positive = savings. Null if retail unknown.

14. Title Sentiment (titleSentiment: string)

"Positive" (mint, like new) | "Negative" (broken, parts only) | "Neutral"

15. Estimated Days on Market (estimatedDaysOnMarket: integer|null)

Days since the listing was posted.

16. Market Demand Signal (marketDemandSignal: string)

"High Demand" | "Motivated Seller" | "Bargain Hunter Target" | "Standard"

Use Cases

Bargain Hunting

Filter results by opportunityScore > 70 to find the best deals quickly.

Market Research

Analyze the distribution of dealScore across a category to understand pricing trends.

Flipping Items

Look for listings where savingsVsRetail > 50 and trustScore > 60 to find profitable flip opportunities.

Monitoring Listings

Track listingFreshness combined with redFlags to spot new listings while avoiding scams.

Pricing

PAY_PER_EVENT: $0.01/run + $0.05/1K listings

FAQ

Q: What locations are supported? Any valid Craigslist subdomain (e.g. sfbay, newyork, chicago, losangeles, seattle, etc.)

Q: How many results can I get? Up to 500 per run. The scraper handles pagination automatically.

Q: Does it handle CAPTCHAs? The scraper detects CAPTCHA pages and logs a warning. Use Apify proxy configuration for better success rates.

Q: Why are some intelligence fields null? Fields like pricePerUnit and savingsVsRetail are only computed when enough data is available (e.g., quantity mentions in title, known retail price match).

Q: How accurate is the retail price estimate? The lookup table covers 100+ popular products. It matches keywords in the title, so accuracy depends on how well the title describes the product.