Adaptify SEO
Featured

Vibe Coder (Full-Stack AI/SEO) at Adaptify SEO

USD40,000+ • Remote (Worldwide)

·5

The Remote Developer Jobs API You Actually Want to Use

Why generic job APIs fail remote developers, and how HireQL provides structured, curated remote job data with real salaries, tech stacks, and company vibe signals.

RVCJ Editorial

RVCJ Editorial

Editorial Team

The Remote Vibe Coding Jobs editorial team covers AI-assisted development, remote work trends, and career guides for modern developers.

GitHub contribution grid — developer activity and open source
Photo by Praveen Thirumurugan on Unsplash

There are dozens of job APIs out there. Adzuna. Jooble. The GitHub Jobs API (RIP). Even Google has one.

But if you've ever tried to use them for finding good remote developer jobs, you know the problem: they're generic. They index everything. And "everything" includes a lot of noise.

We built HireQL because we were tired of wading through garbage. Here's why it's different.

The Problem With Generic Job APIs

1. "Remote" Doesn't Mean Remote

Most job APIs pull from boards like Indeed or LinkedIn, where "remote" means one of three things:

  • Remote available — you can work remotely, but the company is office-first and you'll be a second-class citizen
  • Remote during COVID — listings from 2021 that were never updated
  • Remote* — *must be within 50 miles of our HQ for "collaboration"

HireQL only indexes remote-first companies. If the job requires you to live near an office, it's not in our database.

2. No Salary Data

Generic APIs return listings exactly as posted. And most companies don't post salaries.

HireQL filters for transparent salary listings. If a company won't tell you the range, we don't promote them. (Though we still index them — you can filter them out with vibe_tags: ["transparent-salary"].)

3. Tech Stack is a Mess

Job descriptions are written by recruiters who think "React" and "React Native" are the same thing. Generic APIs give you raw text. You have to parse it yourself.

HireQL tags every job with structured tech_stack arrays:

{
  "tech_stack": ["typescript", "react", "node", "postgresql"],
  "tech_level": "senior"
}

Want Rust jobs? Query tech: ["rust"]. No regex, no NLP guesswork.

4. Vibe is Invisible

Is the company async-first? Do they have a no-meeting culture? Are they VC-funded and racing to exit, or bootstrapped and sustainable?

Generic APIs can't tell you. We can:

{
  "vibe_tags": ["async", "4-day-week", "bootstrapped"],
  "vibe_score": 0.89
}

We manually curate vibe data. It's not perfect, but it's way better than guessing from a job description.

What Makes HireQL Different

Built for Developers, by Developers

We're not a generic job board. We're a curated index of remote dev jobs worth applying to. Every listing is:

  • Remote-first (or at least remote-friendly with proof)
  • For developers/engineers/builders (no "marketing rockstars")
  • From companies that don't make us cringe

Right now we have 630+ jobs. That's intentionally small. Quality over quantity.

Structured, Predictable JSON

Every job has the same fields. No surprises.

{
  "id": "abc123",
  "title": "Senior Backend Engineer",
  "company": "Vibe Corp",
  "location": "Remote (US)",
  "salary": "$150k - $190k",
  "url": "https://remotevibecodingjobs.com/jobs/abc123",
  "tech_stack": ["python", "django", "postgresql", "redis"],
  "tech_level": "senior",
  "vibe_tags": ["async", "transparent-salary", "small-team"],
  "vibe_score": 0.91,
  "posted_date": "2026-03-01",
  "company_size": "11-50",
  "funding": "seed"
}

No guessing. No parsing. Just clean data.

Search That Actually Works

Most job APIs make you filter on the client side. We give you real query parameters:

POST /api/v1/jobs
{
  "tech": ["rust", "go"],
  "vibe_tags": ["async", "4-day-week"],
  "min_salary": 140000,
  "location": "remote-us",
  "posted_since": "7d",
  "limit": 20
}

And you get back exactly what you asked for. No post-processing needed.

Active Maintenance

Job postings go stale. Companies ghost applicants. Links break.

We prune dead listings weekly. If a job hasn't been refreshed in 30 days, it's out. You never see outdated posts.

