2025-10-11

How to Track and Attribute Recruiting Revenue by Source

Recruiting teams spend thousands of dollars every month on job boards, LinkedIn Recruiter, agency partnerships, and internal sourcing tools. Yet most recruiting departments can't answer a basic question: Which channels actually generate the most valuable hires?

Without proper attribution, you're flying blind. You might be pouring budget into expensive job boards that produce mediocre candidates while underinvesting in referral programs that actually land your best engineers.

This guide walks you through building a recruiting attribution system that connects every hire back to its source, calculates true ROI, and helps you allocate your recruiting budget more strategically.

Why Recruiting Attribution Matters

Revenue attribution in recruiting directly impacts profitability. Unlike marketing, where attribution models are well-established, recruiting teams often track hiring costs without understanding what those costs actually produce.

Here's the gap: A recruiter hires 12 developers in a quarter. The company spent $8,000 on job boards, $15,000 on LinkedIn Recruiter, $5,000 on agency partnerships, and $0 on referrals. But which channel produced the highest-performing engineers? Which ones stayed longest? Which ones generated the most revenue impact?

Without this data, you default to: - Assuming all channels are equally valuable - Cutting budgets based on gut feel instead of data - Missing opportunities to invest in high-ROI channels - Repeating expensive mistakes year after year

The business case is simple: If you can prove that referrals cost 60% less and produce 40% longer tenure, you'd reallocate budget accordingly. If you can show that a specific technical community sourcing effort produced three 10x engineers, you'd expand that program.

The Core Metrics You Need to Track

Before you can attribute revenue to source, you need foundational metrics in place.

Recruitment Cost Per Hire (RCPH)

This is the baseline metric: How much does it cost to fill one position?

Formula:

(Total recruitment spending) / (Number of hires) = RCPH

For a team that spent $100,000 on recruiting and hired 20 engineers: RCPH = $5,000

But this is misleading without attribution. You need Cost Per Hire by Source:

Source Quarterly Spend Hires Cost Per Hire
LinkedIn Recruiter $15,000 3 $5,000
Stack Overflow Jobs $4,000 4 $1,000
Referrals $0 5 $0
Agency (retained search) $20,000 2 $10,000
Career site organic $1,000 6 $167

Notice: Your cheapest-per-hire source (career site organic) might not be your best source overall. This is why you need additional metrics.

Time-to-Fill by Source

How long does it take to fill a position from each channel?

Slow sourcing channels eat into productivity and increase project delays. A hire that takes 90 days costs more than the recruitment fees alone — it costs in unshipped features and delayed projects.

Source Median Days to Fill 90th Percentile
Referrals 18 days 28 days
Stack Overflow Jobs 22 days 35 days
LinkedIn Recruiter 35 days 55 days
Agency search 45 days 70 days

Track this in your ATS (Applicant Tracking System) by tagging every hire with its source channel.

Time-to-Productivity (TTP)

This metric separates excellent hiring sources from mediocre ones: How long before a new hire is contributing meaningfully to the business?

  • Referrals from current engineers: Often 6-8 weeks
  • External technical hires: Often 10-14 weeks
  • Mismatched hires: 16+ weeks or terminated before productivity

Calculate this by working backward from the first significant shipped features or completed projects by source cohort.

First-Year Retention Rate by Source

This is critical: Hiring someone who leaves in 8 months destroys ROI.

Source 12-Month Retention 24-Month Retention
Referrals 92% 85%
LinkedIn Recruiter 78% 65%
Stack Overflow 82% 71%
Agency 68% 55%

Why the difference? Referrals typically mean the candidate was vetted by someone who knows your culture. Agency placements may be optimized for speed, not fit.

Building Your Attribution Model

Now that you know what to measure, here's how to structure the actual attribution system.

Step 1: Tag Every Candidate in Your ATS

When a candidate enters your pipeline, tag them with:

Required fields: - Source channel (LinkedIn Recruiter, job board name, referrer name, agency name, etc.) - Date tagged - Hiring manager - Role/team - Hired: Yes/No - Start date - Current status (employed, separated)

Example:

Candidate: Sarah Chen
Source: LinkedIn Recruiter (Paid)
Tagged: 2025-03-01
Hired: Yes (2025-04-15)
Start Date: 2025-05-01
Current Status: Employed

Use a consistent naming convention. If you switch how you label sources, historical data becomes useless. Pick "LinkedIn Recruiter (Paid)" and stick with it, not "LinkedIn," "LI," or "LinkedIn Recruiter Lite."

Step 2: Capture Cost Data by Channel

Costs fall into categories:

Direct advertising costs: - LinkedIn Recruiter seat subscription: $3,000-$9,000/month per seat - Job board postings (Indeed, Stack Overflow, etc.): Ranges from $200/post to $1,000+ - Outbound email tools: $100-$500/month - Research databases: $500-$2,000/month

Agency/staffing costs: - Retained search: Usually 20-30% of first-year salary - Contingency placement: 15-25% of first-year salary

