Tutorials·Carlos Ruiz·Jun 24, 2026·9 min read

Airtable + Zapier: The Talent Retention System I Built After Losing Three Engineers in One Month

March 2026. In one month, I received three resignation letters. Three senior engineers left for Anthropic, one went to DeepMind, and another to a startup that had just raised Series A funding. The pattern was clear: we weren't aware of the problems until it was too late. We needed visibility, but hiring an enterprise ATS or a talent management platform cost between $15K and $40K annually. So we decided to build our own with Airtable and Zapier. And, five months later, we have the best retention rate we've seen in the past year, which surprises me the most.

people sitting down near table with assorted laptop computers
Photo: Marvin Meyer on Unsplash

This is not a tutorial on how to use Airtable. It's the complete architecture of a talent management system that monitors 47 risk signals, automates 12 communication flows, and provides real-time visibility into the team's status. All for less than $200 a month. And most importantly: it works.

The Base Architecture: Three Tables that Support the Entire System

The most common mistake when setting up a talent management system in Airtable is starting with the people. This is a flawed approach. You need to start with the events. Your system must capture signals, not profiles.

First Table: People. This is where the master data resides. Name, role, hire date, salary, equity, direct manager. But it also has key calculated fields: "Days since last 1:1", "Tenure in months", "Last promotion date", and "Equity vesting status". This table is your single source of truth.

Second Table: Events. This is where everything happens. Every relevant interaction generates a record: completed 1:1s, feedback received, mentions in Slack about "exploring options," and unusual leave requests. Additionally, changes in GitHub activity, such as commits that drop more than 40% in two weeks, and detected competitive offers. Each event has a timestamp, category, severity (Low/Medium/High/Critical), and is linked to the corresponding person.

Third Table: Risk Scores. Here we calculate the risk of turnover. Each person has a score that updates every 24 hours, based on events from the last eight weeks. Imagine an engineer who hasn't been promoted in 18 months and has declining commits, plus two canceled 1:1s; that results in a Risk Score of 7.8/10. Automatically, they are marked as "High Risk" and alerts are triggered.

The magic lies in the Linked Records between tables. Each event points to a person and each person has multiple events. The Risk Score is calculated with Airtable formulas that weigh each different type of event.

Zapier as the Capture Engine: 12 Flows that Feed the System

group of people using laptop computer
Photo: Annie Spratt on Unsplash

Airtable is only powerful if you constantly feed it. This is where Zapier becomes critical. We're not talking about two or three basic automations. There are 12 active flows capturing signals across six platforms.

Zap #1: Slack → Events. We monitor four key channels where people talk about work: #engineering, #random, #wins, and our #ama-leadership. If someone mentions words like "burnout," "opportunities," "considering," or "recruiter," an event is automatically created and categorized as a "Career Signal." We use the Slack Message Posted trigger with keyword searches.

Zap #2: Google Calendar → Events. When a manager cancels or reschedules a 1:1 for the second consecutive time, it's logged. Also, if someone blocks "Focus time" or "Personal" for more than 6 hours in a week, it's recorded too. The Calendar Event Updated trigger gives us visibility into pattern changes.

Zap #3: GitHub → Events. The trick here is using webhooks. We set up an endpoint in Zapier that receives push events from our main repos. If someone’s commit count drops more than 50% compared to their average over four weeks, it generates a "Low Activity" event. If it increases by more than 150%, it generates an "Overwork Signal." Both are risk signals.

Zap #4: Greenhouse (our ATS) → Events. When someone from the team applies internally for another position, we log it. It sounds obvious, but many startups don't connect this. We also capture if someone refers candidates, which is a positive sign of engagement.

Zap #5: Lattice (1:1s and feedback) → Events. Every time a 1:1 is completed, an event titled "1:1 Completed" is created. If the manager marks "Discussed career growth" or "Mentioned external offers," those are separate events with different severities.

Zaps #6-12: Additional flows for Notion (roadmap changes affecting specific teams), Expensify (unusual expenses that may indicate interviews), LinkedIn (profile changes), filtered emails with specific tags in Gmail, and three custom flows via webhooks for our own integrations.

The key is consistent categorization. Each Zap has a predefined "Event Type": Career Signal, Activity Change, 1:1 Metric, Growth Indicator, Compensation Event, Team Dynamic, External Signal. This allows for filtering and later analysis.

The Scoring System: How to Turn Signals into Actionable Numbers

This is where most fail. Having data is easy, but knowing what to do with it is hard. We built a scoring system based on three dimensions: recency, frequency, and severity.

Recency: Events from the last two weeks weigh 100%, from 2-4 weeks weigh 70%, and from 4-8 weeks weigh 40%. After 8 weeks, the weight drops to 10%. We automated this with a formula in Airtable that calculates days since the event.

IF(
  {Days_Since_Event} <= 14, 1,
  IF({Days_Since_Event} <= 28, 0.7,
    IF({Days_Since_Event} <= 56, 0.4, 0.1)
  )
)

Frequency: If the same type of event repeats, the score increases exponentially. Two "1:1 Canceled" events in three weeks indicate a small problem. Four in six weeks = big problem. The formula counts duplicate events of the same type.

COUNTIFS(
  {Person_ID}, {Person_ID},
  {Event_Type}, {Event_Type},
  {Date}, ">="&DATEADD(TODAY(), -42, 'days')
)

