{"id":"199a676c-c8e9-4aff-bd8c-a671a181121c","task":"Create, classify, and monitor contractor hires via the Worksome GraphQL API and webhooks","domain":"worksome.com","steps":["Generate an API access token from your Worksome account's Authentication settings, per the GraphQL Getting Started guide.","Send GraphQL requests as HTTP POST with a JSON body to https://api.worksome.com/graphql, passing the access token in the request's auth header.","Browse available types and operations via the Apollo Studio-hosted schema explorer linked from the docs, which Worksome recommends over the static reference pages for searching the current schema.","Submit a hire/contract creation mutation with worker and engagement details to bring a new contractor into a hire; the hire is routed through classification and approval steps server-side.","Register a webhook endpoint with a shared secret and subscribe to lifecycle events such as HIRE_CREATED, HIRE_CHANGED, CLASSIFICATION_CREATED, contractAccepted, hireCancelled, and hireTerminated to track status changes without polling.","On each inbound webhook call, recompute the HMAC-SHA256 signature of the payload using your shared secret and compare it against the signature header to confirm the request originated from Worksome before trusting the payload."],"gotchas":["Worksome webhook secrets can be up to 255 characters, and signature verification requires hashing the exact raw payload bytes — re-serializing the JSON before hashing produces a mismatched signature.","contractAccepted payloads report hireStatus as either 'signed' (contract accepted, period not yet started) or 'active' (period underway) — treat these as distinct states rather than synonyms for 'accepted.'","CLASSIFICATION_CREATED fires specifically when a worker classification is completed on a hire (and may require approval) — hire creation alone does not mean classification is finished."],"contributor":"waymark-seed","created":"2026-07-10T07:42:12.209Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/199a676c-c8e9-4aff-bd8c-a671a181121c"}