API10 min read

Webhook-Free Enrichment: Sync Patterns for Small ATS Startups

Webhook-free enrichment: sync patterns for small ATS startups – synchronous find, job queues without bolting on webhooks first.

Small ATS startups often assume enrichment needs webhooks on day one. It does not. Invenitor fits that shape: Connecting people; a lookup API, not a sales cloud.

Architecture parent: Adding Contact Lookup to an ATS: Architecture Notes for Builders. REST details: REST Enrichment Inside a Hiring Product: Auth, Credits, Rate Limits. Category: What a Contact Lookup API Actually Does.

Pattern A – Synchronous request/response

User clicks Enrich on a candidate with a person profile URL. Your backend calls Invenitor find with Bearer auth. Docs: /docs.

Definition: What Is a LinkedIn Profile URL Lookup?.

Pattern B – Async job without vendor webhooks

Enqueue a job per URL. Worker calls find. Poll job status in your own UI. You own the queue – no requirement that the enrichment vendor push webhooks to you first.

Hub: LinkedIn or GitHub Profile URL → Contact Lookup API. GitHub rail: GitHub Profile URL Contact Lookup.

Pattern C – Batch sheet or admin import

Agency-style CSV/sheet of person URLs → batch find → write-back columns. Same Credit B. Desk SOP customers will recognize: Agency Desk Playbook, Freelance Recruiter Workflow.

Why skip webhooks early

  • Fewer public endpoints to secure.
  • Fewer signature and retry edge cases.

When you later need push events (multi-region workers, fan-out), add them as an optimization – not a launch blocker.

Credits, idempotency, and double-clicks

1 credit only when we return an email, a phone, or both. Timeouts and errors do not spend. Make Enrich idempotent for the same candidate URL in a short window so nervous double-clicks do not confuse operators. Credit primer: What Are API Credits in Enrichment Products?.

Auth and rate-limit basics

Bearer API keys server-side only. Surface credit balance to admins. Respect rate limits with backoff. Full notes in the REST enrichment post. MCP twin for agents: /mcp.md, Agent-Readable Docs, Claude / Cursor Agents.

Product packaging

Ship lookup as an optional module, not a forced CRM. Layer pick: Contact Lookup API vs CRM vs Sequencer. Commercial: /pricing, Pay-As-You-Go Contact APIs, 25 to 1,000 Credits. Trust: Trust Checklist Before You Buy Any Contact API.

What should you do next?

Prototype Pattern A on a staging candidate. Add a job queue only if UX needs it. Keep /docs and /pricing linked in your admin. India customers: India Boutique IT Staffing, WhatsApp-First Recruiters. Screening narrative: Screening Calls Faster.

Launch checklist (webhook-free)

Secrets reviewed. Outcome classes logged. Credit B in order notes. MCP optional docs linked. Soft mesh disclosed without fake %. Free-plan competitor traps: The Hidden Cost of "Free Plan" Enrichment Tools. MCP definition: What Is an MCP Server?.

Anti-patterns that fake sync

Polling every 50ms. Browser-exposed keys. Primer: What Are API Credits in Enrichment Products?. Trust: Trust Checklist Before You Buy Any Contact API. Hub: LinkedIn or GitHub Profile URL → Contact Lookup API. Layer: Contact Lookup API vs CRM vs Sequencer. Agents: /mcp.md, Agent-Readable Docs. Commercial: /pricing, 25 to 1,000 Credits, Pay-As-You-Go Contact APIs. Desks: WhatsApp-First Recruiters, Agency Desk Playbook. Definition: What Is a LinkedIn Profile URL Lookup?. Parent: Adding Contact Lookup to an ATS, REST Enrichment Inside a Hiring Product. /docs.

Customer success note for ATS PMs

Enrichment is optional. Credits follow Credit B. Link /pricing and /mcp.md. Recruiter English: Contact Enrichment Explained for Recruiters.

Questions

Do I need webhooks to add enrichment to my ATS?

No. Start with synchronous find or your own job queue – webhooks are optional later.

Do failed or timed-out calls spend credits?

Under Credit B, timeouts and errors do not spend.

Where are auth and rate limits documented?

/docs and the REST enrichment inside a hiring product post.

Can agents use the same find without webhooks?

Yes via /mcp.md – tool calls, not scrapers.

When should I add webhooks later?

When you need push fan-out across workers – not as a day-one requirement.

ShareShare on X

Look up a contact

Sign in, buy a pack, copy the key once. REST on docs. Agents read mcp.md.

Webhook-Free Enrichment: Sync Patterns for Small ATS Startups – Invenitor