We Work Remotely Jobs Lookup avatar

We Work Remotely Jobs Lookup

Pricing

from $0.50 / 1,000 job posting returneds

Go to Apify Store
We Work Remotely Jobs Lookup

We Work Remotely Jobs Lookup

Fetch We Work Remotely's own per-category RSS feeds and get one clean row per posting: title, company, region, employment type, headquarters, posted date, link and full description. No login, no API key, official feeds only. You pay per posting returned, and an empty category feed costs nothing.

Pricing

from $0.50 / 1,000 job posting returneds

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

You name a category — programming, design, customer-support, or all for the combined feed — and this actor fetches We Work Remotely's own RSS feed for it and returns one clean row per posting: title, company, region, employment type, company headquarters, posted date, a permanent link and the full job description. No login, no API key, no scraping of rendered pages — every field comes straight out of WWR's official RSS, the same feed a browser or an RSS reader gets.

Who it's for

The accountable_eel catalogue sells company and hiring intelligence columns for outbound and recruiting. Each actor takes a list of identifiers and returns one flat, stably-named row per result: the shape a Clay table, an n8n workflow, or an AI agent can consume without post-processing. Pricing is pay-per-event: a fraction of a cent for a posting you actually got, and nothing at all for a category that comes back empty. No seat licence, no monthly minimum, no credit system to decode.

This actor is the "curated boards" corner of the catalogue's remote-jobs coverage, alongside remotive-jobs-lookup and himalayas-jobs-lookup — three independent official sources for the same niche, in case one board is thin on a given role or you just want a wider net. It sits next to the ATS lookups (greenhouse-jobs-lookup, lever-jobs-lookup and friends) that answer "what is this company hiring for" — this one answers "what's currently open in this category, anywhere".

Why this one

  • The RSS feed already has everything. WWR's per-category feed carries the full job description in every item, not just a title and a link — so there is no second per-posting request to make, no extra hop to pay for, and no risk of a detail page changing shape under you.
  • The description comes back as text, not raw markup. WWR escapes each posting's HTML into the feed rather than wrapping it in CDATA, and a few characters are escaped twice over. Both are decoded and the markup is stripped before the description reaches you — description reads as plain text, never as a page of <p> tags.
  • The boilerplate is separated out, not left sitting in the text. Every posting opens with a "Headquarters: ..." line and closes with a "To apply: <link>" paragraph. The headquarters line becomes its own headquarters field; the apply paragraph is dropped, since it only ever repeats the same link already sitting in the row's own link field.
  • You are never billed for the same posting twice. WWR's "programming" feed is a superset of full-stack-programming / front-end-programming / back-end-programming, and the all feed is a superset of every category — request several overlapping category lines in one run and, by default, each posting is still counted and charged exactly once.
  • Twelve categories, curl-verified one at a time. Every category slug this actor accepts was checked with a live request on 2026-08-24 (200, real <item> entries) — nothing here is a slug guessed from a URL pattern and left untested. A category that doesn't resolve tells you so, with the full list of ones that do, instead of silently returning nothing.

What you get

One row per job posting by default. (Turn off "One row per job posting" in the Input tab to get one row per category instead, with the whole posting list nested in jobs.)

