Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

NAR Directory Member Scraper

NAR Directory Member Scraper extracts detailed realtor profile information from the National Association of Realtors directory. It helps professionals collect verified agent contact and office details efficiently without manual lookup, saving time and improving data accuracy.

Bitbash Banner

Telegram   WhatsApp   Gmail   Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for nar-directory-member-scraper you've just found your team — Let’s Chat. 👆👆

Introduction

This project collects structured profile data of individual real estate agents listed in the NAR member directory. It solves the challenge of manually gathering reliable agent contact information by automating profile-level data extraction. It is designed for real estate professionals, data analysts, marketers, and research teams who need accurate agent intelligence.

Realtor Profile Data Extraction

  • Works on individual member profile URLs
  • Retrieves both personal and office-level information
  • Captures contact details without authentication
  • Outputs clean, structured, analysis-ready data
  • Suitable for lead generation and directory research

Features

Feature Description
Profile-Level Scraping Extracts detailed information from individual member profiles.
Contact Data Access Collects business emails and phone numbers when available.
Office Information Mapping Retrieves office name, address, and contact details.
Structured Output Returns normalized, machine-readable data for easy reuse.
URL-Based Targeting Scrapes only specified member profiles for precision.

What Data This Scraper Extracts

Field Name Field Description
personId Unique identifier of the member profile.
firstName Realtor’s first name.
lastName Realtor’s last name.
memberTypeCode Membership classification code.
memberTypeDescription Human-readable membership type.
businessEmailAddress Business email associated with the agent.
preferredPhone Primary contact phone number.
localAssociationName Name of the local realtor association.
stateAssociationName Name of the state-level association.
primaryFieldOfBusinessName Main business specialization.
officeBusinessName Office or brokerage name.
officeEmailAddress Office contact email.
officePhoneNumber Office phone number.
streetAddressLine1 Office street address.
streetCity Office city.
streetState Office state.
streetZip Office ZIP code.

Example Output

[
      {
        "PersonId": 4575908,
        "FirstName": "Aaliyah",
        "LastName": "Aguero",
        "MiddleName": null,
        "MemberTypeCode": "R",
        "MemberTypeCodeDescription": "REALTOR®",
        "WebPageAddress": null,
        "BusinessEmailAddress": "aaliyaha.xxxxxx@gmail.com",
        "PreferredPhoneType": "O",
        "PreferredPhone": "832646xxxx",
        "PrimaryLocalAssociationId": 8055,
        "LocalAssociationName": "HOUSTON ASSOCIATION OF REALTORS® INC",
        "PrimaryStateAssociationId": 886,
        "StateAssociationName": "TEXAS ASSOCIATION OF REALTORS®",
        "PrimaryFieldOfBusinessId": 100,
        "PrimaryFieldOfBusinessName": "General Residential Sales",
        "OfficeId": 805513590,
        "OfficeBusinessName": "C.R.Realty",
        "OfficeEmailAddress": "cr@crrealtyco.com",
        "OfficePhoneNumber": "8326460512",
        "StreetAddressLine1": "5604 1st St. suite 101",
        "StreetCity": "Katy",
        "StreetState": "TX",
        "StreetZip": "77493"
      }
    ]

Directory Structure Tree

NAR Directory Member Scraper/
├── src/
│   ├── main.py
│   ├── scraper/
│   │   ├── member_parser.py
│   │   └── profile_fetcher.py
│   ├── utils/
│   │   ├── validators.py
│   │   └── normalizers.py
│   └── config/
│       └── settings.example.json
├── data/
│   ├── input_urls.txt
│   └── sample_output.json
├── requirements.txt
└── README.md

Use Cases

  • Real estate marketers use it to collect agent emails, so they can run targeted outreach campaigns.
  • Brokerage analysts use it to map agent-office relationships, so they can evaluate market coverage.
  • Lead generation teams use it to build verified contact lists, so they can improve conversion rates.
  • Researchers use it to analyze membership distribution, so they can identify regional trends.

FAQs

Do I need an account to use this scraper? No, it works directly with publicly accessible member profile URLs.

Can I scrape multiple profiles at once? Yes, you can provide multiple profile URLs to process them in a single run.

Is sensitive data included in the output? Only publicly available profile information is collected, and outputs can be filtered further if needed.

What happens if a profile field is missing? Missing fields are returned as null to maintain a consistent data structure.


Performance Benchmarks and Results

Primary Metric: Processes an average member profile in under 2 seconds.

Reliability Metric: Maintains a success rate above 98% on valid profile URLs.

Efficiency Metric: Capable of handling hundreds of profiles per hour with minimal resource usage.

Quality Metric: Delivers highly complete records with consistent field normalization across profiles.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
★★★★★

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
★★★★★

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
★★★★★

Releases

Packages

Contributors