# GoodFirms web scraping companies extractor

**Use case:** 

Extract rated web scraping agencies, pricing bands, team sizes, locations, contacts, services, and review totals from GoodFirms.

## Input

```json
{
  "startUrls": [
    {
      "url": "https://www.goodfirms.co/it-services/web-scraping?sort_by=rating"
    }
  ],
  "categorySlug": "",
  "locationFilter": "",
  "enrichProfiles": false,
  "maxItems": 25,
  "includeReviews": false,
  "maxReviewsPerCompany": 0,
  "reviewsDateFrom": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

## Output

```json
{
  "name": {
    "label": "Company",
    "format": "string"
  },
  "profileUrl": {
    "label": "GoodFirms profile",
    "format": "string"
  },
  "website": {
    "label": "Website",
    "format": "string"
  },
  "description": {
    "label": "Description",
    "format": "string"
  },
  "logoUrl": {
    "label": "Logo",
    "format": "string"
  },
  "rating": {
    "label": "Rating",
    "format": "number"
  },
  "reviewCount": {
    "label": "Reviews",
    "format": "integer"
  },
  "hourlyRate": {
    "label": "Hourly rate",
    "format": "string"
  },
  "teamSize": {
    "label": "Team size",
    "format": "string"
  },
  "foundedYear": {
    "label": "Founded",
    "format": "number"
  },
  "phone": {
    "label": "Phone",
    "format": "string"
  },
  "email": {
    "label": "Email",
    "format": "string"
  },
  "city": {
    "label": "City",
    "format": "string"
  },
  "region": {
    "label": "Region",
    "format": "string"
  },
  "country": {
    "label": "Country",
    "format": "string"
  },
  "address": {
    "label": "Primary address",
    "format": "string"
  },
  "addresses": {
    "label": "All addresses",
    "format": "array"
  },
  "services": {
    "label": "Services",
    "format": "array"
  },
  "socialLinks": {
    "label": "Social links",
    "format": "array"
  },
  "portfolioItems": {
    "label": "Portfolio",
    "format": "array"
  },
  "latestReviewTitle": {
    "label": "Latest review",
    "format": "string"
  },
  "latestReviewBody": {
    "label": "Latest review body",
    "format": "string"
  },
  "latestReviewAuthor": {
    "label": "Latest reviewer",
    "format": "string"
  },
  "latestReviewDate": {
    "label": "Latest review date",
    "format": "string"
  },
  "latestReviewRating": {
    "label": "Latest review rating",
    "format": "number"
  },
  "profileEnriched": {
    "label": "Profile enriched",
    "format": "boolean"
  },
  "sourceUrl": {
    "label": "Source page",
    "format": "string"
  },
  "scrapedAt": {
    "label": "Scraped at",
    "format": "string"
  }
}
```

## About this Actor

This example demonstrates how to use [GoodFirms Companies & Reviews Scraper](https://apify.com/automation-lab/goodfirms-companies-reviews-scraper) with a specific input configuration. Visit the [Actor detail page](https://apify.com/automation-lab/goodfirms-companies-reviews-scraper) to learn more, explore other use cases, and run it yourself.