FieldType / formatDescription
querytextThe category line you passed in, unchanged.
foundbooleantrue if the category resolved to a real feed. false rows are never charged.
statustextOK, BAD_FORMAT (not a recognised category), or BLOCKED.
categoryQueriedtextThe category slug actually fetched, after normalizing what you typed.
categoryLabeltextThe category's human-readable label, e.g. "Customer Support".
jobCountnumberHow many postings this category returned after your filters — this is exactly what you're charged for.
truncatedbooleantrue if more postings were available than "Most postings to return per category" allowed.
jobsarrayThe full posting list. Present in every row; it's what gets expanded into separate rows in "one row per posting" mode.
titletextJob title, with the company name split off.
companyNametextHiring company, read from the "Company: Job Title" format WWR uses in every posting's title.
categorytextThis specific posting's own WWR category — useful when you queried all or an aggregate like programming, since it can hold postings from several sub-categories.
regiontextWhere WWR says the role can be worked from, e.g. "Anywhere in the World", "USA Only".
country / statetextPresent on newer postings only; empty string on older ones rather than missing.
skillsarrayComma-separated skill tags WWR attaches to some postings, e.g. ["Figma"]. Empty array when WWR doesn't tag any.
typetextEmployment type, e.g. "Full-Time" — present on newer postings only.
headquarterstextThe company's stated headquarters, read out of the posting's own "Headquarters:" line.
postedAtdate (ISO)The posting date, converted from WWR's RSS pubDate.
linklinkPermanent link to the posting on weworkremotely.com.
guidtextWWR's own posting identifier — stable, and what deduplication keys on.
logoUrlimageCompany logo image URL, when WWR includes one.
descriptiontextThe full posting text, as plain text — HTML stripped, entities decoded, headquarters line and apply-link paragraph removed.
descriptionSnippettextThe first ~320 characters of description, cut at a word boundary.
scrapedAtdate (ISO)When this actor fetched the row.

A category that isn't recognised comes back as a single found: false row naming the categories that are, and is never charged.

Pricing

  • Job posting returned: $1 per 1,000 job postings

Plus a $0.00005 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.

You're charged per posting returned, not per category — a category that returns 12 postings costs twelve, a category that returns none costs nothing, and an unrecognised category line costs nothing. Because you pay per posting, "Most postings to return per category" is your budget control.

