Engineering Hiring Sources: Audit Hires Before You Buy Ads
Audit engineering hiring sources before buying ads. Connect applications to outcomes, preserve unknown sources, and compare costs within comparable roles.
Ernest Bursa
A recruiting source audit connects each application’s origin with its hiring outcome. Before buying more engineering job ads, compare qualified applications and hires for similar roles, preserve unknown sources, and check what you spent. Careers-page traffic tells you where attention came from. It does not tell you which channel produced a hire.
You can do this with a restricted spreadsheet and your application records. The audit should help you justify your next decision: improve a channel, repair missing attribution, resolve an assessment bottleneck, or buy another placement. You need enough evidence to explain that decision to your team.
The State of Devs 2026 discussion on Hacker News offers a reason to revisit the question. Its job-finding results show several routes into a current job, including networks, direct applications, recruiters, and job boards. They do not tell your startup where to spend its next recruiting dollar.
What does State of Devs say about engineering hiring sources?
State of Devs records how surveyed developers found their current jobs. Treat its answers as a prompt to inspect your own hiring history, while keeping the sample limits in view.
The Workplace results show these selected options for the job-finding question:
| Reported route | Respondents selecting it |
|---|---|
| Personal network | 1,370 |
| Direct application to the company | 887 |
| Recruiter | 735 |
| 702 | |
| Job board | 632 |
| Referral | 586 |
The question had 4,640 respondents and allowed multiple answers. These are overlapping accounts of finding a current job, not exclusive shares of hires. Do not add personal network and referral together. LinkedIn and job board answers do not distinguish paid placements from unpaid activity.
The survey methodology reports 5,463 total responses, collected between July 5 and September 5, 2026. All questions were optional. Participants came largely from previous Devographics surveys and social traffic; the organizers explicitly say the results describe this subset rather than the whole developer ecosystem.
Experience matters here, too. The Career results describe a median of 12 years’ experience, with only 9% reporting four years or less. You should be particularly cautious about applying this sample to junior hiring.
The missing employer data matters. You cannot compare channel costs without spending, conversion without applicant counts, or assessment outcomes without a common standard. Someone’s current job may also predate the survey by years.
So the budget question remains open. A paid placement could be valuable for your specific role even if relatively few survey respondents selected a job board. Examine your own completed applications before making that call.
Separate discovery from the application route
A candidate’s first encounter with your company and their submitted application can have different sources. Preserve both when you know them, and keep uncertainty visible when you do not.
Consider this fictional journey. An engineer notices your team’s post in a developer community, asks a former colleague about working with you, then applies through your careers page. The last click says “direct application.” The candidate’s account includes a community and a personal introduction.
Neither account is necessarily wrong. They answer different questions. Where did the candidate first hear about the opportunity? differs from which link delivered the application? A third question, what helped them decide to apply?, can reveal another useful touch.
Google Analytics’ attribution documentation explains how assigning credit depends on the attribution rule. That is a marketing concept, not evidence about recruiting effectiveness. It is useful here because it exposes a choice that otherwise hides inside the word “source.”
For a small audit, write down your rule in plain language. You might choose the candidate’s reported first discovery as the primary source, retain the application route separately, and record an introduction as an additional touch. If you cannot establish first discovery, use unknown. Do not turn a final direct visit into an invented origin.
Avoid claiming fractional precision. Giving the community half the credit and the introduction a quarter would add numbers without evidence. Record the known touches and discuss their relevance. Each application still appears once in your main outcome table.
This also makes candidate conversations easier. An optional question such as “Where did you first hear about this role?” can include an unknown option. You can explain that you use the answer to improve recruiting, and leave room for more than one route. Ask for context without making the answer a test of the candidate.
Build one source-and-outcome ledger
Your audit needs one row per application, a source rule, and a defined outcome. Use the application record as the reference so someone can check the entry without copying the candidate’s whole profile.
Start with a small group of comparable engineering roles. Choose a submission window and record it at the top of the ledger. If you compare a senior infrastructure search with junior frontend hiring, differences in role requirements can overwhelm anything you learn about the channel.
Use a consistent set of fields:
| Field | What to record |
|---|---|
| Application reference | Identifier linking back to the restricted application record |
| Role and seniority | The position and expected level |
| Submitted date | Date placing the application in your chosen cohort |
| Primary source | One source assigned under your written rule, or unknown |
| Evidence type | Candidate-reported, link-tagged, or manually recorded |
| Application route | Where the submitted application arrived, if known |
| Additional touch | A relevant introduction or other known interaction |
| Qualified | Whether the application met the agreed role standard |
| Assessment and outcome | Completed assessment, offer, accepted offer, start, or active status |
Keep primary source and evidence type separate. A tagged link is evidence that a particular link was used. A candidate’s answer is evidence of what they remember. A recruiter’s note may capture an introduction that neither of those records shows. None automatically supplies the complete history.
Ask one person to reconcile the rows with application records and another to check ambiguous cases. If an employee says they referred someone but the candidate reports an earlier community post, retain both facts. Apply your primary-source rule consistently rather than choosing the answer that makes a channel look better.
Leave applications with missing sources in the ledger. Dropping them tidies the table but hides the problem. Report how much of your cohort has usable attribution before discussing which source deserves more attention.
Check outcomes with equal care. An invitation to interview is not a completed assessment. An offer is not an acceptance. An acceptance is not a first day at work. Choose the milestone your decision needs, label it, and use it consistently.
You can count distinct applications for each role without claiming distinct people across the company. If the same person applies to two roles, those are two applications. Document how you handle that case so your counts do not quietly switch between people and applications.
Compare qualified outcomes within the same cohort
Compare sources using applications that faced the same assessment standard and have had time to reach the outcome you are measuring. Show the counts beside every rate.
Define “qualified” before reviewing channel performance. For a backend role, it could mean meeting an agreed experience requirement and passing the same initial technical review. Whatever you choose should concern the work. An employee referral, familiar employer, or prestigious university is not itself evidence that someone meets the standard.
The engineering sourcing guide concerns reaching candidates. This audit starts after that activity has produced records you can compare. It should not reward a channel for sending applicants who were assessed under easier rules.
Use simple formulas and visible denominators
For each source, calculate qualified applications divided by submitted applications. If you also compare hires divided by qualified applications, keep still-active candidates visible: they have not yet had a final outcome.
Cost per qualified application is documented acquisition spending divided by qualified applications. Specify which spending you included, such as a placement invoice. A zero denominator means the value is undefined. It does not mean the channel produced qualified applications at zero cost.
Track recruiting effort separately unless you have agreed on a consistent way to price it. A referral can involve substantial employee time; a community post can take preparation and follow-up. Calling either “free” because there is no advertising invoice obscures a real cost.
The same restraint applies to cost per hire. A completed cohort with no hires has no finite cost-per-hire value. Record the spend and outcome plainly, then decide whether the cohort tells you enough to continue the experiment.
Read a small table without inventing a winner
This example is fictional, with completed decisions for comparable roles. It is not survey data, Kit telemetry, or an industry benchmark.
| Primary source | Submitted applications | Qualified applications | Hires |
|---|---|---|---|
| Paid job-board placement | 40 | 8 | 1 |
| Employee referral | 8 | 4 | 1 |
| Developer community | 12 | 3 | 0 |
| Unknown | 10 | 2 | 0 |
The placement produced eight qualified applications out of 40, or 20%. Referrals produced four out of eight, or 50%. The placement still supplied twice as many qualified applications. Both are true.
Suppose the placement invoice was $800. The documented advertising cost per qualified application would be $100. You have not established that referrals cost nothing, that their higher rate will persist, or that the community cannot produce a future hire.
Inspect the individual hires before expanding the comparison. Did both roles have the same seniority and requirements? Was one filled early, closing the opportunity for other qualified applicants? Did an interviewer change the assessment? Small cohorts can reveal useful cases without supporting a confident forecast.
Unknown sources deserve attention as well. In this example, ten applications lack primary attribution. Improving that information could change your interpretation of every named channel. Buying another placement would not repair that gap.
Look for delays after qualification
A channel can deliver suitable applicants who then wait for a review or interview. If your audit stops at application volume, you can mistake a stalled hiring process for weak sourcing.
Compare qualified applications with completed assessments and note where people remain active. Check how long they have waited and who owns the next action. Our interviewer capacity planning guide explains how the available interview team can constrain progress after candidates enter the pipeline.
Choose an action that follows from the records. Missing source evidence calls for better collection. Qualified applicants waiting for review call for clearer ownership or more review capacity. A well-defined cohort with few suitable applicants gives you reason to change the audience, placement, or job description.
Write the decision and its limits beside the table. “Repeat this placement for the same role and review the next completed cohort” is a testable plan. “This is our best channel” asks a small sample to answer much more than it can.
Check access and privacy before scaling referrals
Source information should help you improve recruiting without becoming an informal score for candidates. Keep an open application route and apply comparable assessment standards across sources.
A referral tells you that someone made an introduction. It does not establish skill or justify skipping an assessment. Ask whether your opportunities are reaching people beyond the team’s existing contacts, especially when the audit appears to favor that network.
As a US example, the EEOC’s recruitment guidance warns that word-of-mouth recruiting can violate discrimination law in certain circumstances. This is not a blanket prohibition on referrals. It is a reason to examine access and hiring practices alongside channel yield.
Do not infer demographic traits from names or channel labels to fill gaps in this audit. Any demographic monitoring needs its own appropriate process. The source ledger is a record of recruiting activity and outcomes, not permission to collect sensitive information casually.
For the ledger itself, the ICO’s data-minimisation guidance provides a useful principle: personal data should be sufficient, relevant, and limited to the stated purpose. The guidance is under review; it does not supply a universal recruitment retention period.
Use application references instead of duplicating names, emails, CVs, and interview notes. An identifier linked to a candidate record remains personal data; it does not make the sheet anonymous. Restrict access to the people doing the audit, and share aggregate findings for spending decisions.
Keep candidate names and email addresses out of UTM values. A campaign label should identify recruiting activity, not a person. Retain a named referrer only when necessary, and remove redundant exports according to your actual retention policy.
What Kit measures, and what this audit still needs
Traffic analytics and application records help with different parts of the audit. Use the traffic view to inspect discovery activity, then reconcile sources and outcomes in the manual ledger.
Kit’s career-portal analytics show page-view activity, referring domains, and UTM source, medium, and campaign breakdowns. These charts help you investigate which tagged campaigns and referring sites brought visits to your careers pages. They do not establish which source produced a qualified application or hire.
A view count is also not a count of unique applicants. Someone can view several pages or return repeatedly. Keep that distinction visible when comparing traffic with submitted applications, and use the application cohort for your outcome calculations.
Kit records application progress and hiring outcomes separately. This audit still needs a manual, restricted join between source evidence and those application records. Kit does not provide a built-in UTM-to-hire report or automatically add campaign spending to a source ROI calculation.
Before a campaign, choose stable source and campaign labels. After applications arrive, reconcile their reported origins with the evidence you have, retain unknowns, and record the agreed qualification milestone. At review time, check the traffic charts for context and the ledger for comparable application outcomes.
The result should make your next recruiting decision easier to defend. Use a repeatable cohort, visible counts, and a clear source rule. Fix missing attribution or delayed reviews when that is what the records show; expand acquisition when the evidence supports that experiment.
If you are reviewing your setup, explore Kit’s hiring workflow alongside the ledger. Start with one engineering search you can inspect carefully, and bring the source evidence and hiring decisions into the same conversation before approving another ad.
Related articles
Try Kit for 30 days.
Hiring, security reports, and training in one account, for teams where none of it is a full-time job. Free for 30 days, card required. Cancel before it ends and you pay nothing.
Get started free