Internal costs (often missed): - Recruiter salary and benefits (allocate by time spent per source) - Hiring manager time (estimated 20-30 hours per hire, at their loaded hourly cost) - Interview panel time

Most teams only track direct costs. To be honest about attribution, include your internal labor:

Hire from LinkedIn Recruiter:
- Seat cost (allocated): $1,500
- Recruiter time (40 hours @ $50/hr): $2,000
- Hiring manager time (25 hours @ $150/hr): $3,750
- Interview panel time (15 people × 1 hour @ $75/hr): $1,125
Total True Cost: $8,375

Without this, you'll think LinkedIn Recruiter is cheaper than it is.

Step 3: Calculate Revenue or Value Contribution by Hire

This is the hard part. What's a developer worth?

Option 1: Base salary as proxy Use first-year loaded cost as a revenue multiplier. If an engineer's first-year cost (salary + benefits + equipment) is $150,000, assume they need to generate $300,000 in value to break even (2x multiplier). Better-than-average hires might generate 3-4x.

Option 2: Contribution margin For product companies, track revenue generated by shipped features. If an engineer helps ship a feature that generates $500K in annual recurring revenue, they contributed to that. Allocate proportionally.

Option 3: Risk-adjusted lifetime value Combine salary, tenure, and performance. A hire with: - $120,000 salary - 4-year average tenure - 1.2x performance multiplier

Has an adjusted value of roughly $576,000 ($120K × 4 years × 1.2).

Pick one method and be consistent. The exact number matters less than the comparison between sources.

Step 4: Build Your Attribution Dashboard

Track these metrics by source, refreshed monthly:

Metric LinkedIn Stack Overflow Referrals Agency
Hires (YTD) 8 12 9 3
Cost per hire $7,100 $1,800 $0 $18,000
Days to fill 42 26 19 51
% retained at 12mo 75% 79% 89% 63%
Adjusted value per hire $420K $480K $520K $380K
ROI 1.82x 3.44x 0.68x

This dashboard answers: Where should we spend more money?

In this example, Stack Overflow and Referrals are crushing it. The agency is destroying value. LinkedIn is decent but could be optimized.

Advanced Attribution: Multi-Touch Models

In reality, most hires don't come from a single source. A developer might: 1. See a LinkedIn job post (LinkedIn) 2. Get referred by a friend who mentioned the role (Referral) 3. Apply through your career site (Direct/Organic)

Which source gets credit?

First-Touch Attribution

Credit the first interaction. The referral wouldn't have happened without LinkedIn exposure first. Pro: Simple. Con: Undervalues the warm introduction that actually got them to apply.

Last-Touch Attribution

Credit the last touchpoint before hire. The referral got them to apply, so referral gets 100% credit. Pro: Values the actual conversion. Con: Ignores top-of-funnel awareness costs.

Time-Decay Attribution

Early interactions get less credit; later ones get more. If the candidate had four touches, distribute 10% + 20% + 30% + 40% credit across them.

50-30-20 Model (Practical)

For technical hiring, this works well: - 50% to the source that actually generated the application - 30% to the source that first attracted them - 20% to any referral/warm introduction

This balances top-of-funnel investment with conversion power.

Implementation: In your ATS, when a hire is marked as sourced, tag all touchpoints and apply your attribution rule automatically (or use a spreadsheet formula).

Common Attribution Mistakes to Avoid

Mistake 1: Counting "Pipeline" Instead of "Hires"

LinkedIn might show 200 pipeline candidates but only convert 3 to hires. Stack Overflow might show 30 but convert 10. Measuring pipeline vanity metrics leads to bad budget decisions.

Fix: Measure conversion funnel by source.

Source Qualified Candidates Interviews Offers Hires Conversion Rate
LinkedIn 150 25 10 3 2%
Stack Overflow 40 18 12 10 25%

Mistake 2: Ignoring Role Level and Specialization

Hiring a senior staff engineer is not the same as hiring a junior developer. A referral-sourced staff engineer might be worth 10x a junior hire from a job board.

Fix: Segment metrics by role level, tech stack, and specialization.

Mistake 3: Not Accounting for Hiring Manager and Team Preference

If your VP of Engineering insists on only LinkedIn hires but they're 3x more expensive and 2x slower than referrals, organizational politics might be overriding data. Acknowledge this.

Fix: Track not just what worked, but what the organization believes works and why.

Mistake 4: Blending Full-Time and Contract Hires

Contract and permanent hiring have different economics. Don't average them.

Fix: Separate attribution by employment type.

Optimizing Budget Allocation Based on Attribution Data

Once you have 2-3 quarters of data, you can make data-driven reallocation decisions.

The Reallocation Framework

  1. Identify your worst-performing channels — usually ones with lowest ROI
  2. Pilot a reallocation — move 20% of budget to high-ROI channels
  3. Monitor the impact — does high-ROI channel maintain quality as budget increases?
  4. Make permanent adjustments — scale what works

Example scenario: You're spending $50K/quarter on LinkedIn Recruiter but getting 2.0x ROI. Stack Overflow is getting 3.5x ROI but only getting $8K/quarter.

