Homes.com Agents Scraper avatar

Homes.com Agents Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Homes.com Agents Scraper

Homes.com Agents Scraper

Extract Homes.com agent profiles at scale with contact data, brokerage details, sales metrics, market coverage, profile media, and performance signals. Built for enterprise-grade real estate recruiting, lead enrichment, agent intelligence, and automated analytics pipelines.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Homes.com Scraper

Slug: fatihtahta/homes-com-agent-scraper

Overview

Homes.com Agents Scraper collects public real estate agent records, including agent identity, profile links, brokerage names, phone numbers, location context, media signals, sales metrics, and search-result context when available. The actor is built for agent discovery from Homes.com real estate agents, where public profile and market data can support research, enrichment, and operational reporting. It converts agent search results into structured JSON records that are easier to automate, compare, and load into downstream systems. Runs can be repeated with the same inputs to support consistent data acquisition workflows over time. The actor is designed for dependable recurring collection without making assumptions about completeness, uptime, or field availability beyond what is publicly visible at run time.

Why Use This Actor

  • Market research and analytics: build structured extraction workflows for agent coverage, sales signals, market density, and location-based comparisons.
  • Product and content teams: normalize public agent profiles into datasets that can support directories, marketplace experiences, content operations, and internal tooling.
  • Developers and data engineering teams: feed predictable JSON records into downstream systems, ETL jobs, search indexes, and enrichment pipelines.
  • Lead generation and enrichment teams: create targeted public prospect lists with profile URLs, brokerage names, phone numbers, location context, and qualification signals.
  • Monitoring and competitive tracking teams: schedule repeatable collection for market intelligence, operational reporting, and change monitoring across selected geographies.

Common Use Cases

  • Market intelligence: monitor agent availability, sales volume, profile signals, location coverage, and market-level result counts.
  • Lead generation: build targeted prospect lists from public agent profiles in specific cities, ZIP codes, neighborhoods, or broader markets.
  • Competitive monitoring: track public agent presence, brokerage coverage, and ranking changes across selected locations or performance filters.
  • Directory building: populate internal databases with normalized public agent records for search, review, or operational workflows.
  • Data enrichment: add current public profile attributes, contact fields, brokerage names, and sales context to existing CRM, BI, or analytics datasets.
  • Recurring reporting: schedule periodic runs to power dashboards, alerts, geographic coverage reports, and trend analysis.

Quick Start

  1. Enter a location such as a city, state, ZIP code, neighborhood, or market name.
  2. Choose optional filters such as home_type, price range, sales range, experience, specialization, or video availability when you need a narrower dataset.
  3. Set a small limit for the first validation run.
  4. Run the actor in Apify Console.
  5. Inspect the first dataset records to confirm that the fields match your workflow.
  6. Increase the limit, adjust filters, or schedule recurring runs once the output is verified.

Input Parameters

The actor requires a location; all other fields are optional controls for filtering, sorting, and limiting saved agent records.

ParameterTypeDescriptionDefault
locationstringRequired search location. Use a city, state, ZIP code, neighborhood, or market name.
home_typearray of stringsProperty focus associated with the agents to collect. Allowed values: house, condo_co_op, manufactured, townhouse, lot_land, other.
min_priceintegerMinimum activity price in USD. Only include agents whose relevant activity starts at or above this amount.
max_priceintegerMaximum activity price in USD. Only include agents whose relevant activity is at or below this amount.
sort_bystringResult ordering. Allowed values: recommended, sales_in_area_high_to_low, total_sales_high_to_low, current_listings_high_to_low, experience_high_to_low.recommended
min_total_salesintegerMinimum total sales count for matching agents.
max_total_salesintegerMaximum total sales count for matching agents.
agent_with_videobooleanWhen true, collect only agents with a video signal.false
min_experience_yearstringMinimum real estate experience threshold. Allowed values: 2+, 5+, 10+.
specializationstringAgent activity focus. Allowed values: buyers_agent, sellers_agent, both.
limitintegerMaximum number of agent records to save. Minimum value: 1.

Choosing Inputs

Start with the most specific location that fits your workflow. A city, ZIP code, or neighborhood is useful for focused collection, while a broader market can improve discovery when you are still exploring coverage.

Use filters when you need a qualified shortlist. Narrower filters such as home_type, min_price, max_price, min_total_sales, max_total_sales, agent_with_video, min_experience_year, and specialization produce more targeted datasets, while leaving optional filters empty keeps discovery broader.

Use sort_by to control which matching agents are prioritized before records are saved. Start with a small limit for validation, then increase it after confirming that the dataset shape and coverage match your needs.

Example Inputs

Broad Discovery Run

{
"location": "Los Angeles, CA",
"sort_by": "recommended",
"limit": 25
}

Location And Property Focus

{
"location": "Austin, TX",
"home_type": ["house", "townhouse"],
"min_price": 400000,
"max_price": 1000000,
"sort_by": "sales_in_area_high_to_low",
"limit": 50
}

