Automate your hiring stack — from Drive to Sheet. Upload shortlisted resumes, extract candidate data automatically, and sync to Google Sheets in seconds.
SourceStack is a modern web application that automates HR data workflows by:
- One-click Ingest: Pick a Drive folder and let SourceStack discover and queue resumes automatically
- Accurate Parsing: Extract name, email, and phone from PDFs/DOCX with OCR fallback for scans
- Review & Approve: Fix fields inline, merge duplicates, and keep a clean candidate list
- Sync to Sheets: Append or update rows with headers and de-duplication out of the box
- Secure by Design: Least-privilege scopes, encrypted tokens, and activity logs
- Faster Every Day: Async workers and smart batching cut your wait time to seconds
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- Icons: Lucide React
- Authentication: NextAuth.js v5 (Google OAuth)
- Package Manager: pnpm
- Node.js 20+
- pnpm 10.20.0+
- Clone the repository:
git clone <repository-url>
cd source-stack-web- Install dependencies:
pnpm install-
Set up environment variables: Create a
.env.localfile in the root directory with the following:AUTH_SECRET=your-secret-key-here-generate-with-openssl-rand-base64-32 AUTH_URL=http://localhost:4000 GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
To get Google OAuth credentials:
- Go to Google Cloud Console
- Create a new OAuth 2.0 Client ID
- Add authorized redirect URI:
http://localhost:4000/api/auth/callback/google - Copy the Client ID and Client Secret to your
.env.localfile
Generate AUTH_SECRET:
openssl rand -base64 32
-
Run the development server:
pnpm dev- Open http://localhost:4000 in your browser.
src/
├── app/
│ ├── api/
│ │ └── auth/
│ │ └── [...nextauth]/route.ts # NextAuth API routes
│ ├── features/ # Features page
│ ├── pricing/ # Pricing page
│ ├── icon.svg # Favicon
│ ├── layout.tsx # Root layout with metadata
│ └── page.tsx # Home page
├── components/
│ ├── auth/
│ │ └── google-sign-in-button.tsx # Google OAuth button
│ ├── providers/
│ │ └── session-provider.tsx # NextAuth session provider
│ ├── ui/
│ │ ├── button.tsx # shadcn Button component
│ │ └── button-link.tsx # ButtonLink component
│ ├── Background.tsx # Background gradient and effects
│ ├── Hero.tsx # Hero section component
│ └── Navbar.tsx # Navigation bar component
├── lib/
│ └── utils.ts # Utility functions (cn helper)
├── auth.ts # NextAuth configuration
└── constants.ts # Feature configuration and constants
pnpm dev- Start development server on port 4000pnpm build- Build the application for productionpnpm start- Start the production serverpnpm lint- Run ESLint
- Google OAuth sign-in (single sign-on option)
- Session management with NextAuth.js
- Protected routes and user state management
- Hero section with main value proposition
- Visual demonstration of resume-to-spreadsheet flow
- Google sign-in button for immediate access
- Comprehensive feature list with icons
- Highlight sections for key features (Parsing & Sync)
- Feature cards with badges and descriptions
- Free tier information
- Benefits and feature highlights
- Call-to-action for sign-up
The application features a modern, minimalist design with:
- Black and white color scheme
- Gradient backgrounds (black to white)
- Glassmorphism effects
- Responsive design for all screen sizes
Private - All rights reserved