GOODFIT ATS Feature Deep-Dive← all reports

ATS 8-Feature Deep-Dive — Competitor "How-They-Do-It" + Goodfit Decision-Support

Companion to COMPETITIVE-TEARDOWN-HANDOFF.md. Focused look at 8 enterprise-ATS features (a Keka-suite-style feature list) across Homerun · Workable · Wrangle · Keka, with Goodfit's current state, the gap, and a build recommendation per feature.


Method & corpus caveat (read first)


Headline matrix

#FeatureGoodfitHomerunWorkableWrangleKeka
1Duplicate DetectionPARTIAL (2)FOUNDNOT FOUNDFOUNDNOT FOUND
2Source ManagementBUILT (3)FOUNDPARTIALFOUNDPARTIAL
3Automated WorkflowsBUILT (3)NOT FOUNDFOUNDPARTIALPARTIAL
4Feedback ManagementBUILT (2)FOUNDFOUNDPARTIALFOUND
5Calendar IntegrationGAP (1) ⚠️FOUNDFOUNDFOUNDFOUND
6Manage VendorsGAP (0)NOT FOUNDPARTIALNOT FOUNDNOT FOUND
7Vendor ROIGAP (0)NOT FOUNDNOT FOUNDNOT FOUNDPARTIAL
8Job Board IntegrationPARTIAL (2)FOUNDFOUNDNOT FOUNDNOT FOUND