Performance-Qualified Agent List

{
"location": "Miami, FL",
"min_total_sales": 75,
"max_total_sales": 500,
"agent_with_video": true,
"min_experience_year": "5+",
"specialization": "sellers_agent",
"limit": 40
}

Output

Output Destination

The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.

This README documents the agent record shape based on the provided example output. When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output.

Record Envelope And Stable Identifiers

Each dataset item represents one public Homes.com agent result. The top-level record contains agent identity fields, profile and contact fields, a media object, a performance object, and a source_context object.

Recommended idempotency key: agent_id. If your workflow needs additional protection across repeated runs, use a composite key of agent_id and profile_url.

Use the recommended key for deduplication and upserts when syncing records into warehouses, CRMs, spreadsheets, or search indexes. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs.

The source_context.fingerprint field can be used as a run-context fingerprint, while source_context.source_url records the source URL associated with the collection context.

Examples

Example: agent (type = "agent")

{
"agent_id": "sample-agent-001",
"profile_url": "https://www.homes.com/real-estate-agents/sample-agent/sample-agent-001/",
"name": "Sample Agent",
"company_name": "Example Realty Group",
"phone": "(555) 010-1234",
"location": "Los Angeles, CA",
"media": {
"image_url": "https://imagescdn.homes.com/i2/sample-agent-photo/117/sample-agent.jpg?p=1",
"has_video": false
},
"performance": {
"total_sales": 116,
"total_sales_label": "116 Total Sales",
"sales_in_area": 1,
"sales_in_area_label": "1 in Los Angeles",
"sales_in_area_location": "Los Angeles",
"price": "$638,000",
"price_range": "$638,000",
"price_range_label": "$638,000 Price",
"responds_quickly": true
},
"source_context": {
"seed_id": "sample-seed-001",
"seed_type": "search",
"seed_value": "Los Angeles, CA",
"page_index": 1,
"fingerprint": "sample-fingerprint-001",
"source_url": "https://www.homes.com/services/agentsearch/",
"search_response": {
"result_count": 624,
"available_count": 2447,
"result_count_label": "2,447 Real Estate Agents serving Los Angeles, CA",
"page_title": "Los Angeles, CA Real Estate Agents - Homes.com",
"meta_description": "Find the best real estate agents, brokers and realtors in Los Angeles, CA. Find top Los Angeles agents by filtering by transaction volume, specialty & languages spoken.",
"search_url": "https://www.homes.com/real-estate-agents/los-angeles-ca/?pma=1200000&pmi=500000&tsa=420&tsi=64",
"canonical_path": "/real-estate-agents/los-angeles-ca/",
"begin_page": 1
}
}
}

Field Reference

Agent Record

agent_id (string, required): Stable Homes.com agent identifier shown in the agent profile URL.

profile_url (string, required): Public Homes.com agent profile URL.

name (string, required): Agent display name.

company_name (string, optional): Brokerage, company, or office name shown with the agent.

phone (string, optional): Public phone number shown for the agent.

location (string, optional): Search or service location associated with the record.

media.image_url (string, optional): Public profile image URL when available.

media.has_video (boolean, optional): Indicates whether a video signal is shown for the agent.

performance.total_sales (integer, optional): Total sales count when available.

performance.total_sales_label (string, optional): Display label for total sales.

performance.sales_in_area (integer, optional): Sales count associated with the searched area.

performance.sales_in_area_label (string, optional): Display label for area-specific sales.

performance.sales_in_area_location (string, optional): Location used for the area-specific sales label.

performance.price (string, optional): Public price or price-range signal shown for the agent.

performance.price_range (string, optional): Normalized price-range display value.

performance.price_range_label (string, optional): Display label for the price or price range.

performance.responds_quickly (boolean, optional): Indicates whether a quick-response signal is shown.

source_context.seed_id (string, optional): Identifier for the input context that produced the record.

source_context.seed_type (string, optional): Input context type, such as search.

source_context.seed_value (string, optional): Input value used for collection, such as the requested location.

source_context.page_index (integer, optional): Result page index associated with the record.

source_context.fingerprint (string, optional): Context fingerprint useful for auditing and repeated-run comparisons.

source_context.source_url (string, optional): Source URL associated with the collection context.

source_context.search_response.result_count (integer, optional): Number of results returned in the current response context.

source_context.search_response.available_count (integer, optional): Total available count reported for the search context.

source_context.search_response.result_count_label (string, optional): Display label for the available result count.

source_context.search_response.page_title (string, optional): Public page title associated with the search context.

source_context.search_response.meta_description (string, optional): Public meta description associated with the search context.

source_context.search_response.search_url (string, optional): Public Homes.com search URL for the result context.

source_context.search_response.canonical_path (string, optional): Canonical public path associated with the search context.

source_context.search_response.begin_page (integer, optional): Starting page index reported for the search context.

