GTM Vibes inbound audit exercise, version 1 Created October 22, 2026. All people, accounts, events and outcomes are fictional. No employer supplied this exercise. It is not a validated hiring assessment. Files events.csv: 16 observed event rows, including one replay. answer-key.csv: expected decisions and response calculations for every row. hiring-scorecard.csv: suggested reviewer criteria; scores and evidence are blank. Use the files with a spreadsheet, SQL, Python or your preferred workflow tool. No paid service, CRM account, enrichment provider or model API is required. The example.com addresses are placeholders. Do not send messages to them. Exercise policy (apply rules in this order) 1. Process rows in file order. A previously seen event_id is a replay; ignore it for actions and aggregate metrics. The row_id identifies an observation, not a unique lead. The repeated rows have identical payloads in this fixture. 2. If opted_out is true, suppress all automated contact in this exercise. This is a fictional workflow rule, not a general rule for customer support. 3. If contact_valid is false, send the event to manual review. contact_valid is a supplied test flag; do not infer validity by sending email. 4. If existing_customer is true, route to customer_success. 5. If country is blank, send to manual review. 6. If country is neither US nor CA, mark out_of_scope. 7. If request_type is not demo, send to manual review. 8. Route a US demo to us_sales and a CA demo to canada_sales. An expected route is a business decision, not proof of a successful CRM write. Rows with crm_write_status error or not_attempted still need recovery if the policy says route. Do not drop those rows from the response denominator. The raw observed owner and acknowledgement may violate the policy deliberately. For manual_review, suppress, out_of_scope and ignore_duplicate, expected_owner is blank: no sales/customer-success assignment should be made by this workflow. Choose a separate operational owner for the manual-review queue in your design. Timing and measurement Snapshot: 2026-10-21T12:00:00Z. All events are older than 30 elapsed minutes. All times are UTC ISO timestamps. The target is 30 elapsed minutes, including off-hours. This is an exercise assumption, not an industry benchmark. acknowledged_at means an automated receipt only. useful_response_at means a response that addresses the request and gives a next step; the fixture supplies that classification. In a real audit, inspect messages before assigning it. A blank useful_response_at is unresolved at the snapshot, not zero minutes. Measure response time from received_at, not from CRM creation or assignment. The denominator is unique events whose expected_action is route, including the existing-customer route. Also report the sales and customer-success counts. Median and p90 describe responded eligible events only. Use nearest-rank p90: sort the minutes, take the value at ceiling(0.9 * count), using 1-based positions. Answer-key controls 16 rows; 15 unique events; 1 replay. 9 expected routes: 8 sales and 1 customer success. 3 manual reviews; 2 suppressed; 1 out of scope. 6 of 9 routed events have the correct observed owner. 5 of 9 routed events have a useful response; 4 of 9 remain unresolved. 4 of 9 routed events have a useful response within 30 elapsed minutes. Responded durations are 4, 8, 12, 20, 60 minutes: median 12; nearest-rank p90 60. These are synthetic exercise outcomes, not measured company performance. Suggested deliverable Return decisions.csv with row_id, expected_action, expected_owner and reason; a short audit with the controls above; one repaired path and a replay check; and a handoff naming what fails, who notices and how to recover without repeating an action. Keep original observations unchanged; record simulated repairs in a separate output. Do not invent a later response or revenue result. Interview use The answer key is public. Do not treat memorizing it as evidence of skill. Ask candidates to explain the rules and adapt to a disclosed policy change. Use equal time and tool access. The scorecard has no validated pass threshold. Score each dimension 0, 1 or 2; attach observed evidence. Leave unobserved items blank and follow up rather than treating missing evidence as a zero.