---
type: "firecrawl-provider"
description: "Find a business email, enrich a LinkedIn profile, search people and companies, and resolve an IP to a company."
use_when: "Search people, resolve a name or LinkedIn profile to an email or profile, and reverse an email or profile URL.\n\nSearch companies, or resolve an IPv4 address to the company behind the traffic."
categories: "People"
capabilities: 10
pricing: "10 credits per billed unit; see each capability for its unit and maximum."
---
# MoltSets on Firecrawl Alexandria

Find a business email, enrich a LinkedIn profile, search people and companies, and resolve an IP to a company.

- Categories: People
- Category index: [People category](https://alexandria.firecrawl.dev/agents/categories/people)
- Provider key: `moltsets`
- Access: Firecrawl credits
- Cost (Search people): 10 credits per found call
- Cost (LinkedIn profile search): 10 credits per found call
- Cost (Business email by name): 10 credits per found call
- Cost (Business profile by name): 10 credits per found call
- Cost (Business email): 10 credits per found call
- Cost (Reverse email lookup): 10 credits per found call
- Cost (Reverse LinkedIn lookup): 10 credits per found call
- Cost (Email to LinkedIn): 10 credits per found call
- Cost (Search companies): 10 credits per found call
- Cost (IP to company): 10 credits per found call

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/moltsets)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/moltsets/openapi.json)

## Capabilities