Test: Shift $15K from LinkedIn to Stack Overflow, moving your spending to $35K LinkedIn and $23K Stack Overflow.

Monitor for 2 quarters: Does Stack Overflow's ROI hold steady at higher volume? (Often it drops slightly as you exhaust the pool of quality candidates, but might still beat LinkedIn.)

Most likely outcome: You find a better balance. You might land at $25K LinkedIn, $30K Stack Overflow rather than the original ratio.

Tools and Platforms for Tracking Attribution

Spreadsheet-Based (Minimum Viable)

If your ATS doesn't have reporting, export your hire data and build a spreadsheet: - Candidate name, source, hire date, start date, status, salary, current performance rating - Add a column for cost by source (allocate shared costs proportionally) - Pivot tables by source - Simple ROI calculation

This works for teams hiring 10-30 people per year.

ATS Integration Approach

Most modern ATS platforms (Greenhouse, Lever, iCIMS, Workable) let you: - Tag candidates with source - Track dates and status - Export data to dashboards - Build custom reports

Use your ATS as the source of truth, then export to a BI tool (Tableau, Looker, Power BI) for visualization.

Dedicated Tools

Zumo helps you source developers by analyzing their GitHub activity — it's particularly useful for understanding the quality profile of hires from technical sourcing. Combined with your ATS data, you can see not just where hires came from but the technical depth and specialization of each source.

Setting Benchmarks and Goals

What's "good" recruiting ROI?

Industry benchmarks (2024-2025):

Metric Small Startup Mid-Market Enterprise
Avg cost per hire $3,500-$5,000 $5,000-$8,000 $8,000-$15,000
Avg time-to-fill 35-42 days 40-50 days 50-70 days
Acceptable 12mo retention 75%+ 80%+ 85%+
Target recruiting ROI 2.0x-2.5x 2.5x-3.5x 3.0x-4.0x

Your benchmarks depend on: - Role level (junior roles have higher turnover, lower ROI expectations) - Market (competitive tech markets require higher spend) - Company stage (startups may accept lower retention for speed)

Set your targets conservatively. If you're breaking even (1.0x ROI) on hiring, you're actually negative when you factor in ramp time.

Reporting Attribution Data to Leadership

Non-recruiting executives need clear, simple reports. Don't show them pivot tables of dozens of metrics.

Monthly Recruiting Dashboard (One Page)

Key metrics: - Hires closed this month (by source) - Cost per hire (aggregate and by top source) - Current open requisitions by priority - Pipeline (qualified candidates in next 30 days)

Narrative: "We hired 4 engineers this month at an average cost of $4,200 per hire. Referrals generated 2 hires with zero acquisition cost. LinkedIn generated 1 hire at $6,500 cost. We have 12 candidates in final interview round; expect 3-4 closes next month."

Quarterly Attribution Report

Sections: 1. Summary: Hires, costs, and ROI by source 2. Efficiency: Time-to-fill, conversion rates by channel 3. Quality: Retention and performance by source 4. Budget reallocation recommendation: Where to shift dollars next quarter

This is where you make the case for reallocating budget based on data.

FAQ

How do I handle hires from referrals when the referrer is an employee but the candidate came through a job board?

Use a time-decay or multi-touch model. If the employee mentioned the role casually and the candidate found it on a job board two weeks later, credit the job board at 50-60% and the referrer at 40-50%. Adjust the weights based on your judgment of who actually drove the decision.

What if my ATS doesn't let me track source attributes?

Start with a separate tracking spreadsheet. Whenever someone is hired, log: candidate name, date sourced, source channel, hire date, current status. This is tedious but only takes 5 minutes per hire. After 12 months of data, you'll have enough to make decisions, and you can make the case to upgrade your ATS to something more capable.

Should I count internal transfers and promotions in recruiting ROI?

No. Attribution should measure external hire quality and efficiency. Internal mobility is a separate HR metric. Keep them distinct.

How do I know if an attribution model is working?

You should be making decisions based on it within 2-3 quarters. If you still can't confidently say "referrals are 2x better than job boards" or "this agency delivers lower-quality hires," your model is too noisy. Increase sample size or simplify your categories.

Can I use recruiting attribution to forecast hiring budget?

Yes. Once you have 2+ years of data, you can model: "To hire 50 engineers in 2026, assuming X% from each source at historical ROI/cost, we need Y recruiting budget." This helps CFOs plan and helps you request budget confidently.


Start Tracking Recruiting Attribution Today

Most recruiting teams leave money on the table simply because they don't measure where value comes from. You don't need perfect data — you need consistent data. After 2-3 quarters of rigorous tracking, you'll know exactly which channels deserve more investment and which ones are wasting money.

Start small: Pick one cohort of hires (maybe last quarter), tag each one with their source, note the cost, and calculate basic ROI. That simple exercise will likely surprise you. Then build from there.

To improve your sourcing quality, especially for technical roles, explore Zumo — it helps you source developers based on GitHub activity, giving you a data-driven view of technical depth before candidates even enter your pipeline. When combined with attribution tracking, you'll understand not just where your best hires come from, but why.