A GTM engineer work sample is a hire/no-hire instrument only if you decided what a pass looks like before the candidate opened Clay. Otherwise you are grading taste. Below is the actual rubric we use against the Clay, HubSpot, Salesforce and n8n work samples published elsewhere on this blog — five criteria, countable thresholds, and a stated line between mid-level and senior that shows up in exactly two places: enrichment waterfall fallbacks and error-handling branches. Everything else on the scorecard separates competent from incompetent. Those two separate mid from senior.
The exercise does not grade itself
Work sample tests are the most intuitive thing in hiring and the most over-trusted. On their own they are only a moderate predictor of job performance at .33 — meaning a build you eyeball and discuss gets you maybe a third of the way to a defensible prediction. The exercise is the stimulus. The rubric is the instrument.
What moves the number is structure. Structured evaluation paired with an ability measure sits at a mean validity of .76, among the two highest-validity combinations in a century of selection research. Practically: same brief, same five criteria, same thresholds, scored independently by two people before they compare notes. The moment one reviewer says “this feels senior,” you are back at .33.
If you cannot count it in the build, you cannot defend it in the debrief.
This is also the only rubric that makes the role hireable at all. Almost nobody has held the title for five years, and grading demonstrated skill instead of prior job title is what creates supply — a skills-based approach expands the AI-role talent pipeline by 8.2x globally, 34% more lift than non-AI jobs see. Screen on title and you are fighting over a few hundred people. Screen on a scored build and you are choosing from thousands. More on how we structure that search on our GTM engineer recruiting page.
The five-criterion scorecard
Each criterion is scored 0–4. Thresholds are absolute, not relative to the candidate pool — a weak pool does not lower the bar, it ends the search.
| # | Criterion | What it tests | Mid-level pass | Senior pass |
|---|---|---|---|---|
| 1 | Data model & CRM hygiene | Objects, dedupe keys, write-back discipline in HubSpot or Salesforce | 3 of 4 | 4 of 4 |
| 2 | Enrichment waterfall depth | Fallback chains per critical field in Clay | 3 of 4 | 4 of 4 |
| 3 | Failure paths | Error-handling branches, retries, alerting in n8n | 2 of 4 | 4 of 4 |
| 4 | Unit economics | Credits, API calls and cost per enriched record, stated | 2 of 4 | 3 of 4 |
| 5 | Commercial framing | Which pipeline motion this serves and how it is measured | 3 of 4 | 3 of 4 |
Overall gate: a mid-level hire must clear every threshold in the mid column with no zeros anywhere. A senior hire must clear the senior column and cannot pass on criteria 2 and 3 by argument — those are counted, not discussed.
Why criterion 5 is not a soft criterion
The most common failure in a strong technical build is a beautiful workflow attached to no revenue motion. If the candidate cannot name the segment, the trigger and the metric the build moves, score it 1 regardless of how clean the JSON is. GTM engineering is a revenue operations discipline wearing an engineering hat, not the reverse.
Criterion 2: how many waterfall fallbacks
This is the first of the two senior tells. A single-provider enrichment step is not a design choice, it is a countdown — B2B databases lose between 22.5% and 70% of their accuracy annually depending on data type and industry. At the high end, more than two-thirds of a contact table is wrong within a year. A build with one provider behind each field will look flawless in a demo on 50 rows and silently drop half your addressable list at 50,000.
So we count chains, per critical field, not per workflow:
| Field | Mid-level build | Senior build |
|---|---|---|
| Work email | 2 providers in sequence | 3+ providers, then pattern-guess with verification |
| Mobile / direct dial | 1 provider acceptable | 2+ providers, tiered by cost |
| Firmographics | 1 provider + manual override | 2+ providers with a conflict rule |
| Job title / seniority | 1 provider | 2+ sources plus a normalization step |
| Terminal state | Blank field tolerated | Explicit “unresolved” queue for human review |
The senior signal is not just “more providers.” It is three specific behaviors. First, cost ordering — cheap or cached sources run first, expensive ones only on miss. Second, a conflict rule — when two providers disagree on headcount or title, the build states which wins and why, rather than letting last-write-wins decide. Third, a terminal state that is not silence — unresolved records go somewhere a human sees them. Mid-level builds usually get the sequence right and skip all three.
Count the chains yourself in the Clay build. If the answer for work email is one provider, you are looking at a strong mid-level candidate no matter how articulate the walkthrough is.
Criterion 3: how many error-handling branches
The second senior tell, and the one hiring managers underweight most. Over 40% of agentic AI projects will be canceled by the end of 2027 on escalating costs, unclear business value or inadequate risk controls. Read that as a rubric, not a headline: two of those three causes — cost and risk controls — are visible in a work sample on the day you grade it. Criterion 4 catches the cost one. Criterion 3 catches the other.
The stakes are rising in the same direction. Gartner also expects at least 15% of day-to-day work decisions to be made autonomously by 2028, up from none in 2024. A workflow that fails quietly is not a bug you fix later — it is a decision made wrong at volume, in your CRM, for a quarter before anyone notices.
So we count branches in the n8n build:
| Failure mode | Mid-level build | Senior build |
|---|---|---|
| HTTP error from a provider | Retry on the highest-volume node | Retry with backoff on every external call |
| Rate limit / 429 | Not required | Explicit throttle or batching path |
| Empty or malformed response | Skip the record | Validation branch with a typed reject reason |
| Repeated failure | Not required | Dead-letter queue or error workflow |
| Human notification | Not required | Slack or email alert with the failing record ID |
| Re-run safety | Not required | Idempotency key or dedupe guard on writes |
Mid-level pass: the happy path works and the single busiest external call retries. Senior pass: every external call has a defined failure path, failures land somewhere retrievable, a human gets told, and re-running the workflow twice does not create duplicate records. That last one is the cheapest test in the whole rubric — ask the candidate what happens if the workflow runs twice on the same list. Seniors answer in one sentence. Mid-levels pause.
Mapping the four published builds to the criteria
The four work samples on this blog are not interchangeable. Each one loads different criteria, which is why running only one of them gives you a partial score.
| Work sample | Primary criteria | Secondary | Time box |
|---|---|---|---|
| Clay enrichment build | 2, 4 | 5 | 90 minutes |
| HubSpot lifecycle & routing | 1, 5 | 3 | 60 minutes |
| Salesforce object & dedupe design | 1, 4 | 2 | 60 minutes |
| n8n multi-step workflow | 3, 4 | 1 | 90 minutes |
A defensible senior decision needs the Clay build plus the n8n build at minimum — those are the two that carry criteria 2 and 3. If you only have appetite for one exercise, run the Clay build and interrogate failure paths verbally against the criterion 3 table. You will lose some fidelity; you will not lose the senior-versus-mid line.
One rule on the time box: publish it and enforce it. An unbounded take-home turns into a test of who had a free weekend, and it inflates every score in a way that makes cross-candidate comparison meaningless. Our full brief templates sit in the GTM engineer hiring guide.
Calibrate the thresholds before you open the req
Thresholds set after you meet candidates are not thresholds, they are rationalizations. And the market gives you very little room to run a second process. Hires have been little changed at a 3.2% hires rate, with professional and business services down 188,000 — flat-to-shrinking volume in exactly the category GTM engineers sit in. One req, one shot, and a re-open costs you a quarter of pipeline build.
Three calibration moves that take an hour total:
Score your own best internal person first. Have the closest current employee — a RevOps lead, a marketing ops manager — do the Clay build. Their score is your real-world reference point. If they land at 3 on criterion 2, a candidate at 4 is genuinely additive.
Decide which criterion you are willing to develop. You can coach criterion 4 and often criterion 5. You cannot coach criterion 3 quickly, because failure-path thinking comes from having been on call when something broke. Write down before the process which one you will train.
Fix the band and the pay before the scorecard goes out. A senior-column pass in a market this tight will have options within days, not weeks, and a scorecard you cannot fund is worse than no scorecard at all. Check the range against current salary benchmarks so the offer moves the day the score comes back.
Graded this way, two independent reviewers should land within one point of each other on every criterion. When they do not, the disagreement is almost always on criterion 5 — and that is a conversation about your business, not about the candidate. That is the right argument to be having. Vibes-based debriefs never get you there.