Skip to main content

Open source job hunting toolkit - search jobs, generate tailored resumes and cover letters

Project description

JobKit

Open source AI-powered job hunting toolkit

Search jobs, build your profile from multiple sources, and generate tailored resumes and cover letters with AI.

License: MIT Python 3.10+

Features

  • Job Search - Search and save jobs from LinkedIn
  • Multi-Source Profile - Import from resume (PDF/DOCX), LinkedIn, and GitHub
  • AI-Powered Generation - Create tailored resumes and cover letters
  • PDF Export - Download professional PDFs ready to submit
  • Multiple LLM Support - Ollama (free/local), Anthropic Claude, or OpenAI GPT
  • 100% Local - Your data stays on your machine

Quick Start

Install

pip install jobkit
playwright install chromium

Run

jobkit web --port 8080

Open http://localhost:8080 in your browser.

Usage

1. Set Up Your Profile

Import your background from multiple sources:

  • Upload Resume - PDF, DOCX, or TXT
  • LinkedIn - Import experience and education
  • GitHub - Import projects and languages

All sources are merged intelligently.

2. Search for Jobs

  • Enter keywords and location
  • Browser opens for LinkedIn login (cookies saved for future sessions)
  • Save interesting jobs with one click

3. Generate Applications

Click "Generate Application" on any saved job to create:

  • Tailored resume matching the job requirements
  • Compelling cover letter
  • Download as professional PDFs

LLM Setup

Ollama (Free, Local) - Recommended

curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3
ollama serve

Cloud Providers

Set your API key in Settings:

  • Anthropic: claude-sonnet-4-20250514
  • OpenAI: gpt-4

CLI Commands

jobkit search "software engineer" --location "Remote"
jobkit list
jobkit generate JOB_ID
jobkit config

Development

git clone https://github.com/rocky-dao/jobkit.git
cd jobkit
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
playwright install chromium

Tech Stack

  • Backend: Python, Flask
  • Scraping: Playwright
  • AI: Ollama, Anthropic, OpenAI
  • PDF: fpdf2
  • Frontend: Tailwind CSS

Contributing

Contributions welcome! Areas of interest:

  • New job board scrapers (Indeed, Glassdoor)
  • Profile importers (Twitter, personal websites)
  • UI improvements

License

MIT License - free for personal and commercial use.


Built with AI, for job seekers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jobkit-0.1.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jobkit-0.1.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file jobkit-0.1.0.tar.gz.

File metadata

  • Download URL: jobkit-0.1.0.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jobkit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bb2cdf3f95407d6a1e0b2b690c7ba92a9b710f4b362bbbfcfdd4d572f8c255f3
MD5 e411215b276516669b41f4964cc6044a
BLAKE2b-256 3ad0922ffb7aef050b6b10b4e562c16691ce1016ad10cae9c0ffe7d9fd60e65c

See more details on using hashes here.

File details

Details for the file jobkit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jobkit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jobkit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e7c2e1db44a0246ab982393c6f5a992ca9fc19e0c2fc639e4d876a89718d230
MD5 9db48a598d9289c15d0a857c08f798c8
BLAKE2b-256 b234e55b4b9f7eb2dee21fba1a61d0e00251499debd2f69de700270ed6fb9e24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page