| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-03-06 | 11.4 kB | |
| v1.0.0 -- Public Launch source code.tar.gz | 2026-03-06 | 2.1 MB | |
| v1.0.0 -- Public Launch source code.zip | 2026-03-06 | 2.3 MB | |
| Totals: 3 Items | 4.4 MB | 1 | |
Reqcore v1.0.0 — The Open Source ATS
The open-source ATS you own. No per-seat fees. No data lock-in. No secret algorithms.
I am thrilled to announce the first stable release of Reqcore — a self-hostable, full-stack Applicant Tracking System built with Nuxt 4, PostgreSQL, and S3-compatible storage.
This release establishes the first major public baseline for the project. While the core workflows are ready to use, the product is still evolving and users should expect continued improvements, polish, and bug fixes in upcoming releases.
Highlights
- Full ATS workflow — Create jobs, receive public applications, track candidates through a Kanban pipeline, upload and manage documents — all from a single dashboard.
- Self-hosted & data sovereign — Runs on your infrastructure via Docker Compose. Your candidate data stays in your PostgreSQL database and your S3 bucket. No vendor lock-in.
- No per-seat pricing — Add your entire hiring team without increasing your software bill.
- SEO-ready public job board — Slug-based URLs, JSON-LD
JobPostingschema, sitemap integration, and OG meta for maximum visibility on Google and social platforms. - Production-hardened — Rate limiting, security headers, server-proxied document access, private S3 bucket enforcement, and filename sanitization out of the box.
Core Features
Job Management
- Full CRUD with status workflow: Draft → Open → Closed → Archived
- Multi-step job creation form with guided wizard UX
- Markdown support for rich job descriptions
- Custom URL slugs for public job pages
- SEO fields: salary range, remote status, employment type, valid-through date
Candidate Pipeline
- Drag-and-drop Kanban board: Applied → Screening → Interview → Offer → Hired / Rejected
- Candidates data table with filtering, sorting, and column visibility controls
- Click-to-open detail sidebar with status transitions, notes, and question responses
- Search functionality across candidates and applications
- Email-based candidate deduplication
Public Job Board & Application Forms
- Public job listing page — browse open positions, no authentication required
- Custom application forms with 9 field types (text, textarea, select, multi-select, checkbox, number, date, URL, file upload)
- Drag-to-reorder questions per job
- Resume and cover letter file upload with magic-byte MIME validation
- Anti-spam honeypot protection
- Shareable application links for open positions
- Confirmation page after submission
Document Storage
- S3-compatible storage via MinIO (self-hosted) or any S3 provider
- Resume and cover letter upload with multipart/form-data
- Server-proxied download and inline PDF preview — documents are never exposed via public URLs
- Private bucket policy enforced on startup
- Filename sanitization and per-candidate document limits
Recruiter Dashboard
- At-a-glance stat cards: Open Jobs, Total Candidates, Applications, Unreviewed
- Pipeline overview with color-coded status breakdown
- Recent applications feed with relative timestamps
- Top active jobs ranked by application count
- Quick actions to create jobs or add candidates
- Welcome empty state for new organizations
Multi-Tenant Organizations
- Organization-scoped data isolation via Better Auth org plugin
- Organization creation onboarding flow
- Organization switcher for users with multiple orgs
- Role-based membership (owner, admin, member)
Infrastructure & Deployment
- One-command setup — setup.sh generates secrets,
docker compose upstarts everything - Docker Compose — PostgreSQL 16 + MinIO + Adminer, ports bound to
127.0.0.1 - Railway support — Managed deployment with auto-build, auto-deploy, and PR preview environments
- Auto-migrations — Database migrations apply automatically on server startup
- Demo seed data —
npm run db:seedpopulates a demo organization with sample jobs, candidates, and applications
Security
- Global API rate limiting (IP-based sliding window) with stricter thresholds for auth and write endpoints
- Security headers:
X-Frame-Options,X-Content-Type-Options,Referrer-Policy,X-XSS-Protection,Permissions-Policy noindexon all private routes (auth, dashboard, onboarding)- Server-proxied document access — no presigned URLs leak to clients
- Honeypot anti-spam on public application forms
- Zod validation on every API endpoint (server + client)
SEO & Content
- Full
@nuxtjs/seointegration: Sitemap, Robots, Schema.org, OG + Twitter Card meta - JSON-LD structured data:
JobPosting,Organization,WebSite,WebPage,Article - Dynamic sitemap auto-includes all open job postings
- Blog engine powered by
@nuxt/contentv3 with Markdown + YAML frontmatter - Dark-themed public landing page, roadmap, and blog
- ISR caching on job pages, prerendered landing + blog pages
Internationalization
- Crowdin integration for community-driven translations
- i18n infrastructure with locale file management
- Upload/download/sync workflows via npm scripts
Testing & CI
- Playwright end-to-end tests for critical flows (candidate application, job creation, resume upload)
- Allure reporting for test visibility
- Docker README validation workflow
- PR validation pipeline
Developer Experience
- Nuxt 4 with app source directory structure
- Drizzle ORM with type-safe schema and postgres.js driver
- Zod v4 validation schemas shared between server and client
- Auto-imported composables, components, and server utilities
- Tailwind CSS v4 with
@tailwindcss/viteand typography plugin - Lucide icons — tree-shakeable icon library
- In-app feedback button — submit bug reports and feature requests directly to GitHub Issues
What's Next
Reqcore v1.0.0 completes Phase 1 (MVP). Here's what's on the roadmap:
- Resume Parsing — PDF text extraction → structured JSON (contact, experience, education, skills)
- AI Candidate Ranking — Transparent, explainable matching with visible "Matching Logic" summaries (the Glass Box principle)
- Local AI via Ollama — Privacy-first AI where candidate PII never leaves your network
- Team Collaboration — Threaded comments, activity logs, interview scheduling
- Candidate Portal — Self-service application status tracking
See the full Roadmap for details.
Get Started
:::bash
git clone https://github.com/reqcore-inc/reqcore.git
cd reqcore
./setup.sh
docker compose up
Open http://localhost:3000 and start hiring.
All Changes
- feat: add railway configuration and seed script for PR environment setup by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/14
- feat: added feedback submission with optional context, screenshot support within the software by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/24
- feat: enhance seed script with environment variable support and error handling by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/25
- feat: add Docker README validation workflow by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/28
- feat: add feedback configuration API and integrate feedback feature in sidebar by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/30
- feat: implement live demo sign-in functionality with prefilled credentials by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/34
- feat: implement read-only mode for demo organization and add error handling by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/35
- feat: implement preview read-only mode with upsell guidance and error handling by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/38
- feat: add Markdown support for job descriptions and implement MarkdownDescription component by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/39
- feat: enhance candidates table with filtering, sorting, and column visibility options by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/40
- feat: simplify setup process and enhance environment configuration by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/41
- feat: multi-step job creation form by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/44
- feat: add AI intelligence, collaboration, pipeline management, recruitment tools, and security compliance documentation by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/42
- feat: implement search functionality and enhance job filtering in applications dashboard by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/47
- feat: rename Applirank to Reqcore across the codebase by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/48
- feat: clear Nuxt data on sign out and after sign-in/sign-up for a full page reload by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/49
- feat(i18n): integrate Crowdin for translation management and add locale files by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/59
- feat(e2e): add Playwright end-to-end tests for candidate application and job creation flows by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/62
- feat: integrate Allure reporting and enhance CI workflows for better test visibility by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/63
- feat: team collaboration infrastructure by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/65
- feat: add documentation for Document Storage, Public Job Board, Application Forms, Dashboard, and Architecture Overview by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/69
- fix: public application form file upload and cover letter display, simplified multi-step form by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/66
- fix: update newLinkMaxUses type to accept both string and number by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/70
- fix: resolve stale Applirank env vars by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/58
- fix: improved pipeline UX (#51) by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/54
- fix: corrected bad URLs and implemented mascot by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/53
- chore: update dependencies and add overrides for specific packages by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/27
- chore(deps): bump devalue from 5.6.2 to 5.6.3 by @dependabot in https://github.com/reqcore-inc/reqcore/pull/15
- chore(deps): bump svgo from 4.0.0 to 4.0.1 by @dependabot in https://github.com/reqcore-inc/reqcore/pull/67
- chore(i18n): Crowdin translation updates by @JoachimLK in https://github.com/reqcore-inc/reqcore/pull/60
Full Changelog: https://github.com/reqcore-inc/reqcore/commits/v1.0.0
License
AGPL-3.0 — Free to use, modify, and self-host. Contributions welcome.