InvestorLift to Airtable Scraper (Chrome Extension)

Raj Pathak

Verified

InvestorLift Property Scraper - Chrome Extension
This project involved the full-stack development of a production-ready Chrome Extension (Manifest V3) to solve a data-entry bottleneck for real estate investors. The extension provides a 1-click solution to automatically scrape all property data from an InvestorLift marketplace listing and seamlessly sync it to a user's Airtable base.
The core business value is automation- it saves users hours of manual data entry, eliminates human error and provides a perfectly normalized dataset for analysis, all managed from a simple, secure, and user-friendly interface.
My Role & Responsibilities
As the sole developer, I was responsible for the entire project lifecycle, from architectural design to deployment. This included-
Designing a robust Manifest V3-compliant architecture using a service worker, content scripts, and an options page
Developing an intelligent DOM scraping engine that could handle dynamic content (AJAX) and was resilient to minor HTML changes
Building a secure integration layer with the Airtable REST API, including credential management and error handling
Creating a clean options page for configuration and a custom toast notification system for real-time user feedback
Key Features
Intelligent Web Scraping-
Automated data extraction from dynamic, async-loading pages.
Used MutationObserver to reliably capture content loaded after user interaction (like revealing an address).
Built with CSS selector fallbacks to ensure resilience against minor site updates.
Seamless Airtable Integration-
Full REST API v0 implementation for creating new records in Airtable.
Secure credential management using the Chrome.storage API.
Data validation and normalization layer to ensure clean data is sent to the API.
User-Friendly Configuration-
A professional, responsive options.html page for users to input and test their Airtable API credentials.
Real-time credential testing and visual status feedback.
Custom Toast Notification System-
A custom-built, non-blocking notification system to provide immediate feedback (Success, Warning, Error) without external libraries.
Supports stacking and auto-dismissal.
Resilience & Error Handling-
Comprehensive error handling for network failures, API errors, or missing DOM elements.
Provides clear, user-friendly error messages.
Technology Stack
Core Technologies- JavaScript (ES6+), Chrome Extension Manifest V3
APIs & Services- Airtable REST API v0, Chrome Storage API, Chrome Scripting API
Architecture Components-
Service Worker - Managed extension lifecycle, event handling, and content script injection.
Content Scripts - Housed the core InvestorLiftScraper class and performed all DOM manipulation and data extraction.
Configuration Layer - Centralized all CSS selectors and field mappings for easy maintenance.
API Layer - A dedicated AirtableManager class to handle all API communication, auth, and data formatting.
Options Page- Standard HTML/CSS/JS for user configuration.
Technical & Challenges Solved
1. Challenge- Scraping Dynamic Content
Problem- The property address was hidden behind a button that triggered an AJAX request. A simple page load scraper would fail.
Solution- I implemented an async revealAddress() function that programmatically clicked the button, then used a Promise-based waitForElement() helper (powered by MutationObserver) to wait for the address to appear in the DOM before scraping.
2. Challenge- Selector Reliability
Problem- HTML structures on target websites can change, breaking the scraper.
Solution- I designed a findElement() helper that accepts multiple comma-separated selectors for a single piece of data. It tries each one in order, providing a robust fallback system. All selectors are stored in a central config.js file, so updates don't require digging through logic.
3. Challenge- Developer Mode Storage Loss
Problem- When testing an unpacked extension, Chrome clears Chrome.storage on every reload, which made testing the options page tedious.
Solution- I added a localStorage backup only for the options page. On load, it checks Chrome.storage first, but if empty, it restores credentials from localStorage, streamlining the development and testing cycle.
4. Challenge- API & Data Flow
Process- The data flow is
User clicks the extension icon (Action API)
background.js injects content.js (Scripting API)
content.js scrapes all data, handling async reveals
Data is passed to the airtable.js manager
airtable.js loads credentials from Chrome.storage
A formatted POST request is sent to the Airtable API
The API response is used to show a Success or Error toast notification
Skills
Frontend Development- JavaScript (ES6+, Classes, Async/Await), HTML5/CSS3, DOM Manipulation
Browser Extension Development- Chrome Manifest V3, Service Workers, Content Scripts, Storage API
Backend & API Integration- REST API consumption, Bearer Token Auth, JSON data formatting, error handling
Software Engineering- Object-Oriented Programming (OOP), modular architecture, defensive coding, and comprehensive error handling
Like this project

Posted Nov 16, 2025

Built a Chrome Extension for real estate investors. It automates property scraping from InvestorLift and syncs all data to Airtable with 1 click.

Likes

0

Views

0

Timeline

Oct 24, 2025 - Nov 8, 2025

Clients

Fort Mason

Qubitcoin GPU Miner- 100x Performance Port
Qubitcoin GPU Miner- 100x Performance Port
AI-Driven Race Photography Platform Development
AI-Driven Race Photography Platform Development
Dynamic Survey Reporting & Automation
Dynamic Survey Reporting & Automation
WooCommerce to Shopify Migration & Custom Shopify Development
WooCommerce to Shopify Migration & Custom Shopify Development

Join 50k+ companies and 1M+ independents

Contra Logo

© 2025 Contra.Work Inc