One-line read: Goodfit leads on Source Management and Automated Workflows, is at par on Feedback and Dedup, and is behind all four competitors on exactly one feature — Calendar Integration. Vendor Mgmt/ROI is a gap for everyone in this set (it's an enterprise-suite claim, not a product reality the corpus shows).


1. Duplicate Detection

Catching the same person applying/existing twice and reconciling the records.

Goodfit today — PARTIAL (2). Strong engine, no merge UI. Resume table dedupes by file-hash + vector-similarity (Textract OCR + vector_summary); applications block re-apply via an idempotent (application, referrer) index; candidate-per-email keys the org. But there is no "merge duplicate candidates" UI and no cross-org duplicate surfacing. Evidence: packages/db resume schema (fileHash + vector indexes), apps/admin/.../onboarding/queries.ts, packages/utils/.../email-domains.ts (domain org-dedup).

Gap: the human-facing reconciliation step Homerun/Wrangle show — a "these look like the same person, merge?" affordance.

Recommendation — T3 (polish). Engine exists; add a candidate-merge UI (surface hash/vector/email matches → side-by-side → merge applications + history). Low effort, modest impact.


2. Source Management

Tracking where each candidate came from and reporting on channel performance.

Goodfit today — BUILT (3), strongest in set. applicationSource enum (apply_now / referral / talent_pool / inbound_email / phone_invite / link) + a Source Performance table (per-source applicants, hires, conversion %, avg assessment score, time-to-hire) + UTM utm_source=share tagging on share-links + first-touch referral attribution (attributedReferralId, idempotent). Evidence: apps/admin/.../insights/sourcing/_components/source-performance-table.tsx, share-link share.ts, applications source enum in schema.

Gap: none material. (Wrangle's named-collection organization is a minor UX nicety, not a capability Goodfit lacks.)

Recommendation — no build. At par+. Market the source-performance reporting — it out-measures the set.


3. Automated Workflows

Rule/trigger-driven actions — auto-move, auto-email, auto-reject — without manual steps.

Goodfit today — BUILT (3), a stated strength. stageAutomationType enum (send_invitation / schedule_meeting / send_rejection / send_hired_notification) + orchestrator sweeps that auto-advance / auto-reject on assessment pass-score, with system_auto_advance / system_auto_reject audit actions. Assessment-score-driven automation is deeper than the email-trigger rules competitors show. Evidence: packages/db/src/schema/index.ts (stageAutomationType), applications orchestrator + applicationAuditLogs.

Gap: the automation runs from pipeline config; there is no visible "rule builder" surface like Workable's card UI — so the depth is under-marketed.

Recommendation — T2 (polish/market). Don't rebuild the engine. Consider a visible rule-builder UI that exposes the existing automation as Workable-style cards — turns a hidden strength into a demo-able one.


4. Feedback Management

Structured interview feedback — scorecards, ratings, reviewer notes.

Goodfit today — BUILT (2). scorecards + scorecardRatings (per-evaluator multi-dimension numeric ratings + recommendation dropdown + note, one per evaluator) + AI evaluations (3 generated follow-ups) + applicationDiscussions thread + external share with expiry/revoke. Evidence: scorecards/scorecardRatings schema, application discussions/notes.

Gap (vs Homerun + Workable): no per-stage scorecard template designer (templates are not user-authored per stage); no @mention notifications on notes.

Recommendation — T2 (critical-ish). Add a scorecard template designer (define trait sets per stage, à la Homerun) + @mention notify. Closes the only feedback gap and lifts the row 2→3.


5. Calendar Integration ⚠️ the one true parity loss

Self-serve interview scheduling, interviewer availability, calendar sync, panel coordination.

Goodfit today — GAP (1). Self-scheduling exists only for phone-voice assessments (schedule-phone-interview.ts — candidate picks date/time w/ timezone). For human interviews, humanInterviewSchedules supports google_meet/ms_teams/in_person + status, and stage automation can schedule_meetingbut there is no self-serve booking link, no interviewer availability/calendar sync, and no panel coordination. Scheduling is recruiter-manual.

Gap: every competitor lets candidates self-book against synced interviewer availability; Goodfit doesn't (outside phone voice).

Recommendation — T1 / CRITICAL, build now. This is the only feature where Goodfit trails all four competitors. Build: (1) interviewer calendar sync (Google + Outlook/Graph — Graph OAuth plumbing already exists, gated), (2) self-serve booking links with availability (generalize the phone-voice self-schedule flow to human interviews), (3) panel coordination (multi-interviewer slot intersection). Highest-leverage gap closure on the board.


6. Manage Vendors

Staffing-agency / external-recruiter management — portals, submissions, assignment.

Goodfit today — GAP (0). No vendor/agency entity. Multi-org hierarchy (organizations.parentId) supports an agency/RPO business model (parent org managing child orgs, aggregated dashboards/billing) and onboarding has an "Agency/RPO" persona — but that's org-to-org structure, not vendor-as-resource management (no vendor DB, submission tracking, or assignment).

Gap: no agency-vendor concept anywhere in the set — Goodfit included.

Recommendation — STRATEGIC (segment decision, not a default build). Only build if the staffing-agency / RPO segment becomes a target ICP. Nobody in this competitive set does it well, so it's not a parity obligation — it's a market-expansion bet. The parentId multi-org bones could seed it.


7. Vendor ROI

Performance/cost analytics per vendor — cost-per-hire by agency, vendor conversion.

Goodfit today — GAP (0). Flows directly from #6 — no vendor entity, so no vendor ROI. Source-performance analytics exist but are keyed by channel, not vendor.

Gap: depends entirely on a vendor entity existing first.

Recommendation — gated behind #6. If Manage Vendors ships, Vendor ROI is a cheap extension of the existing source-performance table (re-key by vendor, add cost-per-hire). Don't build standalone.


8. Integration with Job Boards

Posting/syndicating jobs to external boards (Indeed, LinkedIn, Google for Jobs…).

Goodfit today — PARTIAL (2). Free syndication via per-channel visibility toggles (jobs.visibility: wellfound / linkedin / google / indeed / goodfit_board / careers_page / google_jobs). Missing vs Homerun/Workable: paid mechanics (Indeed credits, LinkedIn paid), a board-directory/connect UI (browse → OAuth connect), and an embeddable careers widget. Evidence: jobs.visibility array in schema + distribute-job publish step.

Gap: organic toggles ✓; the connect/credit marketplace + careers widget ✗.

Recommendation — T2 (critical build). Add a board directory with connect/credit flows for Indeed + LinkedIn (paid + organic) and an embeddable careers widget to match Workable. Google-for-Jobs structured data is gated already — ungate it as part of this.


Synthesis — build priority

Net: of 8 features, Goodfit is ahead on 2, at-par on 2, behind on 1 (calendar), partial on 1 (boards), and tied-at-zero on the 2 vendor rows nobody serves. The clear, fund-this-now gap is Calendar Integration.


Follow-ups

Sources