Skip to main content

Tailor your resume to any job posting from your terminal.

Project description

finch-cli

a terminal client for job hunting. browse fresh internship + new-grad postings, tailor your resume to any of them, see an ats-style match score with matched + missing keywords, keep a library of the tailored versions.

jobs tab

tailor tab with match panel

install

pip install finch-cli
export DEEPSEEK_API_KEY=sk-...
finch ui

deepseek keys are cheap (currently around $0.27 / 1M input tokens, ~30x cheaper than claude). get one at https://platform.deepseek.com/api_keys.

other providers work too. any openai-compatible chat-completions endpoint: openai, together, groq, fireworks. pass --base-url and the matching --api-key, or set FINCH_BASE_URL and OPENAI_API_KEY. the same finch_cli/tailor.py runs against all of them.

what it does

three tabs, one keyboard.

jobs pulls the simplifyjobs internship and new-grad lists (the same two feeds the finch backend mirrors). 3000+ active postings, filterable by query, source, term. press T on a row, the job loads into the tailor tab pre-filled.

library is the list of tailored resumes you've saved. Markdown preview on the right.

tailor is the three-pane editor: base resume / job posting / tailored output. claude rewrites bullets and ordering to fit the posting. won't invent skills you don't have. a match-analysis panel at the bottom shows an ats-style score, which job keywords your resume covers, which ones it doesn't, and how much the tailored version moved the needle vs the base.

install (pure cli, no tui)

finch tailor --resume resume.md --job https://jobs.example.com/swe-intern -o tailored.md

if the job site is js-heavy (workday, some greenhouse iframes), the fetch fails clean and tells you to use --job-file with a pasted description:

finch tailor -r resume.md --job-file pasted.txt -o tailored.md

tui keys

key action
1 / 2 / 3 jump to jobs / library / tailor
Ctrl+T tailor; on jobs tab loads the selected job first
Ctrl+U paste a job url, fetches it into the tailor pane
Ctrl+O open a resume file
Ctrl+R refetch the job feeds
Ctrl+L save the tailored output to the library
Ctrl+S save the tailored output to a file
Ctrl+D load the bundled demo
Ctrl+Q quit

filter inputs at the top of the jobs tab are live; type and the table updates.

cli flags

finch tailor

flag what
-r, --resume PATH base resume in markdown or plain text (required)
-j, --job URL job posting url
--job-file PATH local file with the job description (use if --job won't extract)
-o, --out PATH save tailored resume here, else stdout
--model NAME model name (default deepseek-chat)
--api-key KEY override $DEEPSEEK_API_KEY / $FINCH_API_KEY / $OPENAI_API_KEY
--base-url URL override openai-compatible base url (default https://api.deepseek.com)

finch ui

flag what
--demo preload the bundled example into the tailor tab
--model NAME model name

where stuff lives

path
job feed cache (~6h ttl) ~/.cache/finch-cli/{intern,newgrad}.json
saved tailored resumes ~/.local/share/finch-cli/resumes/
bundled example resume + job examples/ in the repo

why a cli

most of these tools are saas you have to sign up for. this is the opposite. install, run, the only thing leaving your machine is the llm call you control.

the autofill side - the part that actually fills out the application form - lives in the web app at applyfinch.com, free during beta.

known limits

  • workday and some greenhouse iframe pages need js. the fetch fails clean and tells you to use --job-file.
  • tailored output is markdown. pipe to pandoc for pdf, or paste into overleaf if you have a tex template.
  • the model won't invent skills. if the base resume is thin, the tailored version is thin. fix the base first.

roadmap

  • a built-in pdf renderer (drop the pandoc step)
  • finch apply to autofill the application after tailoring, same engine as the web app
  • optional sign-in to view your real applyfinch.com pipeline from the terminal

license

mit.

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

finch_cli-0.1.1.tar.gz (55.0 kB view details)

Uploaded Source

Built Distribution

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

finch_cli-0.1.1-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: finch_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for finch_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0a87b90af4b875ad11cc92e9e02ed6d1880a41ad892ea0bf3b37452e32f28531
MD5 fee82cce56225596153eb5bc9b146a0b
BLAKE2b-256 3cbc331e8a13f5ec6e635933df206dd3e32ec27288ece5b505b4ad93ccb29d94

See more details on using hashes here.

File details

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

File metadata

  • Download URL: finch_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for finch_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 82afa6609641ea5e85baeef88734f57400aa8d0153cde5c53c84a37707b3be1e
MD5 3ff5770cf8e6d7fe8f873c068e2962ad
BLAKE2b-256 b39e75aeda7d535401509d066a7f0efb719de5c033b6044dd1aa440cbe2d0cbc

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