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)
- Competitor evidence = Mobbin-curated in-product flow screenshots (Homerun 453 · Workable 568 · Wrangle 289 · Keka). These are flow captures, not exhaustive feature coverage → a missing screenshot ≠ a missing feature. Verdicts are scoped:
FOUND/PARTIAL/NOT FOUNDin corpus. - Goodfit is scored from code (file paths cited from
taxonomy.jsongfNote +goodfit-feature-ledger.json) — ground truth that org config can't hide. Score scale 0–3. - Manage Vendors / Vendor ROI are marketing claims of enterprise suites (esp. Keka). The in-product corpus is thin on them — flagged honestly, not invented.
- Evidence filenames are the real screenshot files under
competitors/<tool> web/.
Headline matrix
| # | Feature | Goodfit | Homerun | Workable | Wrangle | Keka |
|---|---|---|---|---|---|---|
| 1 | Duplicate Detection | PARTIAL (2) | FOUND | NOT FOUND | FOUND | NOT FOUND |
| 2 | Source Management | BUILT (3) | FOUND | PARTIAL | FOUND | PARTIAL |
| 3 | Automated Workflows | BUILT (3) | NOT FOUND | FOUND | PARTIAL | PARTIAL |
| 4 | Feedback Management | BUILT (2) | FOUND | FOUND | PARTIAL | FOUND |
| 5 | Calendar Integration | GAP (1) ⚠️ | FOUND | FOUND | FOUND | FOUND |
| 6 | Manage Vendors | GAP (0) | NOT FOUND | PARTIAL | NOT FOUND | NOT FOUND |
| 7 | Vendor ROI | GAP (0) | NOT FOUND | NOT FOUND | NOT FOUND | PARTIAL |
| 8 | Job Board Integration | PARTIAL (2) | FOUND | FOUND | NOT FOUND | NOT 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.
- Homerun — FOUND. When a candidate is copied to the talent pool, a banner ("Jane has multiple profiles") opens a duplicate-profiles modal: a comparison table across jobs + pool (Job / Type / Location / Created At) for manual reconciliation. →
Homerun web Nov 2024 307.pngHomerun web Nov 2024 307.png,
Homerun web Nov 2024 308.pngHomerun web Nov 2024 308.png.
- Wrangle — FOUND. Sourcing results surface a dedup link on the candidate card ("30+ Corey Clifton profiles") signalling multiple profiles for the same person. →
Wrangle web Mar 2026 32.pngWrangle web Mar 2026 32.png.
- Workable — NOT FOUND in corpus. Merge exists for departments, not candidates.
- Keka — NOT FOUND in corpus. Settings reference a "Duplication & Reapplication" config category, but no UI shown.
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.
- Homerun — FOUND. Source captured as removable chips ("Via Google ×") on add; shown in profile About with "Add source"; Settings → Sources tracks "in active use" count per channel. →
Homerun web Nov 2024 200.pngHomerun web Nov 2024 200.png,
Homerun web Nov 2024 243.pngHomerun web Nov 2024 243.png,
Homerun web Nov 2024 375.pngHomerun web Nov 2024 375.png.
- Wrangle — FOUND. Named Network/Library sources — candidates organized into collections (Talent Pool, Network) with icons, per-source row actions, group rename/bulk-manage. →
Wrangle web Mar 2026 74.pngWrangle web Mar 2026 74.png,
Wrangle web Mar 2026 83.pngWrangle web Mar 2026 83.png.
- Workable — PARTIAL. Simple "source" field in the add-candidate details panel; not a channel-tracking system in corpus. →
Workable web Jun 2024 86.pngWorkable web Jun 2024 86.png.
- Keka — PARTIAL. Candidates carry a "Sourced from Naukri…" tag in the message-thread header; no full source-mgmt UI shown.
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.
- Workable — FOUND. "Automated actions": sentence-like rule cards — "When a candidate applies for [any job] in [any dept], then send [template] from [user]" — with timing (Immediately / Short delay / Choose time), toggleable, audited. →
Workable web Jun 2024 340.pngWorkable web Jun 2024 340.png,
Workable web Jun 2024 350.pngWorkable web Jun 2024 350.png.
- Wrangle — PARTIAL. Multi-step email sequences with waits ("Wait 1 day") + template variables — drip campaigns, not conditional stage rules. →
Wrangle web Mar 2026 118.pngWrangle web Mar 2026 118.png,
Wrangle web Mar 2026 132.pngWrangle web Mar 2026 132.png.
- Keka — PARTIAL. "Workflow Automation" settings module + rule-based HR auto-enrollment (shift/leave plans); no recruiting workflow-builder UI shown. →
59c-hire-settings.png59c-hire-settings.png,
86-timeattend-leave.png86-timeattend-leave.png.
- Homerun — NOT FOUND in corpus. Event templates are manual-trigger; no rule engine visible.
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.
- Homerun — FOUND. Scorecard templates per stage with editable traits (add/edit/delete trait modal); reviewers rate each trait (blind). →
Homerun web Nov 2024 228.pngHomerun web Nov 2024 228.png,
Homerun web Nov 2024 236.pngHomerun web Nov 2024 236.png,
Homerun web Nov 2024 239.pngHomerun web Nov 2024 239.png,
Homerun web Nov 2024 374.pngHomerun web Nov 2024 374.png.
- Workable — FOUND. "Add evaluation" panel tied to the stage: thumbs up/down, free-text with @mentions, visibility control (hiring team vs recruiters only), saved to a Review tab + timeline. →
Workable web Jun 2024 118.pngWorkable web Jun 2024 118.png,
Workable web Jun 2024 121.pngWorkable web Jun 2024 121.png.
- Keka — FOUND. Continuous-feedback analytics (volume over time) + enable/settings flow. →
63-performance-feedback.png63-performance-feedback.png.
- Wrangle — PARTIAL. AI-copilot candidate evaluation in a Notes tab; no traditional reviewer scorecard. →
Wrangle web Mar 2026 178.pngWrangle web Mar 2026 178.png.
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.
- Homerun — FOUND. Event templates → candidate gets a calendar-invite card (accept/decline, message organizer); location = in-person / phone / Google Meet. →
Homerun web Nov 2024 299.pngHomerun web Nov 2024 299.png,
Homerun web Nov 2024 300.pngHomerun web Nov 2024 300.png,
Homerun web Nov 2024 301.pngHomerun web Nov 2024 301.png.
- Workable — FOUND. Self-scheduling links in interview emails (Google Calendar), create call/interview events with Google Meet, events on profile + email/calendar integration in settings. →
Workable web Jun 2024 97.pngWorkable web Jun 2024 97.png,
Workable web Jun 2024 114.pngWorkable web Jun 2024 114.png.
- Wrangle — FOUND. Booking-link settings (Booking Link / Availability / Event Settings tabs) with Google Calendar availability synced, public booking page w/ date picker, custom URL slug, buffers. →
Wrangle web Mar 2026 164.pngWrangle web Mar 2026 164.png,
Wrangle web Mar 2026 172.pngWrangle web Mar 2026 172.png.
- Keka — FOUND. Interviewer hub: "Integrate Calendar" + add-availability, candidates self-schedule conflict-free with reminders. →
54-hire-interviews.png54-hire-interviews.png.
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_meeting — but 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.
- Workable — PARTIAL. Built-in employee referral program (promote-job toggle, reward config, referral tracking) — lightweight, not a vendor/agency portal. →
Workable web Jun 2024 55.pngWorkable web Jun 2024 55.png,
Workable web Jun 2024 60.pngWorkable web Jun 2024 60.png.
- Keka — NOT FOUND in corpus. Hire reports list "external recruiter-wise candidate/job reports", but no vendor/agency portal UI is shown.
- Homerun — NOT FOUND in corpus. Wrangle — NOT FOUND in corpus.
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.
- Keka — PARTIAL. Sourcing-Efficiency report dimensions (Source / Source Category / Sourced / Hired / Hired Conv % / Rejection %) — closest in set, but corpus shows an empty state, no cost/ROI data. →
56-hire-insights.png56-hire-insights.png.
- Homerun / Workable / Wrangle — NOT FOUND in corpus. Reports exist (pipeline, productivity, candidate flow) but no vendor-ROI / cost-per-hire-by-vendor.
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…).
- Homerun — FOUND. Post-publish modal: social-share + board toggles; Google for Jobs toggle, LinkedIn/Indeed Connect (OAuth), structured-data (salary/location) fields. →
Homerun web Nov 2024 139.pngHomerun web Nov 2024 139.png,
Homerun web Nov 2024 209.pngHomerun web Nov 2024 209.png,
Homerun web Nov 2024 210.pngHomerun web Nov 2024 210.png.
- Workable — FOUND. Integration hub listing major boards (Indeed, Seek, LinkedIn, Monster, CareerBuilder…) with per-board connect; LinkedIn needs Company/Contract ID, "Apply with LinkedIn", auto-updating website widget. →
Workable web Jun 2024 508.pngWorkable web Jun 2024 508.png,
Workable web Jun 2024 512.pngWorkable web Jun 2024 512.png.
- Wrangle — NOT FOUND in corpus. Sourcing/outreach tool, not a job-distribution ATS.
- Keka — NOT FOUND in corpus. No board syndication UI in Hire screens.
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
- 🔴 Calendar Integration — T1, build now. The single feature where Goodfit trails all four competitors. Interviewer calendar sync (Google/Outlook) + self-serve booking links (generalize phone-voice flow) + panel coordination.
- 🟠 Job Board Integration — T2. Board directory + paid connect/credit flows + embeddable careers widget; ungate Google-for-Jobs.
- 🟠 Feedback Management — T2. Per-stage scorecard template designer + @mention notifications (2→3).
- 🟡 Duplicate Detection — T3. Candidate-merge UI on top of the existing hash/vector engine.
- ⚪ Manage Vendors + Vendor ROI — STRATEGIC, not default. Nobody in the set does it well; build only if staffing-agency/RPO becomes a target ICP. Vendor ROI is cheap if the vendor entity lands.
- 🟢 Source Management + Automated Workflows — no build, market it. Goodfit is at/above par; surface a rule-builder UI (Workable-style) to make the automation depth demo-able.
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
- Convert the Calendar / Job-Board / Feedback / Dedup gaps into tracer-bullet tracker issues via the
to-issuesskill (mirrorsENGINEERING-PRIORITIES.md). - Vendor Mgmt/ROI: a strategic/ICP decision for the founder, not an engineering ticket yet.
Sources
- Competitor evidence:
competitors/{homerun,workable,wrangle,keka} web/*.png(labels incompetitors/report/data/catalog.<tool>.enriched.json). - Goodfit ground truth:
competitors/report/data/taxonomy.json(gfNote) ·goodfit-feature-ledger.json·GOODFIT-FEATURE-CENSUS.md·scorecard.full.json. - Parent teardown:
docs/prds/COMPETITIVE-TEARDOWN-HANDOFF.md· build order:competitors/report/ENGINEERING-PRIORITIES.md.