Building an Open-Source AI-Assisted International Job Search Platform Developer Subraata Kumar has released JobSearch, an open-source AI-assisted platform for international job hunting, under the MIT License. The MVP includes Docker setup, authentication, resume import, and profile workflows, with plans for AI-powered job matching and application tracking. The project emphasizes user control and data privacy, allowing integration with various AI providers. Finding a job in another country is more complicated than searching for a job title. Candidates often need to understand: I’m building an open-source project called JobSearch to bring these activities into one workspace. GitHub repository: https://github.com/subraatakumar/job-search https://github.com/subraatakumar/job-search The project is still in its early MVP stage, but the initial Docker setup, authentication, resume import, and profile workflow are working. JobSearch is designed for people applying internationally. For example, a user in India might want to search for: The long-term workflow is: Discover jobs ↓ Evaluate role and sponsorship fit ↓ Prepare a tailored application ↓ Practice for the interview ↓ Track the application ↓ Improve based on outcomes The goal is not to automatically apply to hundreds of jobs. The goal is to help candidates make better, more informed applications while keeping the user in control. The first version focuses on building a trustworthy foundation. Currently implemented: Planned features include: There are several reasons for making this project open source. First, job-search data is personal and sensitive. Users should be able to understand where their data goes and how the application works. Second, different users will want different AI providers. Some may prefer a hosted provider, while others may want to run a local model through Ollama. Third, job sources vary by country. A community can help add lawful, documented integrations for different regions without tightly coupling the core application to a single provider. The project is released under the MIT License. The current architecture is intentionally simple: Browser ↓ Next.js application ↓ PostgreSQL ↓ AI provider adapter The application will eventually include a background worker for scheduled searches: Scheduler ↓ Job source connectors ↓ Normalization and deduplication ↓ Job database ↓ User notifications and matching The planned technology stack is: The project uses an existing central authentication service based on Better Auth. The authentication service provides: The JobSearch application does not directly share authentication cookies or the authentication database. The flow is: JobSearch ↓ Redirect to central Auth service ↓ User signs in ↓ Auth redirects back with an authorization code ↓ JobSearch exchanges the code using PKCE ↓ JobSearch creates its own local session This keeps the authentication boundary clear and allows other applications to reuse the same identity service without sharing application data. The project is designed to be easy to run with Docker. Requirements: curl Clone the repository: git clone https://github.com/subraatakumar/job-search.git cd job-search Create the local environment file: cp .env.example .env Set a strong session secret in .env , then run: ./re-run-local.sh The local services are available at: JobSearch: http://localhost:3020 Dashboard: http://localhost:3020/dashboard Profile: http://localhost:3020/profile PostgreSQL: localhost:5433 To stop the services: docker compose down The normal shutdown command does not delete the PostgreSQL volume. The project also includes a separate production-like mode: cp .env.prod.example .env.prod Configure the production values and run: ./re-run-local.sh prod This mode uses: JobSearch: http://localhost:3021 PostgreSQL: localhost:5434 A Cloudflare Tunnel can route: jobs.example.com → http://localhost:3021 Local and production-like modes use separate Compose projects and separate database volumes. The first version supports text-based PDF resumes. The workflow is: Upload PDF ↓ Extract text ↓ Create draft profile ↓ User reviews the information ↓ Confirm the master profile The application does not yet treat extracted text as confirmed truth. This is important because resume parsing can produce errors. A parser might misunderstand: The user must review the extracted information before it can be used to generate an application. Scanned or image-only PDF files are not supported in the MVP. OCR is planned for a future version after evaluating: The project is designed to support OpenAI-compatible endpoints. The long-term goal is to let users configure: This is important because users have different requirements around: The application should never silently send a user's resume or profile data to an AI provider. Provider configuration and consent must be explicit. The project handles sensitive information, including: Important design principles include: The project will not implement: Job sources should use official APIs, permitted feeds, company career pages, user-provided URLs, or other lawful methods. The landing page explains the product workflow and includes: The profile page includes a drag-and-drop PDF upload area and extracted resume preview. The UI is being polished screen by screen instead of waiting for a large redesign at the end. This allows the product to remain usable while the underlying features are developed. I would especially welcome feedback on: Contributions are welcome. Before contributing, please read: CONTRIBUTING.md SECURITY.md CODE OF CONDUCT.md The project is still early, so useful contributions may include: Please keep pull requests focused and include testing or verification steps. International job searching is often fragmented across job boards, spreadsheets, documents, notes, and interview preparation tools. JobSearch is an attempt to bring those activities together while keeping the user in control of their data and AI provider. The project is early, but the foundation is now in place: If this problem interests you, I would love feedback, ideas, issues, and contributions. GitHub: https://github.com/subraatakumar/job-search https://github.com/subraatakumar/job-search