This isn't an article about "engagement" or pizza Fridays. Here, I present the complete architecture of a talent retention intelligence system. It integrates Notion as the human frontend and Airtable as the data engine. Interestingly, I've been using it for the past eight months. It has identified four critical situations before they escalated and has kept my AI team intact through two competitive fundraising cycles.
The Real Anatomy of Talent Drain (And Why the Problem is Information)
The issue isn’t just that your people leave. The real problem is that you find out about their decision when it's already too late. The actual conversation happens three months before the resignation: when they start browsing LinkedIn, when they update their personal portfolio, and when they stop participating in planning sessions with the same energy.
In AI teams, this is critical because knowledge is distributed. Your senior ML engineer doesn’t just train models; they also know the edge cases of the data pipeline, the architectural decisions that aren’t documented, and the hacks that keep your inference under 200ms. When they leave, you’re not just losing a person; you’re losing accumulated context that’s worth six months of onboarding.
That said, the solution isn’t more one-on-ones or climate surveys. It’s instrumentation: converting scattered signals into structured data that you can monitor systematically. Notion is used for qualitative capture, and Airtable is used for quantitative analysis. These are tools that you likely already use, connected in ways that reveal patterns before they turn into resignations.
System Architecture: Three Layers Across Two Tools
Layer 1: Capture in Notion (The Human Frontend)
Notion acts as the input interface because it’s where your team already interacts. You’re not adding a new tool; you’re actually structuring information that already exists.
You create a database called "Talent Signals" with the following properties:
- Person (relation to your team database)
- Signal Type (select: Technical Growth, Career Path, External Interest, Team Dynamics, Compensation)
- Severity (select: Monitor, Caution, Critical)
- Date Detected (date)
- Context (rich text)
- Action Taken (rich text)
- Status (select: Open, Addressed, Resolved)
Each manager, including yourself, logs signals during one-on-ones or by observing behaviors. Here are some real examples from my database:
- "Maria mentioned she would like to lead the new LLM project but doesn't see how it fits into the current roadmap" → Career Path, Caution
- "Javier updated his LinkedIn for the second time this month and added AWS certifications" → External Interest, Monitor
- "Laura stopped participating in code reviews for the NLP team" → Team Dynamics, Caution
The discipline lies in recording without judgment. It’s not a surveillance system; it’s a CRM for human context. If it feels uncomfortable to write something, it’s likely important.
Layer 2: Analysis Engine in Airtable (The Intelligence Backend)
Airtable receives data from Notion through Zapier or Make; either platform works. Personally, I use Make because it’s more cost-effective at scale. This is where the real analysis occurs.
Your Airtable base has the following related tables:
Table "Signals" (mirror of Notion):
- All properties from Notion
- Calculated field:
Days_Open(TODAY - Date Detected) - Calculated field:
Risk_Score(formula explained below)
Table "People":
- Employee data
- Rollup:
Total_Signals(count of related signals) - Rollup:
Critical_Signals(count where Severity = Critical) - Rollup:
Average_Risk_Score - Lookup:
Last_Signal_Date - Calculated field:
Attrition_Risk(High/Medium/Low based on formulas)
Table "Actions":
- Record of actions taken
- Relation to Signals and People
- Date, action type, result
The Risk_Score formula I use is as follows:
IF(
{Severity} = "Critical", 10,
IF({Severity} = "Caution", 5, 2)
) *
IF(
{Days_Open} > 30, 2,
IF({Days_Open} > 14, 1.5, 1)
) *
IF(
{Signal Type} = "External Interest", 1.5,
IF({Signal Type} = "Career Path", 1.3, 1)
)
It’s clear that this formula is arbitrary but functional; you can adjust it based on your reality. The important thing is that it turns intuition into comparable numbers.
Layer 3: Automation and Alerts (The Nervous System)
In this layer, you connect behaviors to automatic actions:
In Make/Zapier:
- When a signal with Severity = Critical is created → Slack DM to the CEO + email to the direct manager
- When
Days_Open> 21 and Status = Open → Slack reminder to the manager - When
Attrition_Riskchanges to High → Calendar event for the manager for a "retention check-in" in 48 hours - Every Monday → Automatic report to Slack: people with
Average_Risk_Score> 15
In Airtable Automations (native):
- When
Total_Signalsfor a person > 5 in 30 days → mark record as "High Activity - Review Needed" - When an action is in Status "Pending" for > 7 days → notification to the creator
The critical thing here is that alerts should require action; they’re not just for information. If you send a Slack message, it should include a direct link to the record and suggested next steps. No passive "FYI."
Real Implementation: From Zero to Production in One Week
Day 1-2: Setup in Notion
- Duplicate your team database if a central one does not exist.
- Create the "Talent Signals" database with the described properties.
- Add filtered views:
- "Open Criticals" (Status = Open, Severity = Critical)
- "My Team" (filtered by manager)
- "Last 30 Days" (Date Detected in the last 30 days)
- Set permissions: managers only see their team; leadership sees everything.
Working signal template:
Person: [Relation]
Signal Type: Career Path
Severity: Caution
Context:
In 1:1 on 01/15, they mentioned interest in research roles more than engineering.
They specifically asked about papers we published and whether there’s an opportunity to co-author. Currently, they are in feature development that lacks a research component.
Action Taken:
[Initially empty - to be filled later]
Day 3-4: Setup in Airtable
- Create a new base called "Talent Intelligence."
- Import an initial CSV from Notion (Export → CSV) or use Notion’s API if you have a developer.
- Build the related tables (Signals, People, Actions).
- Set up the calculated formulas described earlier.
- Create critical views:
- "High Risk Dashboard" (Attrition_Risk = High)
- "Aging Signals" (Days_Open > 21, Status = Open)
- "Action Pipeline" (Status = Pending)
The Attrition_Risk formula I use:
IF(
AND(
{Average_Risk_Score} > 20,
{Critical_Signals} > 0
),
"High",
IF(
OR(
{Average_Risk_Score} > 12,
{Total_Signals} > 4
),
"Medium",
"Low"
)
)
Day 5: Automations
- In Make/Zapier: connect Notion → Airtable (trigger: new record in Notion, action: create record in Airtable with field mapping).
- Set up alerts in Slack (use Slack API, not email).
- Test with dummy data: create test signals and verify that the entire pipeline works.
Snippet of Make automation (conceptual, adjust to your setup):
Trigger: Notion - New Database Item
Filter: Severity = "Critical"
Action 1: Airtable - Create Record
Action 2: Slack - Send Direct Message
Channel: @founder
Message: "🚨 Critical talent signal detected for {{Person}}
Type: {{Signal Type}}
Context: {{Context}}
View in Airtable: [link]"
Day 6-7: Rollout and Calibration
Don’t implement it cold. Gather your management team and:
- Explain the system (total transparency).
- Provide training: what to log, what not to, how to rate severity.
- Record retrospective signals from the last 30 days (this calibrates the system).
- Review the first 10 signals together to align criteria.
What surprises me the most is that the most important aspect is to communicate that this is not surveillance or persecution. It’s akin to having a CRM for customers, but for your team. You don’t act on every signal; you act on patterns.
Three Patterns This System Detects (That You Wouldn’t See Manually)
Pattern 1: The "Silent Checkout"
Your ML engineer keeps delivering, attends meetings, and responds on Slack. However, they stop suggesting improvements and don’t engage in strategic technical decisions. This may seem subtle, but it’s a red flag.
The system detects this when they accumulate 3-4 "Team Dynamics" signals with severity "Monitor" in 45 days. Individually, they’re noise, but together they form a pattern.
In my case, Carlos received an excellent performance review in September. Then, in December, the system showed 5 signals in 60 days. I investigated. It turned out he had internally applied for a research role we never knew about, was rejected due to timing, and no one provided feedback. We resolved it in two conversations: we shifted his scope towards applied research and co-authored a paper for ICLR 2026. Fortunately, he’s still on the team.
Pattern 2: The "Compensation Drift"
Someone mentions competitor salaries once. Then they ask about equity refresh. Weeks later, they comment that a former colleague is at OpenAI.
The system correlates "Compensation" signals with "External Interest." When both appear within a 30-day window, the Risk_Score skyrockets because the formula multiplies factors.
A real case is Ana. She received three signals in 25 days (two about compensation, one about external interest). It triggered an alert. Thanks to a proactive conversation, we discovered she was considering offers because her initial equity no longer seemed competitive after our Series B. We did an early refresh (we had planned it for Q2, but moved it up). And most importantly, she stayed.
Pattern 3: The "Growth Ceiling"
Your senior engineer feels stuck, but they don’t say it outright. They ask about the roadmap, new projects, and mentoring opportunities. Positive signals, right?
The system detects that these are repeated "Career Path" signals without actions taken. If Days_Open grows and there are no entries in the Actions table, it’s clear that something is broken.
Miguel had 6 Career Path signals in three months, all with Severity "Monitor" or "Caution." The dashboard showed that we had never formally addressed them. Although they weren’t urgent individually, together they screamed "I want to grow, and nobody is helping me." We created a clear IC track from senior engineer to staff engineer. Fortunately, he’s still here.
What This System Does NOT Do (And Why That’s a Good Thing)
First, it doesn’t predict the future. It doesn’t tell you “X is leaving in 45 days.” It tells you “X is showing patterns that historically precede departure decisions.” The difference is key: you act with context, not paranoia.
Second, it doesn’t replace conversations. The system indicates when to talk and about what. However, you still have the conversation. Automating the response (“here’s your automatic equity refresh”) can make you lose the humanity that retains people.
Lastly, it’s not a panopticon. The signals you log should be observable in normal conversations or public behaviors (commits, meeting participation, mentions in one-on-ones). If you monitor private activity or infer intentions without basis, the system becomes toxic.