@rashidazarang/airtable-mcp 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/airtable_simple_production.js +387 -5
- package/examples/claude_simple_config.json +0 -9
- package/package.json +10 -1
- package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -173
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/custom.md +0 -10
- package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -209
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/ISSUE_TEMPLATE/security-report.yml +0 -216
- package/.github/pull_request_template.md +0 -245
- package/.github/workflows/ci-cd.yml +0 -408
- package/.github/workflows/security-audit.yml +0 -316
- package/API_DOCUMENTATION.md +0 -897
- package/CAPABILITY_REPORT.md +0 -118
- package/CLAUDE_INTEGRATION.md +0 -96
- package/CODE_OF_CONDUCT.md +0 -181
- package/CONTRIBUTING.md +0 -81
- package/DEVELOPMENT.md +0 -190
- package/Dockerfile +0 -39
- package/Dockerfile.node +0 -20
- package/Dockerfile.production +0 -127
- package/IMPROVEMENT_PROPOSAL.md +0 -371
- package/INSTALLATION.md +0 -183
- package/ISSUE_RESPONSES.md +0 -171
- package/MCP_REVIEW_SUMMARY.md +0 -142
- package/QUICK_START.md +0 -60
- package/RELEASE_NOTES_v1.2.0.md +0 -50
- package/RELEASE_NOTES_v1.2.1.md +0 -40
- package/RELEASE_NOTES_v1.2.2.md +0 -48
- package/RELEASE_NOTES_v1.2.3.md +0 -105
- package/RELEASE_NOTES_v1.2.4.md +0 -60
- package/RELEASE_NOTES_v1.4.0.md +0 -104
- package/RELEASE_NOTES_v1.5.0.md +0 -185
- package/RELEASE_NOTES_v1.6.0.md +0 -248
- package/SECURITY_NOTICE.md +0 -40
- package/airtable-clipper/CHANGELOG.md +0 -198
- package/airtable-clipper/CHROME_STORE_SUBMISSION.md +0 -343
- package/airtable-clipper/LAUNCH_STRATEGY.md +0 -495
- package/airtable-clipper/LICENSE +0 -21
- package/airtable-clipper/OAUTH_SETUP.md +0 -51
- package/airtable-clipper/PRIVACY_POLICY.md +0 -187
- package/airtable-clipper/README.md +0 -575
- package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +0 -273
- package/airtable-clipper/build.sh +0 -85
- package/airtable-clipper/docs/QUICK_START.md +0 -99
- package/airtable-clipper/docs/SETUP.md +0 -291
- package/airtable-clipper/extension/background.js +0 -337
- package/airtable-clipper/extension/base-setup.html +0 -324
- package/airtable-clipper/extension/base-setup.js +0 -471
- package/airtable-clipper/extension/content.js +0 -771
- package/airtable-clipper/extension/icons/README.md +0 -69
- package/airtable-clipper/extension/icons/icon-16.png +0 -3
- package/airtable-clipper/extension/manifest.json +0 -73
- package/airtable-clipper/extension/popup.html +0 -144
- package/airtable-clipper/extension/popup.js +0 -475
- package/airtable-clipper/extension/styles/content.css +0 -229
- package/airtable-clipper/extension/styles/popup.css +0 -477
- package/airtable-clipper/privacy-policy.md +0 -63
- package/airtable-clipper/releases/v1.0.0/background.js +0 -337
- package/airtable-clipper/releases/v1.0.0/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.0/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.0/content.js +0 -771
- package/airtable-clipper/releases/v1.0.0/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.0/manifest.json +0 -73
- package/airtable-clipper/releases/v1.0.0/popup.html +0 -144
- package/airtable-clipper/releases/v1.0.0/popup.js +0 -475
- package/airtable-clipper/releases/v1.0.0/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.0/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.0/styles/popup.css +0 -477
- package/airtable-clipper/releases/v1.0.1/background.js +0 -337
- package/airtable-clipper/releases/v1.0.1/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.1/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.1/content.js +0 -771
- package/airtable-clipper/releases/v1.0.1/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.1/manifest.json +0 -70
- package/airtable-clipper/releases/v1.0.1/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.1/popup.js +0 -562
- package/airtable-clipper/releases/v1.0.1/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.1/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.1/styles/popup.css +0 -647
- package/airtable-clipper/releases/v1.0.2/background.js +0 -337
- package/airtable-clipper/releases/v1.0.2/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.2/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.2/content.js +0 -771
- package/airtable-clipper/releases/v1.0.2/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.2/manifest.json +0 -62
- package/airtable-clipper/releases/v1.0.2/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.2/popup.js +0 -567
- package/airtable-clipper/releases/v1.0.2/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.2/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.2/styles/popup.css +0 -647
- package/airtable-clipper/terms-of-service.md +0 -124
- package/airtable-clipper/test-credentials.md +0 -61
- package/airtable-clipper/test-extension/background.js +0 -337
- package/airtable-clipper/test-extension/base-setup.html +0 -324
- package/airtable-clipper/test-extension/base-setup.js +0 -471
- package/airtable-clipper/test-extension/content.js +0 -873
- package/airtable-clipper/test-extension/icons/README.md +0 -69
- package/airtable-clipper/test-extension/icons/icon-128.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-16.png +0 -3
- package/airtable-clipper/test-extension/icons/icon-32.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-48.png +0 -2
- package/airtable-clipper/test-extension/manifest.json +0 -72
- package/airtable-clipper/test-extension/popup.html +0 -274
- package/airtable-clipper/test-extension/popup.js +0 -729
- package/airtable-clipper/test-extension/sidepanel.html +0 -25
- package/airtable-clipper/test-extension/styles/content.css +0 -229
- package/airtable-clipper/test-extension/styles/popup.css +0 -794
- package/airtable_mcp/__init__.py +0 -5
- package/airtable_mcp/src/server.py +0 -329
- package/airtable_mcp_v2.js +0 -1505
- package/airtable_mcp_v2_oauth.js +0 -1048
- package/airtable_mcp_v3_advanced.js +0 -1161
- package/cleanup.sh +0 -71
- package/docker-compose.production.yml +0 -366
- package/helm/airtable-mcp/Chart.yaml +0 -122
- package/helm/airtable-mcp/values.yaml +0 -538
- package/index.js +0 -179
- package/inspector.py +0 -148
- package/inspector_server.py +0 -337
- package/k8s/deployment.yaml +0 -402
- package/k8s/namespace.yaml +0 -108
- package/k8s/service.yaml +0 -194
- package/monitoring/alerts.yml +0 -289
- package/monitoring/prometheus.yml +0 -224
- package/publish-steps.txt +0 -27
- package/quick_test.sh +0 -30
- package/requirements.txt +0 -10
- package/setup.py +0 -29
- package/simple_airtable_server.py +0 -151
- package/smithery.yaml +0 -45
- package/test_all_features.sh +0 -146
- package/test_all_operations.sh +0 -120
- package/test_client.py +0 -70
- package/test_enhanced_features.js +0 -389
- package/test_mcp_comprehensive.js +0 -163
- package/test_mock_server.js +0 -180
- package/test_v1.4.0_final.sh +0 -131
- package/test_v1.5.0_comprehensive.sh +0 -96
- package/test_v1.5.0_final.sh +0 -224
- package/test_v1.6.0_comprehensive.sh +0 -187
- package/test_webhooks.sh +0 -105
|
@@ -1,575 +0,0 @@
|
|
|
1
|
-
# 📎 Airtable Clipper - Save Anything from Web to Airtable
|
|
2
|
-
|
|
3
|
-
[](https://chrome.google.com/webstore)
|
|
4
|
-
[](https://github.com/rashidazarang/airtable-clipper)
|
|
5
|
-
[](LICENSE)
|
|
6
|
-
[](https://github.com/rashidazarang/airtable-clipper/releases)
|
|
7
|
-
|
|
8
|
-
> **Turn any website into structured Airtable data with one click.** Built for sales teams, recruiters, researchers, and anyone who's tired of copy-pasting from the web to their CRM.
|
|
9
|
-
|
|
10
|
-

|
|
11
|
-
|
|
12
|
-
## ✨ What It Does
|
|
13
|
-
|
|
14
|
-
Airtable Clipper is a powerful Chrome extension that intelligently extracts data from any website and saves it directly to your Airtable base. No more manual data entry, no more copy-pasting – just smart, one-click data capture.
|
|
15
|
-
|
|
16
|
-
### 🎯 Perfect For
|
|
17
|
-
|
|
18
|
-
- **Sales Teams**: Build your CRM by saving LinkedIn profiles with enriched contact data
|
|
19
|
-
- **Recruiters**: Collect candidate profiles and track them through your hiring pipeline
|
|
20
|
-
- **Researchers**: Gather articles, papers, and web content for analysis
|
|
21
|
-
- **Content Creators**: Save inspiration and references from around the web
|
|
22
|
-
- **Anyone**: Who wants to turn web browsing into structured data collection
|
|
23
|
-
|
|
24
|
-
## 🚀 Key Features
|
|
25
|
-
|
|
26
|
-
### 🧠 **Smart Data Extraction**
|
|
27
|
-
- **LinkedIn Intelligence**: Automatically extracts profiles with name, title, company, location, experience, and education
|
|
28
|
-
- **Universal Web Scraper**: Works on any website – GitHub repos, Stack Overflow questions, Medium articles, and more
|
|
29
|
-
- **AI-Powered Field Mapping**: Intelligently maps extracted data to your Airtable fields
|
|
30
|
-
- **Content Recognition**: Understands different types of web content and extracts accordingly
|
|
31
|
-
|
|
32
|
-
### ⚡ **One-Click Simplicity**
|
|
33
|
-
- **Floating Action Button**: Appears on supported sites for instant saving
|
|
34
|
-
- **Right-Click Integration**: Save any page via context menu
|
|
35
|
-
- **Bulk Mode**: Select multiple items and save them all at once
|
|
36
|
-
- **Keyboard Shortcuts**: `Cmd+Shift+S` for quick save, `Cmd+Shift+B` for bulk mode
|
|
37
|
-
|
|
38
|
-
### 🔍 **Data Enrichment**
|
|
39
|
-
- **Email Finder**: Intelligent email guessing based on name and company patterns
|
|
40
|
-
- **Duplicate Detection**: Prevents saving the same contact twice
|
|
41
|
-
- **Data Quality Scoring**: Rates the completeness and confidence of extracted data
|
|
42
|
-
- **Auto-Tagging**: Adds relevant tags based on content analysis
|
|
43
|
-
|
|
44
|
-
### 🔗 **Seamless Airtable Integration**
|
|
45
|
-
- **Direct API Connection**: No middleware, works directly with Airtable's REST API
|
|
46
|
-
- **Auto-Table Creation**: Suggests table structures for different data types
|
|
47
|
-
- **Field Mapping**: Smart mapping to existing table schemas
|
|
48
|
-
- **Batch Operations**: Efficient bulk saves with proper rate limiting
|
|
49
|
-
|
|
50
|
-
## 📸 See It In Action
|
|
51
|
-
|
|
52
|
-
### Save LinkedIn Profile to CRM (30 seconds)
|
|
53
|
-

|
|
54
|
-
|
|
55
|
-
*Visit any LinkedIn profile → Click extension → Profile saved with enriched data*
|
|
56
|
-
|
|
57
|
-
### Bulk Save Search Results
|
|
58
|
-

|
|
59
|
-
|
|
60
|
-
*Select multiple profiles → Bulk save → All contacts added to your CRM*
|
|
61
|
-
|
|
62
|
-
### Smart Content Recognition
|
|
63
|
-

|
|
64
|
-
|
|
65
|
-
*Works on GitHub, Stack Overflow, Medium, and thousands of other sites*
|
|
66
|
-
|
|
67
|
-
## 🛠️ Installation
|
|
68
|
-
|
|
69
|
-
### Option 1: Chrome Web Store (Recommended)
|
|
70
|
-
|
|
71
|
-
[**🔗 Install from Chrome Web Store**](https://chrome.google.com/webstore/detail/airtable-clipper/EXTENSION_ID)
|
|
72
|
-
|
|
73
|
-
### Option 2: Manual Installation
|
|
74
|
-
|
|
75
|
-
1. **Download the latest release**
|
|
76
|
-
```bash
|
|
77
|
-
git clone https://github.com/rashidazarang/airtable-clipper.git
|
|
78
|
-
cd airtable-clipper
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
2. **Load in Chrome**
|
|
82
|
-
- Open Chrome and go to `chrome://extensions/`
|
|
83
|
-
- Enable "Developer Mode" (top-right toggle)
|
|
84
|
-
- Click "Load unpacked" and select the `extension` folder
|
|
85
|
-
- The Airtable Clipper icon should appear in your toolbar
|
|
86
|
-
|
|
87
|
-
## ⚙️ Setup (2 Minutes)
|
|
88
|
-
|
|
89
|
-
### Step 1: Get Your Airtable Credentials
|
|
90
|
-
|
|
91
|
-
1. **Personal Access Token**: Visit [airtable.com/create/tokens](https://airtable.com/create/tokens)
|
|
92
|
-
- Click "Create new token"
|
|
93
|
-
- Name it "Airtable Clipper"
|
|
94
|
-
- Add scopes: `data.records:read`, `data.records:write`, `schema.bases:read`
|
|
95
|
-
- Copy the token (starts with `pat...`)
|
|
96
|
-
|
|
97
|
-
2. **Base ID**: Open your Airtable base in browser
|
|
98
|
-
- Copy the Base ID from the URL: `https://airtable.com/appXXXXXXXXXXXXXX/...`
|
|
99
|
-
- It's the part that starts with `app`
|
|
100
|
-
|
|
101
|
-
### Step 2: Configure the Extension
|
|
102
|
-
|
|
103
|
-
1. Click the Airtable Clipper icon in your Chrome toolbar
|
|
104
|
-
2. Paste your Personal Access Token
|
|
105
|
-
3. Paste your Base ID
|
|
106
|
-
4. Click "Connect to Airtable"
|
|
107
|
-
5. ✅ You're ready to start clipping!
|
|
108
|
-
|
|
109
|
-

|
|
110
|
-
|
|
111
|
-
## 💡 How To Use
|
|
112
|
-
|
|
113
|
-
### Quick Save Any Page
|
|
114
|
-
1. **Visit any webpage** (LinkedIn, GitHub, articles, etc.)
|
|
115
|
-
2. **Click the extension icon** or use `Cmd+Shift+S`
|
|
116
|
-
3. **Data is automatically extracted** and saved to your "Clips" table
|
|
117
|
-
4. **Get notification** when save is complete
|
|
118
|
-
|
|
119
|
-
### LinkedIn CRM Workflow
|
|
120
|
-
1. **Visit a LinkedIn profile** (e.g., `linkedin.com/in/johndoe`)
|
|
121
|
-
2. **Extension auto-detects** it's a profile page
|
|
122
|
-
3. **Click "Save Profile"** or use the floating action button
|
|
123
|
-
4. **Complete profile saved** to your "Contacts" table with:
|
|
124
|
-
- Name, title, company, location
|
|
125
|
-
- Experience and education history
|
|
126
|
-
- LinkedIn URL and profile photo
|
|
127
|
-
- Auto-generated tags and lead score
|
|
128
|
-
|
|
129
|
-
### Bulk Operations
|
|
130
|
-
1. **Hold Shift** and click the extension icon (or use `Cmd+Shift+B`)
|
|
131
|
-
2. **Enter bulk mode** - page highlights selectable items
|
|
132
|
-
3. **Click items** to select them (works great on LinkedIn search results)
|
|
133
|
-
4. **Click "Save Selected"** to save all items at once
|
|
134
|
-
5. **Bulk processing** with automatic deduplication
|
|
135
|
-
|
|
136
|
-
### Text Selection Save
|
|
137
|
-
1. **Select any text** on a webpage
|
|
138
|
-
2. **Right-click** and choose "Save to Airtable"
|
|
139
|
-
3. **Selected text saved** with source URL and timestamp
|
|
140
|
-
|
|
141
|
-
## 🎯 Supported Websites
|
|
142
|
-
|
|
143
|
-
### ⭐ **Premium Support**
|
|
144
|
-
- **LinkedIn**: Profiles, company pages, job postings, search results
|
|
145
|
-
- **GitHub**: Repositories, user profiles, issues, pull requests
|
|
146
|
-
- **Stack Overflow**: Questions, answers, user profiles
|
|
147
|
-
- **Medium**: Articles, author profiles, publications
|
|
148
|
-
|
|
149
|
-
### 🌐 **Universal Support**
|
|
150
|
-
Works on **any website** with intelligent content extraction:
|
|
151
|
-
- News articles and blogs
|
|
152
|
-
- E-commerce product pages
|
|
153
|
-
- Documentation sites
|
|
154
|
-
- Social media posts
|
|
155
|
-
- Academic papers
|
|
156
|
-
- And thousands more...
|
|
157
|
-
|
|
158
|
-
## 📊 Use Cases & Examples
|
|
159
|
-
|
|
160
|
-
### Sales Team CRM
|
|
161
|
-
```javascript
|
|
162
|
-
// LinkedIn Sales Navigator workflow:
|
|
163
|
-
1. Search for "VP Marketing SaaS startups"
|
|
164
|
-
2. Use bulk mode to select all matching profiles
|
|
165
|
-
3. Save 20+ leads in under 2 minutes
|
|
166
|
-
4. Each contact gets:
|
|
167
|
-
- Full profile data
|
|
168
|
-
- Enriched email guesses
|
|
169
|
-
- Company information
|
|
170
|
-
- Lead scoring
|
|
171
|
-
- Auto-generated follow-up tasks
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### Recruitment Pipeline
|
|
175
|
-
```javascript
|
|
176
|
-
// Technical recruiting workflow:
|
|
177
|
-
1. Search LinkedIn for "Senior React Developer"
|
|
178
|
-
2. Extension extracts: skills, experience, education
|
|
179
|
-
3. Auto-matches against job requirements
|
|
180
|
-
4. Calculates candidate fit score
|
|
181
|
-
5. Creates structured pipeline in Airtable
|
|
182
|
-
6. Tracks outreach and interview status
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### Content Research
|
|
186
|
-
```javascript
|
|
187
|
-
// Content curation workflow:
|
|
188
|
-
1. Browse articles while researching a topic
|
|
189
|
-
2. Save interesting articles with one click
|
|
190
|
-
3. Auto-extracts: title, author, summary, tags
|
|
191
|
-
4. Builds searchable content library
|
|
192
|
-
5. Generates reading lists and citations
|
|
193
|
-
6. Tracks content performance metrics
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Product Research
|
|
197
|
-
```javascript
|
|
198
|
-
// Competitive analysis workflow:
|
|
199
|
-
1. Visit competitor websites and product pages
|
|
200
|
-
2. Save product features, pricing, descriptions
|
|
201
|
-
3. Track changes over time
|
|
202
|
-
4. Build competitive intelligence database
|
|
203
|
-
5. Generate comparison reports
|
|
204
|
-
6. Monitor market trends
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## ⚙️ Configuration Options
|
|
208
|
-
|
|
209
|
-
### Table Settings
|
|
210
|
-
- **Default Table**: Where general web clips are saved (default: "Clips")
|
|
211
|
-
- **LinkedIn Table**: Where LinkedIn profiles are saved (default: "Contacts")
|
|
212
|
-
- **Custom Field Mapping**: Map extracted data to your existing fields
|
|
213
|
-
|
|
214
|
-
### Automation Settings
|
|
215
|
-
- **Auto-Save LinkedIn**: Automatically save profiles when visiting them
|
|
216
|
-
- **Duplicate Detection**: Skip saving if similar record already exists
|
|
217
|
-
- **Bulk Mode**: Maximum items to select at once (default: 50)
|
|
218
|
-
|
|
219
|
-
### Notification Settings
|
|
220
|
-
- **Success Notifications**: Show when items are saved successfully
|
|
221
|
-
- **Error Alerts**: Get notified if saves fail (with helpful troubleshooting)
|
|
222
|
-
- **Weekly Reports**: Summary of your clipping activity
|
|
223
|
-
|
|
224
|
-
### Advanced Settings
|
|
225
|
-
- **Rate Limiting**: Respect website and Airtable API limits
|
|
226
|
-
- **Data Validation**: Ensure data quality before saving
|
|
227
|
-
- **Privacy Mode**: Extra protection for sensitive data
|
|
228
|
-
|
|
229
|
-
## 🔒 Privacy & Security
|
|
230
|
-
|
|
231
|
-
### What Data We Access
|
|
232
|
-
- **Website Content**: Only when you explicitly choose to save it
|
|
233
|
-
- **Airtable Access**: Only to tables you specify with your credentials
|
|
234
|
-
- **No Tracking**: We don't track your browsing or collect analytics
|
|
235
|
-
|
|
236
|
-
### Your Data Stays Yours
|
|
237
|
-
- **Local Processing**: All data extraction happens in your browser
|
|
238
|
-
- **Direct Integration**: Data goes straight from your browser to your Airtable
|
|
239
|
-
- **No Cloud Storage**: We never store or access your extracted data
|
|
240
|
-
- **Open Source**: Full transparency - inspect the code yourself
|
|
241
|
-
|
|
242
|
-
### LinkedIn Compliance
|
|
243
|
-
- **Public Data Only**: Only extracts information visible without login
|
|
244
|
-
- **Rate Limited**: Respectful scraping that won't trigger LinkedIn's protections
|
|
245
|
-
- **User Consent**: Clear disclaimers about data usage and LinkedIn's terms
|
|
246
|
-
- **Ethical Use**: Designed for legitimate business and research purposes
|
|
247
|
-
|
|
248
|
-
## 📈 Performance & Limits
|
|
249
|
-
|
|
250
|
-
### Extraction Speed
|
|
251
|
-
- **LinkedIn Profile**: < 3 seconds average
|
|
252
|
-
- **General Web Page**: < 2 seconds average
|
|
253
|
-
- **Bulk Operations**: ~1 second per item
|
|
254
|
-
- **Airtable Save**: < 1 second per record
|
|
255
|
-
|
|
256
|
-
### Airtable Limits
|
|
257
|
-
- **Free Plan**: 5 requests per second, 1,200 records
|
|
258
|
-
- **Paid Plans**: Higher limits supported automatically
|
|
259
|
-
- **Batch Operations**: Optimized for Airtable's 10-record batch limit
|
|
260
|
-
- **Rate Limiting**: Built-in protection against API limits
|
|
261
|
-
|
|
262
|
-
### Browser Performance
|
|
263
|
-
- **Memory Usage**: < 50MB typical
|
|
264
|
-
- **CPU Impact**: Minimal - only active during extraction
|
|
265
|
-
- **Battery Life**: No background processing when idle
|
|
266
|
-
- **Storage**: < 5MB for settings and cache
|
|
267
|
-
|
|
268
|
-
## 🧪 Advanced Features
|
|
269
|
-
|
|
270
|
-
### Custom Extraction Templates
|
|
271
|
-
Create your own extraction patterns for specific websites:
|
|
272
|
-
|
|
273
|
-
```javascript
|
|
274
|
-
// config.js - Custom extraction template
|
|
275
|
-
const CUSTOM_TEMPLATES = {
|
|
276
|
-
'github.com': {
|
|
277
|
-
selector: '.repository-content',
|
|
278
|
-
fields: {
|
|
279
|
-
name: 'h1.public strong a',
|
|
280
|
-
description: '[data-pjax] p',
|
|
281
|
-
stars: '#repo-stars-counter-star',
|
|
282
|
-
language: '.BorderGrid-cell .ml-3',
|
|
283
|
-
topics: '.topic-tag'
|
|
284
|
-
},
|
|
285
|
-
type: 'repository'
|
|
286
|
-
},
|
|
287
|
-
|
|
288
|
-
'stackoverflow.com': {
|
|
289
|
-
selector: '#question',
|
|
290
|
-
fields: {
|
|
291
|
-
title: 'h1[itemprop="name"] a',
|
|
292
|
-
score: '.js-vote-count',
|
|
293
|
-
tags: '.post-tag',
|
|
294
|
-
views: '.views-number'
|
|
295
|
-
},
|
|
296
|
-
type: 'question'
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### Webhook Integration
|
|
302
|
-
Set up real-time notifications when new data is clipped:
|
|
303
|
-
|
|
304
|
-
```javascript
|
|
305
|
-
// Webhook payload example
|
|
306
|
-
{
|
|
307
|
-
"event": "record_created",
|
|
308
|
-
"table": "Contacts",
|
|
309
|
-
"record": {
|
|
310
|
-
"Name": "Jane Smith",
|
|
311
|
-
"Title": "VP Marketing",
|
|
312
|
-
"Company": "TechCorp",
|
|
313
|
-
"LinkedIn": "https://linkedin.com/in/janesmith",
|
|
314
|
-
"Source": "Airtable Clipper",
|
|
315
|
-
"Quality Score": 85
|
|
316
|
-
},
|
|
317
|
-
"metadata": {
|
|
318
|
-
"timestamp": "2025-01-15T10:30:00Z",
|
|
319
|
-
"user_agent": "Airtable Clipper v1.0.0",
|
|
320
|
-
"extraction_time": "2.3s"
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### API Integration
|
|
326
|
-
Programmatic access to clipped data:
|
|
327
|
-
|
|
328
|
-
```javascript
|
|
329
|
-
// Get clipping statistics
|
|
330
|
-
fetch('chrome-extension://EXTENSION_ID/api/stats')
|
|
331
|
-
.then(response => response.json())
|
|
332
|
-
.then(stats => {
|
|
333
|
-
console.log('Total clips:', stats.totalClips);
|
|
334
|
-
console.log('This week:', stats.weeklyClips);
|
|
335
|
-
console.log('Success rate:', stats.successRate);
|
|
336
|
-
});
|
|
337
|
-
|
|
338
|
-
// Trigger bulk save from external script
|
|
339
|
-
chrome.runtime.sendMessage(EXTENSION_ID, {
|
|
340
|
-
action: 'bulkSave',
|
|
341
|
-
items: [...profileUrls],
|
|
342
|
-
table: 'Prospects'
|
|
343
|
-
});
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
## 🔧 Troubleshooting
|
|
347
|
-
|
|
348
|
-
### Common Issues
|
|
349
|
-
|
|
350
|
-
**❌ "Connection Failed" Error**
|
|
351
|
-
```bash
|
|
352
|
-
# Check your credentials
|
|
353
|
-
1. Verify Personal Access Token is correct (starts with "pat")
|
|
354
|
-
2. Confirm Base ID is correct (starts with "app")
|
|
355
|
-
3. Ensure token has required permissions:
|
|
356
|
-
- data.records:read
|
|
357
|
-
- data.records:write
|
|
358
|
-
- schema.bases:read
|
|
359
|
-
|
|
360
|
-
# Test connection manually
|
|
361
|
-
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
362
|
-
https://api.airtable.com/v0/meta/bases/YOUR_BASE_ID/tables
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
**❌ "Failed to Extract Data" Error**
|
|
366
|
-
```bash
|
|
367
|
-
# Try these steps:
|
|
368
|
-
1. Refresh the page and try again
|
|
369
|
-
2. Check if website layout changed
|
|
370
|
-
3. Try on a different profile/page
|
|
371
|
-
4. Report the issue with page URL
|
|
372
|
-
|
|
373
|
-
# Debug mode (for developers)
|
|
374
|
-
Open DevTools → Console → Look for "Airtable Clipper" logs
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
**❌ "Too Many Requests" Error**
|
|
378
|
-
```bash
|
|
379
|
-
# Rate limit hit - wait and retry:
|
|
380
|
-
1. Airtable Free: Max 5 requests/second
|
|
381
|
-
2. Extension auto-throttles to respect limits
|
|
382
|
-
3. Try smaller batch sizes
|
|
383
|
-
4. Upgrade Airtable plan for higher limits
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
**❌ LinkedIn Not Working**
|
|
387
|
-
```bash
|
|
388
|
-
# LinkedIn blocked your IP:
|
|
389
|
-
1. This is temporary (usually 1-24 hours)
|
|
390
|
-
2. Caused by too many rapid requests
|
|
391
|
-
3. Use slower, more natural browsing
|
|
392
|
-
4. Try from different network if urgent
|
|
393
|
-
|
|
394
|
-
# LinkedIn changed their layout:
|
|
395
|
-
1. Extension auto-adapts to layout changes
|
|
396
|
-
2. Update to latest version
|
|
397
|
-
3. Report if problem persists
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
### Performance Issues
|
|
401
|
-
|
|
402
|
-
**🐌 Slow Extraction Speed**
|
|
403
|
-
- Close other Chrome tabs to free memory
|
|
404
|
-
- Disable other extensions temporarily
|
|
405
|
-
- Check your internet connection speed
|
|
406
|
-
- Try on a less complex webpage
|
|
407
|
-
|
|
408
|
-
**🔋 High Battery Usage**
|
|
409
|
-
- Only happens during active extraction
|
|
410
|
-
- Background usage is minimal
|
|
411
|
-
- Check for stuck extraction processes in DevTools
|
|
412
|
-
|
|
413
|
-
### Getting Help
|
|
414
|
-
|
|
415
|
-
1. **Documentation**: [Full docs and API reference](docs/)
|
|
416
|
-
2. **Issues**: [Report bugs and request features](https://github.com/rashidazarang/airtable-clipper/issues)
|
|
417
|
-
3. **Discussions**: [Community help and tips](https://github.com/rashidazarang/airtable-clipper/discussions)
|
|
418
|
-
4. **Updates**: [Follow for updates](https://twitter.com/rashidazarang)
|
|
419
|
-
|
|
420
|
-
## 🤝 Contributing
|
|
421
|
-
|
|
422
|
-
We welcome contributions! Here's how to get started:
|
|
423
|
-
|
|
424
|
-
### Development Setup
|
|
425
|
-
|
|
426
|
-
```bash
|
|
427
|
-
# Clone the repository
|
|
428
|
-
git clone https://github.com/rashidazarang/airtable-clipper.git
|
|
429
|
-
cd airtable-clipper
|
|
430
|
-
|
|
431
|
-
# Install development dependencies (optional - for linting)
|
|
432
|
-
npm install
|
|
433
|
-
|
|
434
|
-
# Load extension in Chrome
|
|
435
|
-
1. Go to chrome://extensions/
|
|
436
|
-
2. Enable "Developer Mode"
|
|
437
|
-
3. Click "Load unpacked"
|
|
438
|
-
4. Select the 'extension' folder
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
### Contributing Guidelines
|
|
442
|
-
|
|
443
|
-
1. **Fork** the repository
|
|
444
|
-
2. **Create** a feature branch: `git checkout -b feature/amazing-feature`
|
|
445
|
-
3. **Make** your changes with clear, commented code
|
|
446
|
-
4. **Test** thoroughly on multiple websites
|
|
447
|
-
5. **Submit** a pull request with detailed description
|
|
448
|
-
|
|
449
|
-
### What We Need Help With
|
|
450
|
-
|
|
451
|
-
- 🌐 **New Website Support**: Add extraction patterns for specific sites
|
|
452
|
-
- 🔧 **Bug Fixes**: Help us squash bugs and improve reliability
|
|
453
|
-
- 📚 **Documentation**: Improve guides, examples, and tutorials
|
|
454
|
-
- 🌍 **Internationalization**: Translate the extension to other languages
|
|
455
|
-
- ⚡ **Performance**: Optimize extraction speed and memory usage
|
|
456
|
-
|
|
457
|
-
### Development Guidelines
|
|
458
|
-
|
|
459
|
-
```javascript
|
|
460
|
-
// Code style guidelines
|
|
461
|
-
- Use ES6+ features and modern JavaScript
|
|
462
|
-
- Comment complex extraction logic
|
|
463
|
-
- Follow existing naming conventions
|
|
464
|
-
- Test on multiple websites before submitting
|
|
465
|
-
- Respect websites' robots.txt and rate limits
|
|
466
|
-
|
|
467
|
-
// Commit message format
|
|
468
|
-
feat: add GitHub repository extraction
|
|
469
|
-
fix: resolve LinkedIn profile parsing error
|
|
470
|
-
docs: update installation instructions
|
|
471
|
-
perf: optimize bulk save operations
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
## 📋 Roadmap
|
|
475
|
-
|
|
476
|
-
### Version 1.1 (Next Release)
|
|
477
|
-
- [ ] **Enhanced LinkedIn Support**: Company pages, job postings, event attendees
|
|
478
|
-
- [ ] **Email Verification**: Integration with email validation APIs
|
|
479
|
-
- [ ] **CRM Integration**: HubSpot, Salesforce, Pipedrive connectors
|
|
480
|
-
- [ ] **Mobile App**: React Native app for iOS/Android
|
|
481
|
-
- [ ] **Advanced Filtering**: Smart filters and search within clipped data
|
|
482
|
-
|
|
483
|
-
### Version 1.2 (Future)
|
|
484
|
-
- [ ] **AI-Powered Insights**: Automatic lead scoring and recommendations
|
|
485
|
-
- [ ] **Team Collaboration**: Share templates and collaborate on data collection
|
|
486
|
-
- [ ] **Workflow Automation**: Zapier integration and custom automations
|
|
487
|
-
- [ ] **Advanced Analytics**: Detailed usage statistics and ROI tracking
|
|
488
|
-
- [ ] **Enterprise Features**: SSO, admin controls, audit logging
|
|
489
|
-
|
|
490
|
-
### Version 2.0 (Vision)
|
|
491
|
-
- [ ] **Visual Workflow Builder**: Drag-and-drop extraction workflows
|
|
492
|
-
- [ ] **Machine Learning**: Adaptive extraction that improves over time
|
|
493
|
-
- [ ] **Voice Commands**: "Save this LinkedIn profile" voice control
|
|
494
|
-
- [ ] **Browser Automation**: Scheduled extraction and monitoring
|
|
495
|
-
- [ ] **Data Marketplace**: Community-shared extraction templates
|
|
496
|
-
|
|
497
|
-
**Vote on features**: [GitHub Discussions](https://github.com/rashidazarang/airtable-clipper/discussions)
|
|
498
|
-
|
|
499
|
-
## 📊 Stats & Testimonials
|
|
500
|
-
|
|
501
|
-
### Usage Statistics
|
|
502
|
-
- 🚀 **1,000+ Active Users**
|
|
503
|
-
- ⏱️ **Average 10 hours saved per week per user**
|
|
504
|
-
- ⭐ **4.8/5 Chrome Web Store rating**
|
|
505
|
-
- 📈 **95% success rate on LinkedIn extractions**
|
|
506
|
-
- 🎯 **500,000+ profiles saved to Airtable**
|
|
507
|
-
|
|
508
|
-
### What Users Say
|
|
509
|
-
|
|
510
|
-
> *"This extension changed how I do sales prospecting. I went from adding 10 leads per day manually to 100+ leads per day with this tool. The LinkedIn integration is phenomenal."*
|
|
511
|
-
>
|
|
512
|
-
> **— Sarah M., Sales Manager**
|
|
513
|
-
|
|
514
|
-
> *"As a technical recruiter, I was spending 2-3 hours a day copy-pasting candidate profiles. Now it takes me 10 minutes to build a pipeline of 50 candidates. The bulk save feature is incredible."*
|
|
515
|
-
>
|
|
516
|
-
> **— Michael R., Senior Technical Recruiter**
|
|
517
|
-
|
|
518
|
-
> *"I use this for market research and competitive analysis. Being able to quickly save product information, pricing, and company data into structured tables has made my analysis 10x faster."*
|
|
519
|
-
>
|
|
520
|
-
> **— Jennifer L., Product Marketing Manager**
|
|
521
|
-
|
|
522
|
-
> *"The data quality is impressive. It doesn't just scrape text - it actually understands the content and organizes it intelligently. The email guessing feature has a surprisingly high success rate."*
|
|
523
|
-
>
|
|
524
|
-
> **— David K., Growth Hacker**
|
|
525
|
-
|
|
526
|
-
## 📄 License
|
|
527
|
-
|
|
528
|
-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
529
|
-
|
|
530
|
-
## 🙏 Acknowledgments
|
|
531
|
-
|
|
532
|
-
Built with ❤️ for the Airtable community.
|
|
533
|
-
|
|
534
|
-
Special thanks to:
|
|
535
|
-
- **The Airtable Team** for their excellent API and platform
|
|
536
|
-
- **Our Beta Users** who provided invaluable feedback and testing
|
|
537
|
-
- **The Open Source Community** for inspiration and contributions
|
|
538
|
-
- **LinkedIn** for building the professional network that makes this tool valuable
|
|
539
|
-
|
|
540
|
-
## 🌟 Support the Project
|
|
541
|
-
|
|
542
|
-
If Airtable Clipper has saved you time and helped your workflow:
|
|
543
|
-
|
|
544
|
-
- ⭐ **Star this repository** to show your support
|
|
545
|
-
- 🐛 **Report bugs** to help us improve
|
|
546
|
-
- 💡 **Suggest features** in our discussions
|
|
547
|
-
- 📣 **Tell your colleagues** about the extension
|
|
548
|
-
- ✍️ **Leave a Chrome Web Store review**
|
|
549
|
-
|
|
550
|
-
---
|
|
551
|
-
|
|
552
|
-
**Built by [@rashidazarang](https://twitter.com/rashidazarang)** •
|
|
553
|
-
**[⭐ Star on GitHub](https://github.com/rashidazarang/airtable-clipper)** •
|
|
554
|
-
**[🔗 Install Extension](https://chrome.google.com/webstore)** •
|
|
555
|
-
**[📚 Documentation](docs/)** •
|
|
556
|
-
**[💬 Get Help](https://github.com/rashidazarang/airtable-clipper/discussions)**
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
### 🔄 Recent Updates
|
|
561
|
-
|
|
562
|
-
**v1.0.0** (January 15, 2025)
|
|
563
|
-
- 🎉 Initial release with LinkedIn profile extraction
|
|
564
|
-
- ⚡ Smart data enrichment and field mapping
|
|
565
|
-
- 📋 Bulk save operations with duplicate detection
|
|
566
|
-
- 🎨 Beautiful popup UI and floating action buttons
|
|
567
|
-
- 🔒 Privacy-focused design with local processing
|
|
568
|
-
|
|
569
|
-
**Coming Soon**
|
|
570
|
-
- Enhanced GitHub integration
|
|
571
|
-
- Email verification
|
|
572
|
-
- Team collaboration features
|
|
573
|
-
- Mobile companion app
|
|
574
|
-
|
|
575
|
-
*Making Airtable automation accessible to everyone through the power of intelligent web scraping.*
|