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.1.tar.gz (40.6 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.1-py3-none-any.whl (50.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jobkit-0.1.1.tar.gz
  • Upload date:
  • Size: 40.6 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.1.tar.gz
Algorithm Hash digest
SHA256 62508942d37d1d79a43eafce6ab2c5decf5dc4c2cf396c765bdac777dc191c51
MD5 3badf47dbd2cd8f93d7ceb8a4d3d4387
BLAKE2b-256 be56dd3c39e7c7936becfebd8a271381da911fd068b4de183d9bab11b44dbdd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jobkit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 50.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c4dcaf6b92cdbfc338d60f0d5f1aa90b8f79411ab46e251179644c3346a9e5e0
MD5 64075f3d0c73ffcf791fa8c2b6af2c5d
BLAKE2b-256 84e90ea05fc6f72042e04fa452f8d1c4fa96c43bb7b90b4f6b2636461efe0716

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