# Trulia Email Scraper - Keyword & Location Targeting (`scrapido/trulia-email-scraper`) Actor

🏠 Trulia Email Scraper finds real estate agent and listing emails by keyword and location. 🔓 Domain filters plus decoding and dedup. 📤 Export Trulia leads to CSV, JSON or Excel for proptech and lender outreach.

- **URL**: https://apify.com/scrapido/trulia-email-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, Real estate, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### Trulia Email Scraper

**Trulia Email Scraper** helps you scrape, filter, and export email addresses from Trulia profiles for targeted outreach. If you’re building a **Trulia email scraper** pipeline, it also works great as a **real estate email finder** and **Trulia lead generation** accelerator—turning public web contact info into a ready-to-import dataset at scale.

***

### What Does Trulia Email Scraper Do? 🤖

Trulia Email Scraper is an actor that extracts email addresses from Trulia based on the keywords, location, and email-domain filters you provide. During a run, it scrapes and collects publicly listed emails from Trulia profiles, then exports the results into your Apify dataset with structured fields like keyword, profile title, description, profile URL, and email. Use it to extract emails from Trulia, automate Trulia email collection, and run a practical Trulia contact scraper workflow—often far faster than manual searching and copy-pasting.

***

### What Can Trulia Email Scraper Extract? 📊

You can use this Trulia email scraper to extract contact emails along with useful profile context so your leads are more than just a random address list.

| Data Type | Field Name | Description |
|---|---|---|
| Contact | `email` | Primary email address associated with the Trulia profile |
| Identity | `title` | Profile name or business handle text shown in the result |
| Context | `description` | Profile bio/summary-style text that provides context for outreach |
| Discovery | `keyword` | The keyword from your input that helped surface this profile |
| Navigation | `url` | Direct link to the Trulia profile page |

#### Key Features of Trulia Email Scraper ⚡

- ✅ **Keyword-Driven Search:** Uses your keywords/queries to surface relevant Trulia profiles for lead extraction
- 🌍 **Location Targeting:** Optionally filters results to a specific city, state, or country for local Trulia contact scraping
- 📧 **Custom Domain Filtering:** Limit extracted emails to the domains you specify (for example, `@gmail.com` or `@yahoo.com`)
- 🔄 **Proxy-Ready & Reliable:** Designed for reliable scraping runs using Apify Proxy support
- 📊 **Structured JSON Output:** Exports each lead as a clean, labeled JSON record for analysis and outreach
- 💾 **Real-Time Saving:** Saves each found result incrementally so you can safely stop and still keep what you collected
- ⚙️ **Configurable Limits:** Use `maxEmails` to control how many email results to collect per run

***

### How to Use Trulia Email Scraper 🚀