Real Use Cases

Daily Job Alerts

const newJobs = await fetch('https://remotevibecodingjobs.com/api/v1/jobs', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    tech: ['typescript', 'react'],
    vibe_tags: ['transparent-salary'],
    posted_since: '24h'
  })
}).then(r => r.json());

if (newJobs.jobs.length > 0) {
  sendToSlack(newJobs);
}

Portfolio Job Board

Embed remote jobs on your personal site:

<div id="jobs"></div>

<script>
fetch('https://remotevibecodingjobs.com/api/v1/jobs?tech=python&limit=5', {
  headers: { 'Authorization': 'Bearer YOUR_KEY' }
})
.then(r => r.json())
.then(data => {
  document.getElementById('jobs').innerHTML = data.jobs.map(job =>
    `<div>
      <h3>${job.title} at ${job.company}</h3>
      <p>${job.salary} • ${job.tech_stack.join(', ')}</p>
      <a href="${job.url}">Apply</a>
    </div>`
  ).join('');
});
</script>

Slack Bot

import requests
import os

def post_jobs_to_slack(channel, jobs):
    webhook = os.getenv("SLACK_WEBHOOK")
    for job in jobs:
        requests.post(webhook, json={
            "channel": channel,
            "text": f"New job: {job['title']} at {job['company']}\n{job['url']}"
        })

jobs = requests.post('https://remotevibecodingjobs.com/api/v1/jobs', 
    headers={'Authorization': f"Bearer {os.getenv('HIREQL_KEY')}"},
    json={'tech': ['rust'], 'posted_since': '24h'}
).json()['jobs']

post_jobs_to_slack('#job-alerts', jobs)

Salary Research

Want to know the going rate for senior Rust engineers?

POST /api/v1/jobs
{
  "tech": ["rust"],
  "tech_level": "senior",
  "vibe_tags": ["transparent-salary"],
  "limit": 50
}

Then average the salary field. (We return it as a range; you'll need to parse it. Or wait for our /api/v1/stats endpoint.)

Pricing

We're not trying to get rich here. Pricing is simple:

  • Free tier: 1,000 requests/month (plenty for personal automation)
  • Pro: $20/month, 50,000 requests
  • Enterprise: Custom (if you're running a job board or need higher limits)

Check the developer portal for current pricing.

API Endpoints

POST /api/v1/jobs

Search jobs. Accepts:

  • tech (array) — e.g., ["rust", "go"]
  • vibe_tags (array) — e.g., ["async", "transparent-salary"]
  • location (string) — "remote-us", "remote-eu", "remote"
  • min_salary / max_salary (number) — in USD
  • posted_since (string) — "24h", "7d", or ISO date
  • limit (number) — default 20, max 100

GET /api/v1/jobs/:id

Get a single job by ID.

GET /api/v1/stats

Aggregate stats: total jobs, average salaries by tech, etc. (Coming soon.)

Getting Started

  1. Go to /developers
  2. Sign up (it's free)
  3. Grab your API key
  4. Start querying

Here's a quick Python snippet:

import requests

API_KEY = "your_key"
response = requests.post(
    "https://remotevibecodingjobs.com/api/v1/jobs",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "tech": ["typescript"],
        "vibe_tags": ["async"],
        "limit": 10
    }
)

for job in response.json()["jobs"]:
    print(f"{job['title']} - {job['company']} ({job['salary']})")

What's Next

We're building:

  • MCP server — search jobs from Claude Desktop / Cursor
  • Webhooks — get pinged when new jobs match your criteria
  • Historical data — track salary trends over time

Stay tuned.

Final Thoughts

Remote work is the future. But finding good remote jobs is still a pain.

HireQL doesn't solve every problem. But it solves the "I don't want to manually search 10 job boards every day" problem.

And it gives you an API to build on top of. Which is what developers actually want.

Grab your API key and start building →

Share:XLinkedIn

Browse Related Remote Jobs

Find remote developer jobs that match the topics in this article.

Related Articles

Daily digest

The best vibe coding jobs, in your inbox

Curated remote dev roles at async-first, no-BS companies. No spam, unsubscribe anytime.