- [Search people](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/search): results.results is the page and total is the match count. An empty page has status not_found and costs nothing. A page with rows costs 10 credits for the call, not per row.
- [LinkedIn profile search](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/linkedin): Without count_only, results is the list of matching profiles. With count_only, results is { count } instead of that list, and the call is free. An empty list is not_found and costs nothing.
- [Business email by name](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/business-email-by-name): One match. email, risk_score, and linkedin_url are null on a miss.
- [Business profile by name](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/profile-by-name): One profile. Personal email fields may be absent when the plan cap withholds them.
- [Business email](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/business-email): One work address. email and risk_score are null on a miss.
- [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/reverse-email): One profile for the address. Fields are null and personal_emails is empty on a miss.
- [Reverse LinkedIn lookup](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/reverse-linkedin): One profile. include_experience adds job history.
- [Email to LinkedIn](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/email-to-linkedin): linkedin_url is null on a miss.
- [Search companies](https://alexandria.firecrawl.dev/agents/providers/moltsets/companies/search): results.results is the page and total is the match count. An empty page has status not_found and costs nothing. A page with rows costs 10 credits for the call, not per row.
- [IP to company](https://alexandria.firecrawl.dev/agents/providers/moltsets/companies/ip): results.companies lists domain and percentage. An empty list is not_found and costs nothing.

## 1. Choose this provider when

Search people, resolve a name or LinkedIn profile to an email or profile, and reverse an email or profile URL.

Search companies, or resolve an IPv4 address to the company behind the traffic.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "moltsets",
  "capability": "people/search",
  "options": {
    "query": "<query>",
    "limit": 10,
    "offset": 0
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `query` (string): Full-text match across name, company, title, and headline. Example: `<query>`
- `title` (string): Job title. Every word must match. Example: `<title>`
- `company` (string): Employer name. Every word must match. Example: `<company>`
- `company_domain` (string): Employer website domain. A full URL is normalised. Example: `<company_domain>`
- `country` (string): Exact country name, such as United States. Example: `<country>`
- `state` (string): State or region, full name or abbreviation. Example: `<state>`
- `city` (string): Exact city name. Example: `<city>`
- `seniority` (string[]): Seniority. One of: Intern, Entry, Senior, Manager, Director, VP, Head, C Suite, Owner, Partner. A single value or a list. Example: `[]`
- `industry` (string[]): Current industry bucket. One of: Professional and Business Services, Information Technology, Manufacturing, Retail, Health and Pharmaceuticals, Creative Arts and Entertainment, Construction, Marketing & Advertising, Finance and Banking, Tourism and Hospitality, Non-Profit and Social Services, Food and Beverage, Real Estate, Education, Transportation and Logistics, Media and Publishing, Energy, Government and Public Administration, Automotive, Telecommunications, Agriculture, Utilities. A single value or a list. Example: `[]`
- `department` (string[]): Department. Do not also send functional_area. One of: Operations, Sales, Information Technology, Education, Engineering, Finance, Medical & Health, Marketing, Human Resources, Design, Consulting, Legal. A single value or a list. Example: `[]`
- `functional_area` (string[]): Functional area. Same values as department. Do not also send department. One of: Operations, Sales, Information Technology, Education, Engineering, Finance, Medical & Health, Marketing, Human Resources, Design, Consulting, Legal. A single value or a list. Example: `[]`
- `employee_range` (string[]): Employer size band. One of: 1-10, 11-20, 21-50, 51-200, 201-500, 501-1000, 1001-5000, 5001+. A single value or a list. Example: `[]`
- `revenue_range` (string[]): Employer revenue band. One of: Below $500k, $500k - $1M, $1M - $5M, $5M - $10M, $10M - $20M, $20M - $50M, Above $50M. A single value or a list. Example: `[]`
- `naics_code` (string): NAICS code at any level, from 2 to 6 digits. Example: `<naics_code>`
- `linkedin_industry` (string): LinkedIn industry label. Example: `<linkedin_industry>`
- `exclude_company_domain` (string[]): Employer domains to drop. Example: `[]`
- `exclude_country` (string[]): Countries to drop. Example: `[]`
- `exclude_state` (string[]): States to drop. Example: `[]`
- `exclude_industry` (string[]): Industries to drop. Example: `[]`
- `exclude_seniority` (string[]): Seniority levels to drop. Example: `[]`
- `exclude_employee_range` (string[]): Employer size bands to drop. Example: `[]`
- `limit` (number): Rows to return, from 1 to 25. Omitting it lets MoltSets use 10. An empty page costs nothing. A page with rows costs 10 credits. Example: `10`
- `offset` (number): Rows to skip. Use with limit to read the next page. Example: `0`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "moltsets",
    capability: "people/search",
    options: {
      query: "<query>",
      limit: 10,
      offset: 0,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "moltsets",
  "capability": "people/search",
  "options": {
    "query": "<query>",
    "limit": 10,
    "offset": 0
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "moltsets",
    "capability": "people/search",
    "options": {
      "query": "<query>",
      "limit": 10,
      "offset": 0
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'moltsets/people/search' \
  --options '{"query":"<query>","limit":10,"offset":0}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "moltsets",
  "capability": "people/search",
  "options": {
    "query": "<query>",
    "limit": 10,
    "offset": 0
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "moltsets",
  "capability": "people/search",
  "options": {
    "query": "<query>",
    "limit": 10,
    "offset": 0
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Search people

- Capability: `people/search`
- Description: results.results is the page and total is the match count. An empty page has status not_found and costs nothing. A page with rows costs 10 credits for the call, not per row.
- Instructions: Search people by title, employer, industry, size, or location. 10 Firecrawl credits when the lookup finds data. Nothing on a miss. limit is at most 25. Use people/business-email-by-name when you already have a name and a domain.
- Cost: 10 credits per found call
- Capability file: [Search people](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/search)

Accepted options:
- `query` (string): Full-text match across name, company, title, and headline. Example: `<query>`
- `title` (string): Job title. Every word must match. Example: `<title>`
- `company` (string): Employer name. Every word must match. Example: `<company>`
- `company_domain` (string): Employer website domain. A full URL is normalised. Example: `<company_domain>`
- `country` (string): Exact country name, such as United States. Example: `<country>`
- `state` (string): State or region, full name or abbreviation. Example: `<state>`
- `city` (string): Exact city name. Example: `<city>`
- `seniority` (string[]): Seniority. One of: Intern, Entry, Senior, Manager, Director, VP, Head, C Suite, Owner, Partner. A single value or a list. Example: `[]`
- `industry` (string[]): Current industry bucket. One of: Professional and Business Services, Information Technology, Manufacturing, Retail, Health and Pharmaceuticals, Creative Arts and Entertainment, Construction, Marketing & Advertising, Finance and Banking, Tourism and Hospitality, Non-Profit and Social Services, Food and Beverage, Real Estate, Education, Transportation and Logistics, Media and Publishing, Energy, Government and Public Administration, Automotive, Telecommunications, Agriculture, Utilities. A single value or a list. Example: `[]`
- `department` (string[]): Department. Do not also send functional_area. One of: Operations, Sales, Information Technology, Education, Engineering, Finance, Medical & Health, Marketing, Human Resources, Design, Consulting, Legal. A single value or a list. Example: `[]`
- `functional_area` (string[]): Functional area. Same values as department. Do not also send department. One of: Operations, Sales, Information Technology, Education, Engineering, Finance, Medical & Health, Marketing, Human Resources, Design, Consulting, Legal. A single value or a list. Example: `[]`
- `employee_range` (string[]): Employer size band. One of: 1-10, 11-20, 21-50, 51-200, 201-500, 501-1000, 1001-5000, 5001+. A single value or a list. Example: `[]`
- `revenue_range` (string[]): Employer revenue band. One of: Below $500k, $500k - $1M, $1M - $5M, $5M - $10M, $10M - $20M, $20M - $50M, Above $50M. A single value or a list. Example: `[]`
- `naics_code` (string): NAICS code at any level, from 2 to 6 digits. Example: `<naics_code>`
- `linkedin_industry` (string): LinkedIn industry label. Example: `<linkedin_industry>`
- `exclude_company_domain` (string[]): Employer domains to drop. Example: `[]`
- `exclude_country` (string[]): Countries to drop. Example: `[]`
- `exclude_state` (string[]): States to drop. Example: `[]`
- `exclude_industry` (string[]): Industries to drop. Example: `[]`
- `exclude_seniority` (string[]): Seniority levels to drop. Example: `[]`
- `exclude_employee_range` (string[]): Employer size bands to drop. Example: `[]`
- `limit` (number): Rows to return, from 1 to 25. Omitting it lets MoltSets use 10. An empty page costs nothing. A page with rows costs 10 credits. Example: `10`
- `offset` (number): Rows to skip. Use with limit to read the next page. Example: `0`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### LinkedIn profile search

- Capability: `people/linkedin`
- Description: Without count_only, results is the list of matching profiles. With count_only, results is { count } instead of that list, and the call is free. An empty list is not_found and costs nothing.
- Instructions: Find LinkedIn profiles for a person at a company domain. count_only is free. A profile list costs 10 credits when it is not empty, and nothing when it is empty. Use people/business-email-by-name to go straight to an email.
- Cost: 10 credits per found call
- Capability file: [LinkedIn profile search](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/linkedin)

Accepted options:
- `name` (string): Full name, parsed into first and last name. Use this or both first_name and last_name. Example: `<name>`
- `first_name` (string): First name, used with last_name when name is omitted. Example: `<first_name>`
- `last_name` (string): Last name, used with first_name when name is omitted. Example: `<last_name>`
- `company` (string): Company domain or URL. Full URLs are normalised to a domain. Example: `<company>`
- `company_domain` (string): Alias for company. Example: `<company_domain>`
- `count_only` (boolean): Free. Returns the match count and does not spend tokens. Example: `false`

Response schema example:
```json
{
  "status": "<status>",
  "results": [],
  "metadata": {}
}
```

### Business email by name

- Capability: `people/business-email-by-name`
- Description: One match. email, risk_score, and linkedin_url are null on a miss.
- Instructions: Turn a person's name and company domain into a business email and the matched LinkedIn URL. 10 Firecrawl credits when the lookup finds data. Nothing on a miss.
- Cost: 10 credits per found call
- Capability file: [Business email by name](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/business-email-by-name)

Accepted options:
- `name` (string): Full name, parsed into first and last name. Use this or both first_name and last_name. Example: `<name>`
- `first_name` (string): First name, used with last_name when name is omitted. Example: `<first_name>`
- `last_name` (string): Last name, used with first_name when name is omitted. Example: `<last_name>`
- `company` (string): Company domain or URL. Full URLs are normalised to a domain. Example: `<company>`
- `company_domain` (string): Alias for company. Example: `<company_domain>`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Business profile by name

- Capability: `people/profile-by-name`
- Description: One profile. Personal email fields may be absent when the plan cap withholds them.
- Instructions: Turn a person's name and company domain into a business profile: title, email, firmographics, and optional job history. 10 Firecrawl credits when the lookup finds data. Nothing on a miss. Withheld personal-email fields are not charged.
- Cost: 10 credits per found call
- Capability file: [Business profile by name](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/profile-by-name)

Accepted options:
- `name` (string): Full name, parsed into first and last name. Use this or both first_name and last_name. Example: `<name>`
- `first_name` (string): First name, used with last_name when name is omitted. Example: `<first_name>`
- `last_name` (string): Last name, used with first_name when name is omitted. Example: `<last_name>`
- `company` (string): Company domain or URL. Full URLs are normalised to a domain. Example: `<company>`
- `company_domain` (string): Alias for company. Example: `<company_domain>`
- `include_experience` (boolean): Include job history when true. Example: `false`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Business email

- Capability: `people/business-email`
- Description: One work address. email and risk_score are null on a miss.
- Instructions: Work email for a LinkedIn profile. Personal inboxes are not returned. 10 Firecrawl credits when the lookup finds data. Nothing on a miss.
- Cost: 10 credits per found call
- Capability file: [Business email](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/business-email)

Accepted options:
- `linkedin_url` (string): One LinkedIn profile URL or slug. Example: `<linkedin_url>`
- `linkedin_urls` (string[]): Up to 100 LinkedIn profile URLs or slugs. Example: `[]`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Reverse email lookup

- Capability: `people/reverse-email`
- Description: One profile for the address. Fields are null and personal_emails is empty on a miss.
- Instructions: Business profile for an email address: name, title, company, and LinkedIn URL. 10 Firecrawl credits when the lookup finds data. Nothing on a miss.
- Cost: 10 credits per found call
- Capability file: [Reverse email lookup](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/reverse-email)

Accepted options:
- `email` (string): One email address. Example: `<email>`
- `emails` (string[]): Up to 100 email addresses. Do not also send email. Example: `[]`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Reverse LinkedIn lookup

- Capability: `people/reverse-linkedin`
- Description: One profile. include_experience adds job history.
- Instructions: Full business profile for a LinkedIn URL, including email and firmographics. 10 Firecrawl credits when the lookup finds data. Nothing on a miss. Withheld personal-email fields are not charged.
- Cost: 10 credits per found call
- Capability file: [Reverse LinkedIn lookup](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/reverse-linkedin)

Accepted options:
- `linkedin_url` (string, required): LinkedIn profile URL. Example: `<linkedin_url>`
- `include_experience` (boolean): Include job history when true. Example: `false`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Email to LinkedIn

- Capability: `people/email-to-linkedin`
- Description: linkedin_url is null on a miss.
- Instructions: Highest-confidence LinkedIn profile URL for an email. 10 Firecrawl credits when the lookup finds data. Nothing on a miss.
- Cost: 10 credits per found call
- Capability file: [Email to LinkedIn](https://alexandria.firecrawl.dev/agents/providers/moltsets/people/email-to-linkedin)

Accepted options:
- `email` (string, required): Email address. Example: `<email>`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### Search companies

- Capability: `companies/search`
- Description: results.results is the page and total is the match count. An empty page has status not_found and costs nothing. A page with rows costs 10 credits for the call, not per row.
- Instructions: Search companies by name, domain, industry, size, or revenue. 10 Firecrawl credits when the lookup finds data. Nothing on a miss. limit is at most 25. Use companies/ip to resolve a visitor IP.
- Cost: 10 credits per found call
- Capability file: [Search companies](https://alexandria.firecrawl.dev/agents/providers/moltsets/companies/search)

Accepted options:
- `query` (string): Company name search. Do not put a domain, industry, or size here. Example: `<query>`
- `domain` (string): Exact company domain. A full URL is normalised. Example: `<domain>`
- `industry` (string[]): Industry bucket. One of: Professional and Business Services, Information Technology, Manufacturing, Retail, Health and Pharmaceuticals, Creative Arts and Entertainment, Construction, Marketing & Advertising, Finance and Banking, Tourism and Hospitality, Non-Profit and Social Services, Food and Beverage, Real Estate, Education, Transportation and Logistics, Media and Publishing, Energy, Government and Public Administration, Automotive, Telecommunications, Agriculture, Utilities. A single value or a list. Example: `[]`
- `employee_range` (string[]): Employee-count band. One of: 1-10, 11-20, 21-50, 51-200, 201-500, 501-1000, 1001-5000, 5001+. A single value or a list. Example: `[]`
- `revenue_range` (string[]): Annual revenue band. One of: Below $500k, $500k - $1M, $1M - $5M, $5M - $10M, $10M - $20M, $20M - $50M, Above $50M. A single value or a list. Example: `[]`
- `naics_code` (string): NAICS code at any level, from 2 to 6 digits. Example: `<naics_code>`
- `linkedin_industry` (string): LinkedIn industry label. Example: `<linkedin_industry>`
- `country` (string): Country name. Company location is derived from where employees are based. Example: `<country>`
- `state` (string): State or region, full name or abbreviation. Example: `<state>`
- `exclude_domain` (string[]): Company domains to drop. Example: `[]`
- `exclude_industry` (string[]): Industries to drop. Example: `[]`
- `exclude_employee_range` (string[]): Size bands to drop. Example: `[]`
- `exclude_revenue_range` (string[]): Revenue bands to drop. Example: `[]`
- `limit` (number): Rows to return, from 1 to 25. Omitting it lets MoltSets use 10. An empty page costs nothing. A page with rows costs 10 credits. Example: `10`
- `offset` (number): Rows to skip. Use with limit to read the next page. Example: `0`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```

### IP to company

- Capability: `companies/ip`
- Description: results.companies lists domain and percentage. An empty list is not_found and costs nothing.
- Instructions: Company domains behind an IPv4 address. 10 Firecrawl credits when the lookup finds data. Nothing on a miss. An empty company list costs nothing.
- Cost: 10 credits per found call
- Capability file: [IP to company](https://alexandria.firecrawl.dev/agents/providers/moltsets/companies/ip)

Accepted options:
- `ip_address` (string, required): IPv4 address. Example: `<ip_address>`

Response schema example:
```json
{
  "status": "<status>",
  "results": {},
  "metadata": {}
}
```
