Skip to main content

remote-jobs-export

Pull, filter, and export normalized remote-job data from the free Remote Jobs API to CSV / JSON / SQLite — or print a quick summary. Stdlib-only (no third-party dependencies), no API key required for the free tier.

The API aggregates 5 boards (Remotive, RemoteOK, Jobicy, We Work Remotely, Hacker News) into one clean schema. This tool pulls that data locally so you can analyze it in a spreadsheet, a database, or a script — no scraping, no key juggling.

Why

  • You want a snapshot of remote jobs as a CSV to open in Excel/Google Sheets.
  • You want the data in SQLite for quick SQL analysis (SELECT ... GROUP BY source).
  • You want a JSON file to feed into your own pipeline.
  • You want a one-line summary (counts by source / category / location).

It's the offline, export-focused companion to the API itself.

Install

pip install remote-jobs-export

Or run it directly from this repo without installing:

python -m remote_jobs_export.cli --help

Quick start

# Export 100 jobs to a CSV file (no key needed)
remote-jobs-export --limit 100 -o jobs.csv

# Export to SQLite for SQL analysis
remote-jobs-export --limit 200 -o jobs.db

# Export to JSON
remote-jobs-export --limit 200 -o jobs.json

# Filter by source (remotive / remoteok / jobicy / wwr / hn)
remote-jobs-export --source remotive -o remotive.csv

# Filter by skills (comma-separated)
remote-jobs-export --skills python,devops -o python_devops.csv

# Filter by minimum skill fit-score (0-100)
remote-jobs-export --min-score 70 -o top.csv

# Filter by minimum salary (server-side; on the parsed top-of-range salary_max)
remote-jobs-export --min-salary 90000 -o senior.csv

# Just print a summary (no file)
remote-jobs-export --limit 300 --summary

Example summary output

{
  "total": 200,
  "by_source": [["jobicy", 120], ["wwr", 55], ["remoteok", 19], ["remotive", 6]],
  "by_category": [["Customer Support", 10], ["DevOps and Sysadmin", 10], ...],
  "top_locations": [["Anywhere in the World", 54], ["USA / Any", 14], ...],
  "scored_jobs": 200
}

Output schema (16 columns)

column type notes
id text stable job id
title text
company text
location text may be empty
category text may be empty
source text remotive / remoteok / jobicy / wwr / hn
salary text raw string, may be empty
salary_min int parsed minimum salary, or null
salary_max int parsed maximum salary, or null
salary_currency text e.g. USD, may be empty
salary_period text e.g. year / month / day, may be empty
tags CSV: comma-joined · JSON/SQLite: list deduped, order-preserving
fit_score int 0-100, or null
published text ISO-8601 UTC or empty
url text original job listing URL
description text

Python API

from remote_jobs_export import fetch_jobs, export_csv, export_sqlite, summarize

jobs = fetch_jobs(limit=200, skills=["python"], min_salary=90000)   # keyless free tier; filter by min salary
export_csv(jobs, "jobs.csv")
export_sqlite(jobs, "jobs.db")
print(summarize(jobs))

A paid api_key can be passed to fetch_jobs(api_key=...) (sent as Authorization: Bearer ...) for higher limits / extra filters.

Notes

  • Free tier needs no key. The default base (https://remote-jobs-api.tten.no) serves the free tier keyless.
  • Stdlib-only. Python 3.8+. No requests, no pandas.
  • Idempotent. Re-exporting to the same SQLite file replaces the jobs table.

License

MIT

Release files for remote-jobs-export 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for remote-jobs-export 1.1.0
File Size Uploaded
remote_jobs_export-1.1.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for remote-jobs-export 1.1.0
File Interpreter ABI Platform
remote_jobs_export-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.8 kB

Release files / remote_jobs_export-1.1.0.tar.gz

Download URL remote_jobs_export-1.1.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f282d3e3de539e47b83b28f65848510ded439ba53450cd6eec59d9e53d1afbd2
BLAKE2b-256 checksum
How to use checksums
15cc2cac313963da18435273fe6410d1f5d434c43d90795e483be3298146de24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / remote_jobs_export-1.1.0-py3-none-any.whl

Download URL remote_jobs_export-1.1.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
babc4111aa99e6b105ff843d4de9d2b346e6ea4a9eb9c6561280fb455efc2ed9
BLAKE2b-256 checksum
How to use checksums
861c0639103b8100ecbcbaf61709e24d3ca299928b2000ba421575f3ea99c256
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page