1. **Find the Actor** — Search **Trulia Email Scraper** on [Apify Store](https://apify.com/store)
2. **Open Input Tab** — In the Apify Console, open the **Input** section for the actor
3. **Add Keywords** — Enter job titles, founder roles, or any search terms you want to target
4. **Configure Filters** *(optional)* — Set `location` and choose `customDomains` (email extensions/domains)
5. **Set Result Limit** — Set `maxEmails` to control run volume and cost
6. **Click Start** — Run the actor and monitor progress in the console logs
7. **Download Results** — In the **Dataset** tab, export the scraped leads as JSON/CSV

*No coding required.*

***

### Trulia Email Scraper Output Format 📦

The actor saves results to your Apify dataset in structured JSON format, ready for export or downstream lead processing.

#### ⬇️ Input Example

```json
{
  "keywords": ["manager", "founder"],
  "location": "",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 20
}
```

#### ⬆️ Output Example

```json
[
  {
    "keyword": "manager",
    "title": "Ava Rodriguez Realty Group",
    "description": "Local property management focused on investor-grade rentals and neighborhood updates.",
    "url": "https://www.trulia.com/profile/ava-rodriguez-realty-group/",
    "email": "ava.rodriguez@gmail.com"
  }
]
```

***

### 🎯 Use Cases of Trulia Email Scraper

Trulia Email Scraper is built for practical lead list building and web scraping for emails—especially when you need contacts tied to real profile context.

- **B2B Lead Generation:** Build targeted outreach lists from Trulia profiles to power prospecting and follow-up sequences
- **Email Marketing Campaigns:** Source fresh Trulia contacts for newsletters, drips, and promotional outreach
- **Real Estate Contact Scraping:** Collect property owner and business contact emails for residential real estate marketing leads
- **Market Research:** Identify niche players and segments (by keyword and optional location filtering) for competitive intel
- **CRM Enrichment:** Add scraped Trulia emails and profile context to existing records for Niche NLP entity extraction for leads workflows

***

### How Much Will Trulia Email Scraper Cost You? 💰

Trulia Email Scraper follows Apify’s pay-per-event pricing model, where you’re charged based on results (emails) produced. Apify also provides a free tier with monthly compute credits for new users. For predictable spend, set `maxEmails` to cap the number of email results collected per run. You can monitor usage while the actor is running in the Apify Console.

***

### Is It Legal to Scrape Trulia? ⚖️

Trulia Email Scraper is designed to extract publicly available data from Trulia profiles—no login or private profile access is required. That said, “legal” can depend on your location, Trulia’s Terms of Service, and how you use the collected data (for example, compliance with GDPR/CCPA and anti-spam rules). You’re responsible for ensuring your use is compliant. If you have concerns or need help, contact <scrapidocontact@gmail.com>.

***

### Trulia Email Scraper Input Parameters 📋

#### Input Example (same as defaults)

```json
{
  "keywords": ["manager", "founder"],
  "location": "",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | — | One or more keywords/queries used to find relevant Trulia profiles for email harvesting software workflows |
| `location` | String | No | `""` | Optional location filter (e.g., city/state/country) to narrow results to a specific market |
| `customDomains` | Array | No | `["@gmail.com","@yahoo.com"]` | Only keep extracted emails matching the specified domains (like `@gmail.com`) |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect; higher limits may take longer and cost more, but don’t guarantee you’ll reach the number |

***

### During the Actor Run ⏱️

You’ll see live logs in the Apify Console as the actor processes your keyword and domain combinations. Results are pushed incrementally, so your dataset grows during the run—check the **Dataset** tab if you want to review early output. Runtime depends on `maxEmails`, network conditions, and how many matching Trulia profiles contain public emails.

***

### Final Note ✉️

Start building targeted outreach lists with **Trulia Email Scraper** in minutes—no code, just results. Try it on Apify and export your dataset for real-world email finder workflows. Questions? Contact <scrapidocontact@gmail.com>.

***

### FAQ — Trulia Email Scraper ❓

#### How does the Trulia Email Scraper find emails?

The actor uses your `keywords` (and optionally `location`) to surface relevant Trulia profiles, then extracts publicly listed email addresses from the profile data. It returns results that match your `customDomains` filter and stops when it reaches your `maxEmails` limit.

#### What types of Trulia profiles can I scrape?

Any public Trulia profile that contains an email address in its publicly available profile information can be included. If a profile doesn’t show a public email, it won’t contribute results to your dataset.

#### What did your tests show about the Trulia Email Scraper?

Results vary by keyword and market: some keywords may yield many leads, while others return fewer matches. Because the actor is domain-filtered via `customDomains`, your yield also depends on which email extensions/domains are present in the profiles returned by your keyword set.

#### Why scrape Trulia for emails?

Manually finding emails on Trulia can be slow and inconsistent. Trulia Email Scraper automates bulk email scraping with keyword targeting and structured outputs—so you can create targeted outreach lists faster and spend more time on follow-up instead of research.

#### How much does it cost to use the Trulia Email Scraper?

Pricing is result-based (you’re charged per email result produced). Apify offers free credits for new users. Set `maxEmails` to control how many emails the actor will attempt to collect in a single run.

#### How does the Trulia Email Scraper help my business?

It helps you build a clean, exportable lead list of Trulia contacts that can be segmented by keyword and location (when provided). The dataset includes both email and profile context fields, making it easier to enrich CRM records and personalize outreach.

#### What are the challenges of using a Trulia scraper?

Not every Trulia profile includes a public email address, so the number of results depends on your niche and the keywords you choose. Also, if you set a narrow `customDomains` list, you may reduce output volume to only the domains that matter most to your campaign.

#### How do I choose the right Trulia email scraper?

Look for accurate extraction, structured dataset output, domain filtering, and configurable limits. This actor supports keyword-driven Trulia lead generation, optional location filtering, and `maxEmails` to help you balance cost and coverage—plus you can reach support at <scrapidocontact@gmail.com>.

***

### 🆘 Support & Feedback

Need help running **Trulia Email Scraper** or want a tailored improvement?

- 🐞 **Bug Reports:** Open a ticket in the repository's Issues section
- ✨ **Custom Solutions & Feature Requests:** Contact our team
- 📧 **Email:** <scrapidocontact@gmail.com>

### Multiple Email Types

**Email Types** replaces the old single Audience Type choice: select as many
kinds of mailbox as you want and the run chases all of them together.

| Type | What it matches |
| --- | --- |
| Personal / free webmail | Gmail, Outlook, Yahoo, iCloud, AOL, Proton, ... |
| Business / corporate | Company domains - free webmail and institutions excluded |
| Education (.edu / .ac) | `.edu`, `.ac.uk`, `.edu.au`, `.ac.in` and other academic suffixes |
| Government (.gov / .mil) | `.gov`, `.mil`, `.gov.uk`, `.gc.ca`, ... |
| Non-profit (.org) | `.org`, `.ngo`, `.org.uk`, ... |

Each selected type contributes its own Google dork patterns *and* its own domain
test, so a result is only kept if it genuinely belongs to the type that found
it. Every row carries an `emailType` field recording which one that was.

Suffixes are matched as real domain suffixes, so `cs.mit.edu` counts as
Education while `notedu.com` does not.

Setting **Custom Email Domains** still overrides everything: an explicit domain
list is a manual override and replaces the type-driven patterns. The legacy
`audienceType` value is still accepted, so saved inputs keep working.

# Actor input Schema

## `keywords` (type: `array`):

A list of keywords or queries to search for.

## `audienceType` (type: `string`):

Business Emails runs contextual discovery patterns tuned for company contact pages ("email us at", "contact@", careers, bookings, ...) and filters out consumer webmail domains. Consumer Emails instead searches gmail.com, yahoo.com, outlook.com, hotmail.com and icloud.com directly.

## `maxEmails` (type: `integer`):

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `customDomains` (type: `array`):

Optional manual override — provide specific email domains to search for (e.g. @hubspot.com) instead of using Audience Type. Leave empty to use Audience Type.

## `emailTypes` (type: `array`):

Which kinds of mailbox to hunt for. Pick as many as you like - each type contributes its own set of Google search patterns and its own domain filter, and every result records the type it was found as. Personal = free webmail (Gmail, Outlook, Yahoo, iCloud). Business = company domains, excluding free webmail and institutions. Education = .edu / .ac.uk and friends. Government = .gov / .mil. Non-profit = .org.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "audienceType": "Consumer Emails",
  "maxEmails": 20,
  "customDomains": [],
  "emailTypes": [
    "Personal",
    "Business"
  ]
}
```

# Actor output Schema

## `dataset` (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 = {
    "keywords": [
        "manager",
        "founder"
    ],
    "customDomains": [],
    "emailTypes": [
        "Personal",
        "Business"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/trulia-email-scraper").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 = {
    "keywords": [
        "manager",
        "founder",
    ],
    "customDomains": [],
    "emailTypes": [
        "Personal",
        "Business",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/trulia-email-scraper").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 '{
  "keywords": [
    "manager",
    "founder"
  ],
  "customDomains": [],
  "emailTypes": [
    "Personal",
    "Business"
  ]
}' |
apify call scrapido/trulia-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/trulia-email-scraper"
        }
    }
}

```

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/BdSWMLHUCGT5J0U79/builds/lcRcGxwgZLw6dTyyg/openapi.json
