LinkedIn to Airtable, qualified companies without dupes
Copying company details out of LinkedIn looks harmless… until you’ve done it 40 times, your CRM has duplicates, and nobody trusts the list anymore.
This LinkedIn Airtable automation hits sales leads and biz dev teams hardest, but marketers building target account lists feel it too. You end up spending hours on “research” that is really just tab-switching and cleanup.
This workflow pulls targeted LinkedIn companies into Airtable, checks basic “fit” signals, and blocks dupes so your outreach list stays clean. Below, you’ll see how it works, what you get, and what to watch out for.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: LinkedIn to Airtable, qualified companies without dupes
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Process Each Company", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Company Info"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Valid Companies", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Check If Company Exists"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is New Company?", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Add Company to CRM"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Variables", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Search Companies"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Company Data", pos: "b", h: 48 }
n7 --> n8
n5 --> n6
n5 --> n1
n2 --> n3
n8 --> n9
n6 --> n1
n9 --> n1
n1 --> n2
n3 --> n4
n3 --> n1
n4 --> n5
n0 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n3,n5 decision
class n4,n6 database
class n2,n8 api
classDef customIcon fill:none,stroke:none
class n2,n4,n6,n8 customIcon
The Problem: LinkedIn research turns into CRM cleanup
Finding companies on LinkedIn is easy. Turning that into a usable CRM list is the part that quietly wrecks your week. You search, open a bunch of profiles, copy the company name, try to grab a website, paste the LinkedIn URL, then guess if they’re even worth contacting. Repeat. And later, when you run outreach, you discover duplicates, missing websites, or “companies” that were never real targets in the first place. The time cost is obvious. The mental cost is worse, because you can’t tell which rows are good without re-checking everything.
It adds up fast. Here’s where the process usually breaks down.
- Each company takes maybe 5–10 minutes to research and format, so even a small list can eat a whole afternoon.
- Duplicates sneak in because names vary (“Acme Inc” vs “Acme”), which means your team double-contacts or double-scores accounts.
- “Qualification” becomes vibes-based when you’re rushing, so low-fit companies clog the pipeline and waste follow-ups.
- When the website field is blank, enrichment gets delayed, messaging gets generic, and replies drop.
The Solution: Search LinkedIn, qualify, and save only new companies
This n8n workflow automates the “research-to-CRM” handoff without trying to overcomplicate it. You start by defining what you’re looking for (keywords, company size, location). The workflow sends those criteria to a LinkedIn company search via an API (Ghost Genius), then collects a list of matching companies. It processes each company one-by-one, fetches deeper details, and runs a quick quality check using simple indicators like follower count and whether a website is available. Only then does it look in Airtable to see if that company already exists. If it’s new, it gets added to your CRM base with the key fields mapped correctly. If it’s a duplicate, it’s skipped, so your list stays usable.
The workflow begins when you launch it in n8n and set your search inputs. It loops through LinkedIn company results, validates fit, checks Airtable for an existing record, and then appends only the companies that pass both checks. You end with an Airtable CRM you can actually trust.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you build a targeted list of 80 companies every week. Manually, if each company takes about 7 minutes to open, copy fields, sanity-check, and paste into Airtable, that’s roughly 9 hours of pretty dull work. With this workflow, you spend about 10 minutes setting criteria in n8n, then let it run while it fetches details, filters by basic fit, and dedupes before writing to Airtable. You still might spot-check the final list for a few minutes, but the heavy lifting is gone.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtable for your CRM base and dedupe checks.
- Ghost Genius API to search LinkedIn company data.
- Ghost Genius API key (get it from your Ghost Genius account dashboard)
Skill level: Intermediate. You’ll connect Airtable, add an API key, and map a few fields without touching code.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You launch the workflow and set your targeting. A manual trigger starts the run, then a “Define Search Inputs” step sets keywords, location, and company size so your search stays consistent.
LinkedIn company results are pulled in automatically. An HTTP request queries the company search endpoint (via Ghost Genius), then the workflow splits the response into individual company records so they can be processed cleanly.
Each company gets enriched and lightly qualified. The workflow loops through results in batches, fetches detailed company info, then checks for signals like follower count and whether a website exists. If it fails your criteria, it’s skipped. Simple, but effective.
Only new companies get written to Airtable. Before inserting anything, n8n searches your Airtable CRM for an existing record (using the company ID or other matching field). If no match is found, it appends a new row with your mapped fields.
You can easily modify the search criteria and qualification rules to match your ICP. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Set up the manual start point for the workflow so you can test the end-to-end flow on demand.
- Add a Manual Launch Trigger node as the workflow entry point.
- Connect Manual Launch Trigger to Define Search Inputs to match the execution flow.
- Keep Flowpast Branding as a reference note (optional, no configuration required).
Step 2: Connect the GhostGenius API
Authorize the API nodes that fetch the company list and detailed company data.
- Open Retrieve Company List and set URL to
https://api.ghostgenius.fr/v2/search/companies. - Set Authentication to
genericCredentialTypeand Generic Auth Type tohttpHeaderAuth. - Credential Required: Connect your httpHeaderAuth credentials in Retrieve Company List.
- Open Fetch Company Details and set URL to
https://api.ghostgenius.fr/v2/companywith Authentication set togenericCredentialType. - Credential Required: Connect your httpHeaderAuth credentials in Fetch Company Details.
2000 ms in Retrieve Company List pagination to avoid API throttling.Step 3: Set Up Search Inputs and Company Discovery
Define the search criteria and pass them into the company search endpoint.
- In Define Search Inputs, add assignments for Your target with value
Growth Marketing Agency. - Add B: 1-10 employees, C: 11-50 employees, D: 51-200 employees, E: 201-500 employees, F: 501-1000 employees, G: 1001-5000 employees, H: 5001-10,000 employees, I: 10,001+ employees with value
C. - Add Location identifier with value
103644278. - In Retrieve Company List, set query parameters: keywords to
{{ $json['Your target'] }}, company_size to{{ $json['B: 1-10 employees, C: 11-50 employees, D: 51-200 employees, E: 201-500 employees, F: 501-1000 employees, G: 1001-5000 employees, H: 5001-10,000 employees, I: 10,001+ employees'] }}, and location to{{ $json['Location identifier'] }}. - Configure pagination in Retrieve Company List to use page with
{{ $pageCount + 1 }}and completion expression{{ $response.body.data.isEmpty() }}.
Step 4: Configure Record Splitting, Batching, and Validation
Split the list into individual items, batch the processing, fetch details, and filter for quality records.
- In Split Company Records, set Field To Split Out to
data. - Connect Split Company Records to Iterate Company Batch to process one company at a time.
- In Fetch Company Details, set the query parameter url to
{{ $json.url }}. - Keep batching in Fetch Company Details at Batch Size
1and Batch Interval2000to limit API load. - In Validate Company Records, set conditions: website notEmpty with
{{ $json.website }}and followers_count gt200using{{ $json.followers_count }}.
Step 5: Configure CRM Search and Append Logic
Check for existing companies in Airtable, then create new records only when needed.
- In Search CRM for Company, set Operation to
searchand Filter By Formula to={id} = '{{ $json.id.toNumber() }}'. - Credential Required: Connect your airtableTokenApi credentials in Search CRM for Company.
- In Determine New Company, keep the condition checking an empty result:
{{ $('Search CRM for Company').all().first().json }}. - In Append Company to CRM, set Operation to
createand map fields including id to{{ $('Validate Company Records').item.json.id.toNumber() }}, Name to{{ $('Validate Company Records').item.json.name }}, and Website to{{ $('Validate Company Records').item.json.website }}. - Set fixed values in Append Company to CRM for Country as
🇺🇸 United Statesand Category asGrowth Marketing Agency 11-50 🌍. - Credential Required: Connect your airtableTokenApi credentials in Append Company to CRM.
[YOUR_ID] will cause search/create failures.Step 6: Test and Activate Your Workflow
Run a manual test to confirm company records are fetched, validated, and written to your CRM.
- Click Execute Workflow to run Manual Launch Trigger and start the pipeline.
- Verify that Retrieve Company List outputs company data and Split Company Records emits individual items.
- Confirm Validate Company Records passes only entries with a website and
followers_countgreater than200. - Check Airtable to ensure Append Company to CRM creates new records only when Determine New Company evaluates as empty.
- When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- Ghost Genius credentials can expire or need specific permissions. If things break, check your Ghost Genius dashboard and confirm the API key is still active first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes once your Airtable base and API key are ready.
No. You’ll mostly paste an API key, connect Airtable, and map fields.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Ghost Genius API costs based on your usage.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s the main reason this template is useful long-term. Update your targeting in the “Define Search Inputs” step (keywords, location, size), then adjust the follower threshold in “Validate Company Records” to match how strict you want to be. If your CRM uses different fields, change the mapping in “Append Company to CRM” so Airtable gets the exact columns you care about. Many teams also add a Slack or email notification when a batch finishes, just to keep list-building visible.
Most of the time it’s an expired token or the wrong base/table selected in your Airtable credentials. Confirm the base is named “CRM” (or update the node to match your base), and make sure the token has access to that workspace. Also check your field names: if your Airtable table doesn’t have the columns you’re mapping (like “website” or “LinkedIn”), Airtable will reject the create/update request.
Hundreds per run is realistic for most teams, as long as your API limits allow it and you process in batches.
Often, yes, because this workflow relies on looping through results, branching on validation, and checking Airtable before inserting anything. n8n is better suited to that kind of logic without turning every small step into an extra paid task. Zapier or Make can work, but you’ll usually feel it when you add deduping, batching, and multi-step enrichment. If you want to run this at higher volume, self-hosting n8n is also a big advantage. Talk to an automation expert if you’re deciding between tools.
A clean CRM is a force multiplier, honestly. Set this up once, run it every week, and stop treating list-building like an endurance sport.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.