FairScreen — Remove Location Bias From ATS Screening Before It Kills Your Candidate Pool
Your ATS is silently filtering out your best candidates because they live in Singapore, Lagos, or Buenos Aires while you actually hire globally. FairScreen plugs into your hiring workflow and flags location-biased auto-rejections before they cost you the hire.
Difficulty
intermediate
Category
Business Automation
Market Demand
Medium
Revenue Score
-/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
5/10
Validated by Real Pain
— sourced from real community discussions
Qualified candidates are being silently filtered out by ATS systems based on their location even when roles are fully remote, and hiring teams never see these candidates to make a manual judgment call.
What is it?
Hiring managers on Hacker News and LinkedIn have documented a specific nightmare: qualified candidates get auto-rejected by ATS systems based on location fields even when the role is fully remote. The company never sees the candidate and the candidate never knows why. FairScreen is a lightweight Zapier-style webhook layer that sits between your ATS (Ashby, Greenhouse, Lever) and your screening step — it detects when a rejection reason correlates with location metadata and surfaces those candidates for human review instead of silently binning them. This is not an HR platform, it is a compliance-adjacent audit tool that hiring managers buy themselves. Buildable right now because Greenhouse, Lever, and Ashby all have stable webhook APIs, and OpenAI's function calling can classify rejection signals from structured ATS event payloads in under 200ms.
Why now?
Greenhouse and Lever stabilized their webhook APIs in 2023 and remote-first hiring peaked in 2024-2025 creating a documented location-bias problem. OpenAI function calling now classifies structured JSON payloads reliably under 200ms making real-time interception viable for the first time.
- ▸Webhook listener for Greenhouse, Lever, and Ashby rejection events that extracts candidate location and rejection metadata.
- ▸GPT-4o classifier that scores whether a rejection correlates with location rather than qualifications.
- ▸Review queue UI where hiring managers see flagged candidates with one-click to reopen the application.
- ▸Weekly digest email showing bias score trends and flagged candidate counts per pipeline stage.
Target Audience
Remote-first startups with 10-200 employees using Ashby, Greenhouse, or Lever — roughly 25,000 companies globally posting remote roles on Wellfound and LinkedIn.
Example Use Case
A 40-person remote SaaS startup using Greenhouse discovers that 34 qualified candidates from Southeast Asia were auto-rejected in the last quarter. FairScreen surfaces 8 of them as high-match, the team rehires two, and the CPO sends a thank-you Slack to the tool.
User Stories
- ▸As a remote-first startup CTO, I want to see candidates auto-rejected due to location, so that I can rescue qualified hires my ATS silently discarded.
- ▸As a hiring manager, I want a one-click way to reopen flagged applications, so that I do not have to manually navigate Greenhouse to undo a filter decision.
- ▸As a DEI-focused founder, I want a weekly report showing location bias trends in my pipeline, so that I can demonstrate hiring equity to my board.
Done When
- ✓Webhook connection: done when user pastes webhook URL into Greenhouse settings and sees a green connected status in FairScreen dashboard within 60 seconds.
- ✓Classification: done when a simulated rejection event returns a bias score and plain-English reasoning visible on the candidate card.
- ✓Reopen action: done when hiring manager clicks Reopen and the candidate status in Greenhouse changes from Rejected to the previous active stage within 5 seconds.
- ✓Weekly digest: done when user receives an email every Monday showing total flagged count, average bias score, and top 3 flagged candidates from the prior week.
Is it worth building?
$79/month x 30 companies = $2,370 MRR at month 3. $79/month x 150 companies = $11,850 MRR at month 8. Assumes 4% conversion from outreach to hiring managers at remote-first startups.
Unit Economics
CAC: $40 via LinkedIn DM outreach. LTV: $948 (12 months at $79/month). Payback: 1 month. Gross margin: 91%.
Business Model
SaaS subscription
Monetization Path
Free 30-day trial on first 50 candidates reviewed. Paid $79/month per company unlimited candidates.
Revenue Timeline
First dollar: week 4 via pilot conversion. $1k MRR: month 4. $5k MRR: month 9. $10k MRR: month 15.
Estimated Monthly Cost
OpenAI API: $30, Vercel: $20, Supabase: $25, Resend: $10, Stripe fees: $15. Total: ~$100/month at launch.
Profit Potential
Full-time viable at $8k-$15k MRR with 100-190 company accounts.
Scalability
High — add Workday and Rippling integrations, team analytics, and DEI reporting in V2.
Success Metrics
Month 1: 5 paying companies. Month 3: 25% of flagged candidates reviewed and reopened by users. Month 6: 50 paying companies.
Launch & Validation Plan
Post in Hacker News Who Is Hiring thread and r/recruiting asking if location bias filtering is a paid problem. DM 20 remote-first startup CTOs on LinkedIn offering free 60-day pilot.
Customer Acquisition Strategy
First customer: DM 15 engineering managers at remote-first YC companies via LinkedIn offering free pilot, citing the HN thread as social proof. Then: post in DEI-focused founder Slacks, Lenny's newsletter, and remote work communities like Remote OK and We Work Remotely job boards.
What's the competition?
Competition Level
Low
Similar Products
Greenhouse has a native DEI dashboard but no location-bias detection. Textio analyzes job descriptions not rejections. Pinpoint covers structured hiring but not bias auditing — none intercept the ATS rejection event and surface it for human override.
Competitive Advantage
Plugs into existing ATS via webhook — zero workflow change for recruiters, no new platform to learn, and 10x cheaper than DEI audit consultants.
Regulatory Risks
GDPR: candidate personal data from EU must be handled under data processing agreements with each employer customer. Do not store candidate PII beyond 90 days without explicit retention policy. EEOC-adjacent in the US — product must not make hiring decisions, only surface for human review.
What's the roadmap?
Feature Roadmap
V1 (launch): webhook listener, bias classifier, review queue, weekly digest. V2 (month 2-3): Lever integration, bias score trend chart, CSV export. V3 (month 4+): Workday integration, team analytics, DEI board report PDF.
Milestone Plan
Phase 1 (Week 1-2): webhook listener, GPT-4o classifier, Supabase schema working end-to-end. Phase 2 (Week 3-4): dashboard UI, reopen action, Stripe billing live. Phase 3 (Month 2): 5 paying pilot companies, ProductHunt launch.
How do you build it?
Tech Stack
Next.js, OpenAI GPT-4o for rejection signal classification, Supabase, Resend for alerts, Stripe — build with Cursor for API integration layer, v0 for dashboard UI
Suggested Frameworks
OpenAI function calling, Greenhouse Harvest API, Lever API
Time to Ship
3 weeks
Required Skills
Webhook handling, OpenAI function calling, Greenhouse/Lever API integration, Next.js.
Resources
Greenhouse Harvest API docs, Lever API docs, OpenAI function calling guide, Supabase quickstart.
MVP Scope
app/page.tsx (landing), app/dashboard/page.tsx (flagged candidate queue), app/api/webhook/route.ts (ATS webhook listener), app/api/classify/route.ts (GPT-4o rejection classifier), lib/db/schema.ts (Drizzle schema), lib/ats/greenhouse.ts (Greenhouse API client), components/CandidateCard.tsx (review card), .env.example (required env vars)
Core User Journey
Connect ATS via webhook URL -> receive first flagged candidate within 48h -> reopen one application with one click -> see weekly bias trend digest -> upgrade to paid.
Architecture Pattern
ATS fires rejection webhook -> Next.js listener parses event -> GPT-4o classifies location vs qualification signal -> flagged candidates written to Supabase -> dashboard surfaces review queue -> hiring manager reopens via one click -> ATS status updated via API.
Data Model
Company has one ATSConnection. ATSConnection has many RejectionEvents. RejectionEvent has one BiasClassification. BiasClassification has score and reasoning. Company has many ReviewActions.
Integration Points
Greenhouse Harvest API for candidate status updates, Lever API for webhook events, OpenAI GPT-4o for rejection classification, Supabase for flagged candidate storage, Resend for weekly digest, Stripe for billing.
V1 Scope Boundaries
V1 excludes: Workday/SAP integration, team analytics, automated re-engagement emails to candidates, mobile app, white-label.
Success Definition
A hiring manager at a remote-first startup finds FairScreen via a DEI Slack, connects their Greenhouse account without founder help, and renews at month 2 citing at least one candidate they reopened.
Challenges
The hardest problem is not technical — it is convincing hiring managers to act on flagged candidates when their ATS already said no. Product must make reopening trivially easy or the review queue becomes shelfware. Distribution via HR communities and DEI-focused founder Slack groups is the only realistic early channel.
Avoid These Pitfalls
Do not position as an HR compliance tool — legal teams will slow-roll the sale for months. Sell to engineering managers and CTOs who feel the pain directly. Do not store raw candidate resumes — only metadata and classification scores to minimize GDPR surface area.
Security Requirements
Supabase Auth with Google OAuth, HMAC webhook signature validation on all ATS events, RLS on all company-scoped tables, candidate metadata deleted after 90 days, GDPR data deletion endpoint required.
Infrastructure Plan
Vercel for Next.js, Supabase for Postgres, Sentry for error tracking, GitHub Actions for CI, dev/staging/prod via Vercel environments, no file storage needed in V1.
Performance Targets
100 DAU at launch, 2,000 webhook events/day. Webhook processing under 300ms. Dashboard load under 2s. GPT-4o classification under 1s per event.
Go-Live Checklist
- ☐Security audit complete.
- ☐Greenhouse HMAC validation tested.
- ☐Stripe payment flow tested end-to-end.
- ☐Sentry error tracking live.
- ☐Custom domain with SSL configured.
- ☐Privacy policy and DPA template published.
- ☐5 pilot companies signed off.
- ☐Rollback plan documented.
- ☐Launch post drafted for HN and DEI founder Slacks.
First Run Experience
On first run: a demo company account with 12 pre-seeded flagged candidates from simulated Greenhouse rejections is loaded. User can immediately browse the review queue, see bias scores, and click Reopen on a demo candidate. No manual config required: demo data loads from seed.ts, no ATS connection needed to explore the product.
How to build it, step by step
1. Define schema for Company, ATSConnection, RejectionEvent, BiasClassification in lib/db/schema.ts. 2. Scaffold Next.js app with Supabase Auth. 3. Build /api/webhook route that validates Greenhouse HMAC signature and parses rejection payload. 4. Implement GPT-4o function call in /api/classify that returns bias_score 0-100 and reasoning string. 5. Write flagged candidates to Supabase with status 'pending_review'. 6. Build dashboard page rendering flagged candidate cards with reopen button. 7. Wire reopen button to Greenhouse Harvest API PATCH endpoint to move candidate back to active stage. 8. Build Resend weekly digest job summarizing flagged count and bias score trend. 9. Add Stripe $79/month checkout with 50-candidate free trial gate. 10. Verify: simulate a Greenhouse rejection webhook locally, confirm classification fires, candidate appears in dashboard, and reopen updates ATS status.
Generated
June 6, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.