# Built In Company Profiles, Jobs by Category, Perks and Offices (`gubidonius/builtin-company-details`) Actor

One company from builtin.com: headquarters, employees, year founded, website, open jobs per category, workplace policy and time on site, every perk under its heading, and every office with the HQ marked. By slug, profile URL or name.

- **URL**: https://apify.com/gubidonius/builtin-company-details.md
- **Developed by:** [Gregory Bolshakov](https://apify.com/gubidonius) (community)
- **Categories:** Business, Lead generation, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Built In Company Profiles, Jobs by Category, Perks and Offices

One company from builtin.com per row: headquarters, employee count, year founded,
website, industries, description, open jobs per category, workplace policy and typical
time on site, every perk under its heading, and every office with the headquarters
marked. Give it slugs, profile URLs or names. No key and no login.

### What the profile hides

The open-jobs list on a profile caps each category at 99 and prints "99+". A company
with 2,765 open adverts shows Engineering 99+ and AI & Machine Learning 99+, and a reader
adding the list up gets a number that is wrong by thousands. Every entry in
`jobsByCategory` carries `countIsAtLeast`, true on exactly those capped rows, and
`openJobCount` is the number from the profile's own Jobs tab, which is not capped.

A fully remote company has no headquarters and the profile prints a bare United States
where another shows HQ Boise. `hq` carries what the profile shows and `hqIsHeadquarters`
says whether the board labelled it as one.

### Names

A name goes through the board's own company search. An exact title wins. Otherwise the
first hit is taken and `matchedBy` says "first of N hits" with the other titles in
`otherSearchHits`, so a loose match is visible for what it is. Wells Fargo resolves to
Wells Fargo, with Wells Fargo Advisors listed as the other hit.

### What it costs

One request for the overview and one each for the benefits and offices pages, both of
which can be switched off. Every row says which pages were read.

### Billing

Two events: a start fee charged only once a row is returned, and a per-row fee charged
after each row is written. A slug the board does not know, or a name its search cannot
find, costs nothing.

# Actor input Schema

## `companies` (type: `array`):

Companies to read, each as the board's slug (micron-technology), the profile URL (https://builtin.com/company/micron-technology), or a name. A name goes through the board's own company search and an exact title wins, otherwise the first hit, and the row says which in matchedBy. The slug column of builtin-companies and the companySlug column of builtin-jobs both work here.

## `readBenefits` (type: `boolean`):

One more request per company for the full perks list under its headings. Off leaves perks empty and perkCount null.

## `readOffices` (type: `boolean`):

One more request per company for every office with its region and the HQ marked. Off leaves offices empty.

## `maxCompanies` (type: `integer`):

Most companies to read, and the most you will be charged for.

## Actor input object example

```json
{
  "companies": [
    "micron-technology",
    "Wells Fargo"
  ],
  "readBenefits": true,
  "readOffices": true,
  "maxCompanies": 25
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "micron-technology",
        "Wells Fargo"
    ],
    "readBenefits": true,
    "readOffices": true,
    "maxCompanies": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("gubidonius/builtin-company-details").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "companies": [
        "micron-technology",
        "Wells Fargo",
    ],
    "readBenefits": True,
    "readOffices": True,
    "maxCompanies": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("gubidonius/builtin-company-details").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "micron-technology",
    "Wells Fargo"
  ],
  "readBenefits": true,
  "readOffices": true,
  "maxCompanies": 25
}' |
apify call gubidonius/builtin-company-details --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gubidonius/builtin-company-details"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KRCnpcdcY6zirZCFH/builds/YPXZzvNGFb7SPycZO/openapi.json
