Skip to content
    ↑↓ to choose · Enter to open

    · 16 min read

    Trucking Jobs In USA Scraper: 50 States Covered (2026)

    By CrawlerBros Engineering Team

    Carrier profiles return up to 22 fields, including fleet size, pay schedules, and sign-on bonuses. This scraper extracts CDL driver job listings, company profiles, and state-level market data from TruckingJobsInUSA.com across all 50 states and over 1,200 cities. It provides structured data for 15 equipment types and 40 major carriers at a free-plan price of $5.00 per 1,000 results. This is for recruitment analysts and logistics researchers who need to benchmark driver compensation or regional freight demand. It is not for anyone who needs direct driver contact details, which the records do not include.

    Try it: open Trucking Jobs In USA Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Trucking Jobs In USA Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Trucking Jobs In USA Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 15, so a first run returns at most 15 results and costs at most $0.075 in result charges. That is enough to see the real shape of the data before deciding anything.

    Trucking Jobs In USA Scraper was last updated on 2026-08-07. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 692,561 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Trucking Jobs In USA Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The maxItems control has the most direct impact on your bill because it caps the number of results written to the dataset. To verify your configuration without high costs, use the example input with a cap of 15 items to confirm your chosen mode returns the expected fields.

    How do you run Trucking Jobs In USA Scraper from the API?

    The schema marks 1 of its 15 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~trucking-jobs-in-usa-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"jobListings","equipmentTypes":["dry-van"],"states":["texas"],"citySlugs":["dallas-tx"],"corridorSlugs":["i-80"],"maxItems":15}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "jobListings",
      "equipmentTypes": [
        "dry-van"
      ],
      "states": [
        "texas"
      ],
      "citySlugs": [
        "dallas-tx"
      ],
      "corridorSlugs": [
        "i-80"
      ],
      "maxItems": 15
    }
    
    run = client.actor("crawlerbros~trucking-jobs-in-usa-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "jobListings",
      "equipmentTypes": [
        "dry-van"
      ],
      "states": [
        "texas"
      ],
      "citySlugs": [
        "dallas-tx"
      ],
      "corridorSlugs": [
        "i-80"
      ],
      "maxItems": 15
    }
    
    const run = await client.actor('crawlerbros~trucking-jobs-in-usa-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

    Which Trucking Jobs In USA Scraper inputs matter, and which can you skip?

    The mode control determines which of the 11 data structures the Actor returns. For most initial runs, you should set mode to jobListings and use states to narrow the search instead of relying on a broad keyword search.

    • mode (string): What to scrape. Default: "jobListings".
    • equipmentTypes (array): Filter to specific equipment/specialty types. Leave empty to include all 15 types. Default: [].
    • states (array): Filter to specific US states. Leave empty to include all 50 states. Default: [].
    • citySlugs (array): City-state slugs to fetch, e.g. dallas-tx, chicago-il (also accepts Dallas, TX form). The source covers 1,200+ cities - too many to list as a dropdown; see /jobs-by-city/sitemap.xml on truckingjobsinusa.com for the full list. Required for mode=byCity. Default: [].
    • corridorSlugs (array): Filter to specific interstate freight corridors. Leave empty to include all 20 corridors. Default: [].
    • maxItems (integer): Hard cap on emitted records. Default: 50.
    • companySlugs (array): Limit to specific carriers. Leave empty to include all 40 profiled carriers. Default: [].
    • nonCdlJobTypes (array): Filter to specific non-CDL trucking-adjacent job guides. Leave empty to include all 8 types. Default: [].
    • careerPaths (array): Filter to specific trucking career-path guides. Leave empty to include all 13 paths. Default: [].
    • leaseOnTypes (array): Filter to specific owner-operator lease-on program guides. Leave empty to include all 3 types. Default: [].
    • glossaryTerms (array): Filter to specific trucking-glossary terms. Leave empty to include all 65 terms. Default: [].
    • jobType (string): Only keep carriers offering this job type / operation. Default: "".

    The other 3 controls, with their defaults, are listed in the input schema on Trucking Jobs In USA Scraper on Apify.

    Fixed-choice controls: mode accepts 11 values (default jobListings), including jobListings (by equipment type + state), companies (Carrier / company profiles), byState (State trucking-market data), byEquipmentType (Equipment / specialty type guides); jobType accepts 19 values (default ""), including "" ((none - all job types)), Automotive, Bulk, Dedicated.

    What does Trucking Jobs In USA Scraper return?

    The records are ideal for building driver pay benchmarks and carrier comparison tools because they include specific payMin and payMax fields. They do not contain direct recruiter phone numbers or driver application histories.

    jobListing records (mode=jobListings`)

    • jobId, title, category, cdlClass
    • employer, location, postedDateText
    • payRange, payMin, payMax, homeTime, experienceRequired
    • description, requirements[], payBenefits[]
    • equipmentType, equipmentTypeTitle, state, stateName, stateAbbr
    • sourceUrl, recordType: "jobListing", scrapedAt

    company records (mode=companies`)

    • companySlug, companyName
    • headquarters, headquartersCity, headquartersState
    • fleetSize, fleetSizeApprox
    • about, payRange, payMin, payMax, minExperience
    • jobTypes[], benefits[], paySchedule, signOnBonus
    • websiteUrl, reviewUrl, payPageUrl
    • sourceUrl, recordType: "company", scrapedAt

    stateMarket records (mode=byState`)

    • stateSlug, stateName, stateAbbr, description
    • avgCdlSalary, avgCdlSalaryMin, avgCdlSalaryMax
    • keyIndustries[], majorCities[], freightCorridors[], cdlRequirements
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "stateMarket", scrapedAt

    equipmentType records (mode=byEquipmentType`)

    • equipmentSlug, equipmentTitle, cdlClass, demandLevel
    • averagePay, averagePayMin, averagePayMax
    • description, requirements[], dayInTheLife
    • pros[], cons[], topStates[], topCompaniesHiring[] - {name, rank}
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "equipmentType", scrapedAt

    cityMarket records (mode=byCity`)

    • citySlug, cityLabel, stateName, stateAbbr, tagline
    • avgCdlSalary, avgCdlSalaryMin, avgCdlSalaryMax
    • population, populationApprox, truckStops, truckStopsCount, costOfLiving
    • topIndustries[], majorEmployers[], nearbyCorridors[], description
    • jobTypeBreakdown[] - {jobType, payRange}
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "cityMarket", scrapedAt

    nonCdlJob records (mode=nonCdlJobs`)

    • jobSlug, jobTitle, description
    • averagePay, averagePayMin, averagePayMax, physicalDemand, entryBarrier, homeTime
    • dayInTheLife, requirements[], certifications[], pros[], cons[], careerPath
    • topCompaniesHiring[], topStates[]
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "nonCdlJob", scrapedAt

    bestCompany records (mode=bestCompanies`)

    • rank, companyName, companySlug, hiringStatus (Actively Hiring / Hiring / Selective)
    • summary, avgPay, avgPayApprox, bestFor
    • stateSlug, stateName, stateAbbr
    • sourceUrl, recordType: "bestCompany", scrapedAt

    corridor records (mode=byCorridor`)

    • corridorSlug, corridorName, corridorTagline
    • totalMiles, totalMilesApprox, avgPay, avgPayPerMileMin, avgPayPerMileMax, dailyTrucks, bestTime
    • description, statesAlong[], majorCities[]
    • topFreightTypes[], topCarriers[], truckStops[], challenges[]
    • relatedCorridors[] - {name, corridorSlug}
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "corridor", scrapedAt

    careerPath records (mode=careerPaths`)

    • careerSlug, careerTitle, tagline
    • averagePay, averagePayMin, averagePayMax, timeToAchieve, stepsToGetThereText
    • description, dayInTheLife, jobOutlook
    • howToBecome[] - {step, duration, description}
    • skillsNeeded[], requirements[]
    • relatedCareerPaths[] - {careerTitle, careerSlug}
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "careerPath", scrapedAt

    leaseOnProgram records (mode=leaseOnPrograms`)

    • equipmentSlug, equipmentTitle, title, eyebrow, description
    • typicalPayPerMile, typicalPayPerMileMin, typicalPayPerMileMax, typicalPayPerMileNote
    • soloAnnualGross, soloAnnualGrossNote, typicalNet, typicalNetNote
    • weeklySettlementBreakdown[] - {item, amount}
    • equipmentRequirements[], experienceThresholds[], laneMix[]
    • negotiationChecklist[], whoShouldNotLeaseOn[], carrierComparisonChecklist[]
    • overview
    • faqs[] - {question, answer}
    • sourceUrl, recordType: "leaseOnProgram", scrapedAt

    glossaryTerm records (mode=glossary`)

    • termSlug, term, category
    • shortDefinition, fullDefinition
    • faqs[] - {question, answer}
    • relatedTerms[] - {termSlug, term, shortDefinition}
    • sourceUrl, recordType: "glossaryTerm", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Trucking Jobs In USA Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Select one of the eleven available mode options such as jobListings or companies to define the structure of the returned records.
    2. Populate the states or equipmentTypes arrays to narrow the search scope if you are using jobListings mode.
    3. Provide at least one entry in citySlugs, such as dallas-tx or Dallas, TX, if you have set the mode to byCity.
    4. Check the recordType field in the first few results of a test run to ensure it matches your chosen mode before scaling.
    5. Adjust the minPay or maxPay filters to exclude records that do not meet your specific compensation thresholds.
    6. Enter a keyword in the searchQuery field to match against title or description if you are looking for specific endorsements or benefits.
    7. Set maxItems to a small value for the first run to verify that fields like payRange or homeTime are populating as expected.
    8. Inspect the final dataset to confirm that equipmentTypeTitle or stateName are correctly mapped for each record.

    How do you apply it? Three worked playbooks

    These are Trucking Jobs In USA Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Job seekers / recruiters

    Outcome: Compare pay, home time, and requirements across equipment types and states in bulk

    Configure: mode: "jobListings", equipmentTypes: ["dry-van", "reefer"], states: ["texas", "california"]

    Working method: Execute a run across high-volume states to establish a baseline for payMin and homeTime. Filter the output to identify which equipment types provide the best balance of compensation and home time for specific CDL classes.

    Deliverable: A dataset of job postings containing employer names, pay ranges, and detailed experience requirements.

    Stop condition: The dataset contains more than one recordType or the employer field is consistently null.

    Use case 2: Carrier research

    Outcome: Benchmark fleet size, pay range, benefits, and sign-on bonuses across 40 major carriers

    Configure: mode: "companies", companySlugs: [], jobType: "OTR"

    Working method: Initiate a comprehensive scrape of the 40 major carriers while filtering by the OTR jobType. Compare the fleetSize and benefits fields across the results to identify market leaders in driver compensation and fleet capacity.

    Deliverable: A spreadsheet of carrier profiles including fleet size, pay schedules, and structured benefits lists.

    Stop condition: The number of company records is significantly lower than 40 when no companySlugs are specified.

    Use case 3: Career-content sites

    Outcome: Pull equipment-type guides (pros/cons, day-in-the-life, requirements) to power driver-education content

    Configure: mode: "byEquipmentType", equipmentTypes: ["flatbed", "tanker"]

    Working method: Pull guides for different equipment types to extract structured pros, cons, and dayInTheLife narratives. Review the demandLevel field to prioritize content for high-growth trucking specialties.

    Deliverable: A library of equipment-specific guides including training requirements and career outlook data.

    Stop condition: The demandLevel or requirements fields are omitted from the equipmentType records.

    What breaks, and how do you design around it?

    • websiteUrl (mode=companies) links to each carrier's own external site. Some carriers' sites block non-browser/datacenter traffic with a 403 - this is the carrier's own bot protection and unrelated to truckingjobsinusa.com itself; the actor still includes the field since a real browser can typically reach it. The field is only omitted when it's a confirmed dead link (HTTP 404).
    • All other URL fields (sourceUrl, reviewUrl, payPageUrl) point to truckingjobsinusa.com itself and are verified reliable.
    • The source also publishes a /blog/ (~70 articles), /guides/ (~29 how-to guides), /salary-guide/ (~550 state/city salary breakdowns), /glossary/ (~65 terms), /cdl-training/ (a handful of guide pages), /resources/ (~10 topical guides such as women-in-trucking, veteran-trucking-jobs), and /cdl-practice-test/ section that aren't exposed as actor modes yet - these are general editorial/reference content rather than structured driver/carrier/market data and are out of scope for v1. The ten modes above cover every structured, per-entity data axis (jobs, carriers, states, cities, equipment, non-CDL roles, best-companies rankings, freight corridors, career paths, and lease-on programs).

    If a websiteUrl returns a 403 error, treat this as the destination site's own bot protection and use the payPageUrl for carrier details. When you need broader editorial content, note that the scraper focuses on the eleven structured modes and omits blog or guide articles that are out of scope for v1.

    When should you not use Trucking Jobs In USA Scraper?

    If you are looking for general IT or remote tech roles, this specialized trucking scraper will not return relevant data; you should use Himalayas Remote Jobs Scraper or NoFluffJobs Remote Tech Jobs Scraper instead. For healthcare and nursing listings with pay rates and facility details, Vivian Health Jobs Scraper is the appropriate alternative. This Actor is strictly limited to the US market; if your project requires Southeast Asian job data, use Glints Jobs Scraper for listings in Singapore and Indonesia.

    What should you check before trusting the output?

    • Verify that payMin and payMax are identical when the source listing provides a flat rate instead of a range.
    • Check that the recordType field correctly labels every record according to the selected mode.
    • Ensure that citySlugs are formatted correctly as city-state pairs to avoid empty result sets in byCity mode.
    • Confirm that signOnBonus is present for carrier drivers while allowing it to be omitted for owner-operator carrier profiles.
    • Validate that each record includes a valid sourceUrl for data traceability and verification.
    • Monitor for non-null demandLevel and dayInTheLife values when extracting equipmentType guides.

    None of this proves a record is correct. It gives a scheduled Trucking Jobs In USA Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the cost per 1,000 results on the free plan?

    On the free-plan price, 1,000 results cost $5.00 in result charges, which is $0.005 per result. Apify also bills for the platform usage each run consumes, such as RAM and CPU time, on top of these result charges. You should monitor your platform usage to understand the total cost of a run.

    Can I test this scraper without paying anything?

    Apify's free plan includes $5.00 of monthly usage with no credit card, which covers up to 1,000 results of this Actor. You can start with the example input, which caps maxItems at 15 and returns at most 15 results for a total result charge of $0.075, plus platform usage.

    How fresh is the trucking data provided?

    The Actor was last updated on 2026-08-07 to maintain compatibility with TruckingJobsInUSA.com. The source site periodically refreshes its carrier, state, and equipment market content; the scraper extracts the most recent pay figures and carrier benefits available on the public pages at the time of the run.

    Why are some fields missing from certain company records?

    Empty fields are omitted from the output to ensure every record contains only real, populated data. For instance, owner-operator carriers often do not offer sign-on bonuses under their specific business models, so the signOnBonus field is excluded from their company records rather than appearing as a zero or null value.

    What is the correct format for the citySlugs input?

    You must use city-state slugs like dallas-tx or chicago-il. The Actor also accepts the City, ST format, such as Dallas, TX, and converts it automatically. This mode allows you to access market data for over 1,200 cities, including average CDL salaries and nearby freight corridors.

    Where to go next

    When you are ready to run it, open Trucking Jobs In USA Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Trucking Jobs In USA Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    • Glints Jobs Scraper: Scrape job listings from Glints.com - Southeast Asia's leading job platform covering Singapore, Indonesia, Malaysia, Vietnam, and Taiwan.
    • Bumeran Jobs Scraper: Search job listings on Bumeran (bumeran.com.ar) - Argentina's largest job board - by keyword, province, job category, work mode, employment type, seniority, and contract type.
    • Vivian Health Jobs Scraper: Scrape healthcare & nursing job listings from Vivian Health (vivian.com) - travel nursing, allied health, therapy, and social work jobs with pay rates, shifts, benefits, and facility details.
    • get in IT Jobs Scraper: Scrape IT & tech job listings and employer data from get-in-it.de, Germany's IT job board.
    • Himalayas Remote Jobs Scraper: Scrape Himalayas.app, a remote-first startup job board with 100k+ listings.
    • NoFluffJobs Remote Tech Jobs Scraper: Scrape NoFluffJobs.com - a transparent IT job board with 3,800+ active remote tech listings.
    • PowerToFly Jobs Scraper: Scrape diversity-focused tech job listings from PowerToFly - search by keyword, filter by employment type, remote status, and experience level.
    • Jobbio Jobs Scraper: Scrape global job listings from Jobbio - search by keyword, filter by contract type and experience level, paginate through thousands of openings.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-28.

    • Actor last updated by its maintainers on 2026-08-07.

    • Run outcome figures cover the 30 day public window ending 2026-09-28.

    • Trucking Jobs In USA Scraper on Apify

    Featured actors

    Trucking Jobs In USA Scraper

    Scrape CDL truck-driver job listings, carrier/company driver-pay profiles, state trucking-market data, and equipment-type guides from TruckingJobsInUSA.com - covering all 50 states, 15 equipment types, and 40 major carriers.

    Run on Apify ↗