Data Quality, Guarantees, And Handling

  • Structured records: results are normalized into predictable JSON objects for downstream use.
  • Best-effort extraction: fields may vary by region, session, availability, and target-side UI experiments.
  • Optional fields: null-check optional fields in downstream code, especially contact, media, performance, and source-context values.
  • Deduplication: use agent_id as the strongest stable key available from the output, or combine agent_id with profile_url for stricter upsert logic.
  • Freshness: results reflect the publicly available data at run time.
  • Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, or search indexes.

Tips For Best Results

  • Start with a small limit to validate the output shape before scaling up.
  • Use one location or market segment per run when you need cleaner segmentation.
  • Leave optional filters empty when the goal is broad agent discovery.
  • Add filters gradually to understand how each field changes coverage.
  • Use sort_by to prioritize the records most relevant to your workflow.
  • Schedule recurring runs for monitoring workflows instead of relying on manual one-off collection.
  • Use agent_id for deduplication when storing results over time.

How To Run On Apify

  1. Open the Actor in Apify Console.
  2. Configure the available input fields for the target location and filters.
  3. Set the maximum number of outputs to collect with limit.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or another supported format.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule runs to keep agent datasets fresh for reporting, enrichment, and monitoring workflows. Use a consistent input configuration when you need comparable results over time.

  • Navigate to Schedules in Apify Console
  • Create a new schedule, such as daily, weekly, or custom cron
  • Configure input parameters
  • Enable notifications for run completion
  • Add webhooks for automated processing

Integration Options

  • CRM enrichment: sync public agent profile, brokerage, phone, location, and sales signals into account or lead records.
  • Google Sheets or Airtable: review qualified agent lists, assign follow-up, and maintain lightweight market research tables.
  • Webhooks: trigger validation, notification, or ingestion workflows after each completed run.
  • Data enrichment pipelines: join Homes.com agent attributes with existing internal datasets using stable identifiers.
  • BI dashboards: monitor agent coverage, sales signals, and geographic distribution over time.
  • Zapier or Make: route finished datasets into no-code workflows for review, notifications, or handoff.

Export Formats And Downstream Use

Apify datasets can be exported or consumed by downstream systems for operational and analytical workflows.

  • JSON: for APIs, applications, and data pipelines
  • CSV or Excel: for spreadsheet workflows and manual review
  • API access: for automated ingestion into internal systems
  • BI and warehouses: for reporting, dashboards, and historical analysis

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~3–5 minutes
  • Medium runs (1,000–5,000 outputs): ~5–15 minutes
  • Large runs (5,000+ outputs): ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.

Limitations

  • Availability depends on what Homes.com real estate agents publicly exposes at run time.
  • Some optional fields may be missing on sparse records or in markets where the source shows less detail.
  • Very broad searches may take longer or require higher limit values to collect sufficient coverage.
  • Target-side changes can affect field availability, labels, or naming.
  • Regional, account, or availability differences may change visible results.
  • The actor should not be treated as a guarantee that every public agent in a market will be returned.

Troubleshooting

  • No results returned: check filter settings, location spelling, and whether Homes.com has matching public agent records for the selected area.
  • Fewer results than expected: broaden filters, raise limit, or verify that the target contains enough matching public records.
  • Some fields are empty: optional fields depend on what each public agent record provides.
  • Run takes longer than expected: reduce scope, lower limit for validation, or split broad collection into smaller geographic segments.
  • Output changed: compare the current output with the field reference and report a small sample if support is needed.

FAQ

What data does this actor collect?

It collects public Homes.com agent records, including profile URLs, names, brokerage names, phone numbers, location context, media signals, sales metrics, and source context when available.

Can I filter by location, category, date, price, or other criteria?

You can filter by location, home_type, price range, total sales range, video availability, minimum experience, specialization, and result order. Date filters are not part of the current input schema.

Why did I receive fewer results than my limit?

The selected location and filters may have fewer matching public records than the requested limit. Broaden filters or try a larger market when you need more coverage.

Can I schedule recurring runs?

Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cron cadence.

How do I avoid duplicates across runs?

Use agent_id as the primary idempotency key. For stricter matching, combine agent_id with profile_url.

Can I export the data to CSV, Excel, or JSON?

Yes. Apify datasets support export formats such as JSON, CSV, Excel, and other formats available in Apify Console.

Does this actor collect private data?

No. The actor is intended to collect publicly available information shown on Homes.com agent pages and search results.

What should I include when reporting an issue?

Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps show the problem.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available real estate agent information from Homes.com real estate agents for legitimate business purposes, including:

  • Real estate research and market analysis
  • Lead enrichment and qualification
  • Operational reporting and competitive monitoring

This section is informational and not legal advice. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and platform terms.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site's terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable, such as GDPR and CCPA

Support

For help, use the actor page or Issues. Include the input used with sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample when it is useful for diagnosis.