How to use

  1. In the Apify Console. Open the actor page and click Start — the categories field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~weworkremotely-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"categories":["programming","design","customer-support"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

One category per line — programming, full-stack-programming, front-end-programming, back-end-programming, devops-sysadmin, design, customer-support, sales-and-marketing, product, management-and-finance, all-other, or all (also what a blank line means). Common shorthand works too — devops, frontend, sales, support all resolve to the right feed.

🎯 Narrow the results — applied here, to the postings after they arrive, since WWR's RSS has no query parameters of its own to filter by:

InputWhat it does
maxJobsPerQueryMost postings to return per category. Default 200.
titleKeywordsKeep only titles containing one of these — ["engineer","designer"].
excludeTitleKeywordsDrop titles containing one of these — ["intern","senior"]. Applied after the include list.
companyKeywordsKeep only postings from companies whose name contains one of these.
regionKeywordsKeep only postings whose region contains one of these — e.g. ["USA"], ["Europe"].
skipDuplicateJobsOn by default. Each posting is returned, and billed, once per run even if two category lines overlap.

Input

{
"categories": [
"programming",
"design",
"customer-support"
]
}

One category per line — e.g. "programming", "design", "customer-support", "sales-and-marketing". Leave a line blank, or write "all", for the combined feed of every category. Accepted formats: programming, design, all.

Output

queryfoundstatuscategoryQueriedcategoryLabeljobCounttruncatedjobstitlecompanyNamecategoryregioncountrystateskillstypeheadquarterspostedAtlinkguidlogoUrldescriptiondescriptionSnippetscrapedAt
programmingtrueOKprogrammingProgramming (all)25false<all postings found (full list)>Python Backend Development Talent with RAG and Agentic AI ExperienceToptalFull-Stack ProgrammingAsia Only[]2026-08-12T18:38:32.000Zhttps://weworkremotely.com/remote-jobs/toptal-python-backend-development-talent-with-rag-and-agentic-ai-experiencehttps://weworkremotely.com/remote-jobs/toptal-python-backend-development-talent-with-rag-and-agentic-ai-experienceHeadquarters:

Summary: We are seeking an experienced Python Backend Developer to design, build, and deploy scalable AI-powered applications using Retrieval-Augmented Generation, large language models, and agentic AI frameworks. The role will focus on delivering a production-grade RAG system and AI chatbot that can securely integrate with enterprise data, APIs, databases, and cloud services. General information: The organization is developing an AI-powered platform and requires an experienced individual contributor to build its RAG architecture and conversational AI capabilities. The developer will work closely with a distributed team and should be available for several hours of overlap with US working hours. The project involves designing AI systems that go beyond basic prompt engineering, including multi-step workflows, autonomous agents, vector search, knowledge retrieval, memory management, and tool integration. The solution must be scalable, secure, observable, and suitable for production use. The technology environment includes Python, FastAPI, large language models, LangGraph, LangChain, vector databases, Azure AI services, AWS, Docker, Kubernetes, and microservice-based architectures. Task and deliverables: Design the end-to-end architecture for a scalable RAG system and AI chatbot. Develop Python backend services, REST APIs, and microservices using FastAPI or similar frameworks. Build document ingestion, chunking, embedding, indexing, retrieval, and reranking pipelines. Implement vector search solutions using Azure AI Search or comparable vector databases. Design autonomous AI agents capable of planning, reasoning, tool usage, and decision-making. Develop multi-step AI workflows using LangGraph, LangChain, CrewAI, AutoGen, or similar orchestration frameworks. Integrate commercial and open-source LLMs, including Azure OpenAI, OpenAI, Anthropic Claude, Gemini, and comparable models. Implement conversation memory, session management, context management, and agent collaboration patterns. Connect AI workflows with APIs, databases, enterprise systems, and external tools. Develop asynchronous, high-performance services capable of handling concurrent AI workloads. Implement prompt management, structured outputs, guardrails, fallback logic, and model evaluation processes. Establish logging, monitoring, tracing, observability, security, and error-handling standards. Containerize and deploy AI services using Docker, Kubernetes, Azure, or AWS. Translate business requirements into technical designs, delivery milestones, and production-ready AI solutions. Collaborate with the wider team while independently owning architecture and implementation decisions. Required experience: Required: 8 or more years of professional Python backend development experience. Required: Strong experience designing REST APIs, microservices, asynchronous services, and distributed backend systems. Required: Hands-on experience building production-grade RAG applications. Required: Strong understanding of embeddings, document chunking, semantic search, vector indexing, retrieval strategies, and reranking. Required: Hands-on experience developing AI agents and multi-step LLM workflows. Required: Experience with agentic AI frameworks such as LangGraph, LangChain, CrewAI, AutoGen, or comparable platforms. Required: Experience integrating LLMs through OpenAI, Azure OpenAI, Anthropic Claude, Gemini, or open-source model APIs. Required: Ability to design AI architecture beyond basic prompt engineering. Required: Experience integrating AI applications with APIs, databases, data pipelines, and enterprise systems. Required: Experience implementing security, monitoring, logging, tracing, and observability for production services. Required: Experience deploying containerized applications using Docker and cloud platforms such as Azure or AWS. Required: Ability to independently translate business requirements into scalable technical solutions. Required: Strong communication and collaboration skills in a distributed working environment. Required: Availability for several hours of overlap with US working hours. | Headquarters: Summary: We are seeking an experienced Python Backend Developer to design, build, and deploy scalable AI-powered applications using Retrieval-Augmented Generation, large language models, and agentic AI frameworks. The role will focus on delivering a production-grade RAG system and AI chatbot that can… | 2026-08-31T06:01:15.184Z |

A miss comes back as a row with "found": false and is never charged.

This actor reads public data only — We Work Remotely's own published RSS feeds, the same ones any browser, RSS reader, or search engine can request without an account. It does not log in, does not accept or store any WWR credential, and has no input field in which you could give it one.

It reads no private data — only what a hiring company chose to publish in its own job posting: the role, the company, the region, and the posting text. It does not collect names, email addresses, or contact details of individuals. You are responsible for how you use the results; check We Work Remotely's own terms before putting heavy, scheduled use of this actor into production.

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~weworkremotely-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"categories":["programming","design","customer-support"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~weworkremotely-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"categories":["programming","design","customer-support"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~weworkremotely-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"categories":["{{category}}"]}, mapping the row's category into the categories array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "We Work Remotely Jobs Lookup | Apify" — the agent will find and run this actor.