Severity: Each type of event has a base weight. For example, "External Offer Mentioned" = 8/10. "1:1 Completed" = -1/10 (reduces risk). "Low GitHub Activity" = 4/10. "Discussed Career Growth" = -2/10. "Profile Update LinkedIn" = 6/10.

The final Risk Score is a weighted sum:

Risk_Score = Σ(Event_Severity × Recency_Weight × Frequency_Multiplier)

When someone exceeds 6.5/10, they enter "High Risk." Between 4.5-6.5 is "Medium Risk." Below 4.5 is "Healthy."

Views and Dashboards: From Data to Decisions

Data without visualization is noise. We created five critical views in Airtable that I review every Monday:

View 1: High Risk Dashboard. Filters people with Risk Scores > 6.5. Grouped by manager. Includes the last 1:1 date, days since last promotion, and next equity vesting date. This view takes me 90 seconds to review and tells me exactly who needs immediate attention.

View 2: Team Health by Department. Here, I use the "Department" field and calculate the average Risk Score by team. If Engineering has an average of 5.2 and Product has 3.1, I know where to focus. Additionally, the view shows trending: is the score going up or down compared to the previous month?

View 3: 1:1 Compliance. Filters people who haven't had a 1:1 in over 14 days. This is linked to the responsible manager. I share it directly with our VP of Engineering. Note, peer pressure works better than any policy.

View 4: Career Growth Pipeline. Shows people who have gone over 12 months without a promotion and have a Risk Score > 4.0. This forces proactive conversations about growth paths before it becomes a retention problem.

View 5: Positive Signals. Not everything is negative. This view filters positive events: candidate referrals, exceptional feedback received, contributions to internal docs, and mentorships. We review it in all-hands meetings to celebrate successes.

For visual dashboards, we connect Airtable with Google Data Studio via API. Three key charts: Risk Score distribution (histogram), Risk Score trending over time (line chart), and Top 10 Risk Contributors (what types of events are generating the most risk).

Automated Actions: When the System Responds on Its Own

A monitoring system that doesn’t act automatically is just data theater. We set up four types of automated actions triggered by specific conditions.

Action #1: Manager Alert. If someone crosses the High Risk threshold (6.5+), their manager receives an automatic Slack DM with context: "Hey, [Person] just entered High Risk. Recent events: [list]. Last 1:1: [date]. Remember: the replacement cost is 1.5-2x their annual salary."

Action #2: HR Check-in. If someone remains in High Risk for more than two weeks, our People Lead receives an automatic task in Notion to conduct an informal check-in. We don’t wait for the manager to escalate. We're proactive, which I believe is essential.

Action #3: Skip-Level 1:1. If the Risk Score exceeds 8.0, an automatic calendar event is created for a skip-level 1:1 between the individual and their manager's manager. We implemented this with Zapier + Google Calendar API. The invitation says: "Regular check-in on your career goals." We don’t mention risk scores — that's internal.

Action #4: Equity Refresh Analysis. If someone reaches 75% vested in their equity grant + Risk Score > 5.0, an automatic analysis is triggered for a potential equity refresh. We do this with a Zap that creates a row in Google Sheets where we model different refresh options.

The key here is not to automate everything. Difficult conversations should be handled by humans. The system just ensures those conversations happen.

The Real ROI: Numbers That Justify All This

We’ve had this system running for five months, and the numbers speak for themselves.

Pre-system (Sep 2025 - Feb 2026): 7 exits out of 42 people = 16.6% annualized attrition. Post-system (Mar 2026 - Jul 2026): 1 exit out of 45 people = 5.3% annualized attrition.

The average replacement cost for a senior engineer in our area is $85K (recruiting, onboarding, lost productivity, training). If we can avoid 4 exits in 6 months, that translates to $340K saved.

The system's cost is: Airtable Pro ($20/user × 3 admin users) + Zapier Professional ($49/month) + Google Data Studio (free) + setup time (40 hours × $100/hour opportunity cost) + monthly maintenance (2 hours). Total for the first year: ~$5,700.

ROI = ($340K - $5.7K) / $5.7K = 58.5x.

But the real ROI isn’t just financial. It’s visibility. Now we know what’s happening before it happens. We identified that our ML team had three people in High Risk because we hadn't communicated the roadmap well post-pivot. Two proactive conversations, one all-hands focused on vision, and the three dropped to Medium Risk within three weeks. Isn’t that impressive?

What We Learned: Signals That Matter vs. Noise

Not all signals are created equal. After five months, we identified which events truly predict exits:

Top 5 Predictors (correlation with exit within 90 days):

  1. Days since last promotion > 18 months + 1:1 canceled 2+ times (87% correlation).
  2. LinkedIn profile update + "Career Signal" in Slack (81%).
  3. GitHub activity -60%+ sustained for 3+ weeks (76%).
  4. Equity vesting > 75% + no discussion of equity refresh (71%).
  5. Skip-level 1:1 requested by the employee (not by the manager) + Risk Score > 5.0 (68%).

Signals We Thought Were Important But Aren’t:

  • Days of vacation taken (correlation: 12%).
Editorial note: This article was generated with AI assistance and reviewed by the NewsTide editorial team to ensure accuracy and relevance. Read our editorial policy.

More on Tutorials

← Back to home