### Example: Get Available Industries Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example using curl to fetch the list of available job industries. ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=industries" ``` -------------------------------- ### Example: Get Available Locations Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example using curl to fetch the list of available geographic locations. ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=locations" ``` -------------------------------- ### Example: Get Remote Jobs with Filters Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example using curl to fetch 20 jobs from the USA in the development industry. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa&industry=dev" ``` -------------------------------- ### Request Example: Get Latest Jobs Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example using curl to fetch the maximum number of latest jobs. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=50" ``` -------------------------------- ### Example 2: Get Customer Support Jobs Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Example of how to retrieve customer support job listings using the HTTP API. ```APIDOC ### Example 2: Get Customer Support Jobs ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=20&industry=supporting" ``` Expected: Returns up to 20 customer support job listings from all regions. ``` -------------------------------- ### Request Example: Keyword Search Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example using curl to find 25 jobs related to 'python'. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=25&tag=python" ``` -------------------------------- ### API Query Parameters Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/README.md Example demonstrating how to use query parameters to filter job listings by count, region, industry, and keywords. ```http https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa&industry=marketing&tag=seo ``` -------------------------------- ### Example 3: Full-time Marketing Jobs from Europe (RSS Feed) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Example of how to request an RSS feed for full-time marketing jobs from Europe. ```APIDOC ### Example 3: Full-time Marketing Jobs from Europe ```bash curl "https://jobicy.com/?feed=job_feed&job_categories=marketing&job_types=full-time&search_region=Europe" ``` Expected: Returns RSS feed with full-time marketing jobs from Europe region. ``` -------------------------------- ### Request Headers Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example of standard request headers for an API call. ```http GET /api/v2/remote-jobs HTTP/1.1 Host: jobicy.com ``` -------------------------------- ### Example Remote Job Listing Response Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md This is an example of the JSON response structure for a single remote job listing. ```json [ { "id": "123456", "url": "https://jobicy.com/job/senior-python-developer", "jobTitle": "Senior Python Developer", "companyName": "Tech Company Inc", "companyLogo": "https://example.com/logo.png", "jobIndustry": "dev", "jobType": "full-time", "jobGeo": "usa", "jobLevel": "senior", "jobExcerpt": "Build scalable Python applications...", "jobDescription": "

Build scalable Python applications...

", "pubDate": "2026-05-28T10:30:00Z", "annualSalaryMin": 120000, "annualSalaryMax": 180000, "salaryCurrency": "USD" } ] ``` -------------------------------- ### Python Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Example of fetching and processing remote job listings using the requests library in Python. ```APIDOC ## Integration Examples - Python ### Description Example of fetching and processing remote job listings using the requests library in Python. ### Method GET ### Endpoint `/api/v2/remote-jobs` ### Request Example ```python import requests # Fetch job listings response = requests.get( 'https://jobicy.com/api/v2/remote-jobs', params={ 'count': 20, 'geo': 'usa', 'industry': 'dev', 'tag': 'python' } ) jobs = response.json() for job in jobs: print(f"{job['jobTitle']} at {job['companyName']}") ``` ``` -------------------------------- ### Example 1: Search Python Developer Jobs in USA Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Example of how to search for Python Developer jobs in the USA using the HTTP API. ```APIDOC ### Example 1: Search Python Developer Jobs in USA ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=30&geo=usa&tag=python" ``` Expected: Returns up to 30 job listings from USA containing "python" in title or description. ``` -------------------------------- ### Query Parameter Example: Multiple Filters Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example of query parameters to filter jobs by count, industry, geography, and keyword. ```text ?count=30&industry=marketing&geo=canada&tag=social ``` -------------------------------- ### Fetch Job Listings Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/DELIVERABLES.md Example of fetching all remote job listings using the API. ```http GET /api/v2/remote-jobs ``` -------------------------------- ### Fetch Jobs (cURL) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Example of fetching remote jobs using cURL. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=20" ``` -------------------------------- ### Example 4: Entry-level Developer Opportunities Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Guidance on finding entry-level developer jobs by using the HTTP API and client-side filtering. ```APIDOC ### Example 4: Entry-level Developer Opportunities Use the HTTP API with developer filter, then filter client-side by jobLevel value "entry" or "junior". ``` -------------------------------- ### Query Parameter Example: Single Filter Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example of query parameters to filter jobs by count and geography. ```text ?count=20&geo=usa ``` -------------------------------- ### JavaScript/Node.js (fetch) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Example of fetching and processing remote job listings using the fetch API in JavaScript/Node.js. ```APIDOC ## Integration Examples - JavaScript/Node.js (fetch) ### Description Example of fetching and processing remote job listings using the fetch API in JavaScript/Node.js. ### Method GET ### Endpoint `/api/v2/remote-jobs` ### Request Example ```javascript // Fetch job listings fetch('https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa') .then(response => response.json()) .then(jobs => { jobs.forEach(job => { console.log(`${job.jobTitle} at ${job.companyName}`); }); }) .catch(error => console.error('API Error:', error)); ``` ``` -------------------------------- ### RSS Feed Example Query String Source: https://github.com/jobicy/remote-jobs-api/blob/main/README.md Example query string to fetch full-time Customer Service jobs in the U.S. region using the RSS feed. ```http https://jobicy.com/?feed=job_feed&job_categories=supporting&job_types=full-time&search_region=USA ``` -------------------------------- ### Fetch Regions Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/DELIVERABLES.md Example of fetching available regions for job listings. ```http GET /api/v2/remote-jobs?get=locations ``` -------------------------------- ### Common Query Parameter Combinations Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Examples of combining query parameters to filter jobs by count, location, and tags. ```Shell # Get 20 Python jobs in USA ?count=20&geo=usa&tag=python # Get 15 full-time dev jobs ?count=15&industry=dev # Get marketing jobs from Canada ?count=20&geo=canada&industry=marketing # Get 10 senior-level jobs # (No direct filter, check jobLevel field in response) ?count=50 # Then filter by jobLevel ``` -------------------------------- ### Error Response Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Example of an error response when the rate limit is exceeded. ```json { "error": "Rate limit exceeded", "message": "Too many requests from this IP address", "retryAfter": 3600 } ``` -------------------------------- ### Filter Jobs by Experience Level Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Examples of filtering jobs for senior/lead positions and entry-level opportunities. ```python # Filter for senior positions senior_jobs = [j for j in jobs if j['jobLevel'] in ['senior', 'lead']] # Filter for entry-level opportunities entry_level = [j for j in jobs if j['jobLevel'] == 'entry'] ``` -------------------------------- ### Fetch Industries Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/DELIVERABLES.md Example of fetching available industries for job listings. ```http GET /api/v2/remote-jobs?get=industries ``` -------------------------------- ### HTTP API Response Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md This is an example of the JSON structure returned by the HTTP API for job listings. It includes details such as job ID, title, company, location, and salary information. ```json [ { "id": "unique-id", "url": "https://jobicy.com/job/...", "jobTitle": "Job Title", "companyName": "Company Name", "companyLogo": "https://...", "jobIndustry": "category", "jobType": "full-time", "jobGeo": "region", "jobLevel": "senior", "jobExcerpt": "Brief description...", "jobDescription": "

Full HTML description

", "pubDate": "2026-05-28T10:30:00Z", "annualSalaryMin": 120000, "annualSalaryMax": 180000, "salaryCurrency": "USD" } ] ``` -------------------------------- ### HTTP Client (curl) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Examples of how to fetch remote job listings using curl, including basic requests and requests with various filters. ```APIDOC ## Integration Examples - HTTP Client (curl) ### Description Examples of how to fetch remote job listings using curl, including basic requests and requests with various filters. ### Method GET ### Endpoint `/api/v2/remote-jobs` ### Request Example ```bash # Basic request curl "https://jobicy.com/api/v2/remote-jobs" # With filters curl "https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa&industry=dev&tag=javascript" ``` ``` -------------------------------- ### Fetch Jobs (Python) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Example of fetching remote jobs using the requests library in Python and printing job titles. ```python import requests jobs = requests.get( 'https://jobicy.com/api/v2/remote-jobs?count=20' ).json() for job in jobs: print(job['jobTitle']) ``` -------------------------------- ### RSS Feed Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/DELIVERABLES.md Example of accessing the job feed in RSS format. ```http /?feed=job_feed ``` -------------------------------- ### Fetch Jobs (JavaScript) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Example of fetching remote jobs using the Fetch API in JavaScript and logging job titles. ```javascript const response = await fetch( 'https://jobicy.com/api/v2/remote-jobs?count=20' ); const jobs = await response.json(); jobs.forEach(job => console.log(job.jobTitle)); ``` -------------------------------- ### Safely Access and Format Minimum Annual Salary Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Python examples demonstrating how to safely access the 'annualSalaryMin' field, handle its absence, and format it for display. ```python # Safe salary access if 'annualSalaryMin' in job and job['annualSalaryMin']: salary_min = job['annualSalaryMin'] else: salary_min = None # Using .get() salary_min = job.get('annualSalaryMin') # Format for display if salary_min: print(f"Minimum salary: ${salary_min:,}") ``` -------------------------------- ### Render Job Description as HTML Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Examples of how to render HTML job descriptions in different JavaScript frameworks. Ensure proper sanitization to prevent XSS attacks. ```javascript // React - render as HTML
``` ```html // Vue
``` ```javascript // Plain JavaScript document.getElementById('description').innerHTML = job.jobDescription; ``` -------------------------------- ### Minimal Job Object Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md A JSON object representing a minimal job posting, including essential fields like ID, title, company information, and publication date. ```json { "id": "12345", "url": "https://jobicy.com/job/example-position", "jobTitle": "Software Developer", "companyName": "Tech Company", "companyLogo": "https://example.com/logo.png", "jobIndustry": "dev", "jobType": "full-time", "jobGeo": "usa", "jobLevel": "mid-level", "jobExcerpt": "Build modern web applications...", "jobDescription": "

Build modern web applications...

", "pubDate": "2026-05-28T10:30:00Z" } ``` -------------------------------- ### Parse and Format ISO 8601 Publication Date Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Examples for parsing ISO 8601 formatted publication dates in Python and JavaScript, and how to format them for display. ```python from datetime import datetime # Parse ISO 8601 pub_date = datetime.fromisoformat( job['pubDate'].replace('Z', '+00:00') ) # Display formatted date print(pub_date.strftime('%B %d, %Y')) # May 28, 2026 ``` ```javascript // JavaScript const pubDate = new Date(job.pubDate); console.log(pubDate.toLocaleDateString()); ``` -------------------------------- ### Set Environment Variables (Bash) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/configuration-and-compliance.md Example of setting environment variables in bash for API configuration. These variables can be used by applications to dynamically configure connection details. ```bash # Example environment variables export JOBICY_API_URL="https://jobicy.com/api/v2" export JOBICY_POLL_INTERVAL=3600 # seconds export JOBICY_REQUEST_TIMEOUT=30 # seconds ``` -------------------------------- ### Safely Get Salary with .get() Method Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/faq-and-troubleshooting.md Use the .get() dictionary method to retrieve salary values, returning None if the key is absent. Provides a concise way to handle missing data. ```python salary_min = job.get('annualSalaryMin') salary_max = job.get('annualSalaryMax') if salary_min and salary_max: print(f"${salary_min:,}-${salary_max:,}") ``` -------------------------------- ### Display and Search Job Title Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md JavaScript examples for displaying a job title and searching for jobs containing specific keywords in their titles. ```javascript // Display job title console.log(`Position: ${job.jobTitle}`); // Search by title if (job.jobTitle.toLowerCase().includes('python')) { console.log("Python job found"); } ``` -------------------------------- ### Example HTML for Jobicy Attribution Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/configuration-and-compliance.md Demonstrates how to include Jobicy attribution in HTML when displaying job listings. This includes a company logo placeholder and a footer link. ```html

{{ job.jobTitle }}

{{ job.companyName }}

View on Jobicy

Jobs provided by Jobicy.com

``` -------------------------------- ### Sort and Filter Jobs by Publication Date Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Python examples for sorting a list of jobs by their publication date and filtering for jobs published within the last 24 hours. ```python # Sort jobs by publication date (newest first) sorted_jobs = sorted( jobs, key=lambda j: j['pubDate'], reverse=True ) ``` ```python # Find jobs from last 24 hours from datetime import datetime, timedelta cutoff = datetime.utcnow() - timedelta(hours=24) recent_jobs = [ j for j in jobs if datetime.fromisoformat(j['pubDate'].replace('Z', '+00:00')) > cutoff ] ``` -------------------------------- ### Check if Job Exists in Database Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Example of how to check if a job with a specific ID already exists in a database using Python. ```python # Check if job is already in database if Job.objects.filter(jobicy_id=job['id']).exists(): print("Job already exists") ``` -------------------------------- ### RSS Feed Parsing (Python) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Example of parsing the remote jobs RSS feed using the feedparser library in Python. ```APIDOC ## Integration Examples - RSS Feed Parsing (Python) ### Description Example of parsing the remote jobs RSS feed using the feedparser library in Python. ### Method GET ### Endpoint `/?feed=job_feed` ### Request Example ```python import feedparser # Parse RSS feed feed = feedparser.parse('https://jobicy.com/?feed=job_feed&job_categories=dev&job_types=full-time') for entry in feed.entries: print(f"{entry.title}") print(f"{entry.link}") print(f"{entry.published}") ``` ``` -------------------------------- ### Get Customer Support Jobs Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Retrieves up to 20 customer support job listings from all regions using the HTTP API, filtered by industry. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=20&industry=supporting" ``` -------------------------------- ### RSS Feed XML Structure Example Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Illustrates the structure of the XML response for the RSS feed. Each item represents a job listing with its details. ```xml Jobicy - Remote Jobs https://jobicy.com Remote job listings from Jobicy Senior Python Developer https://jobicy.com/job/senior-python-developer Build scalable Python applications... Wed, 28 May 2026 10:30:00 +0000 https://jobicy.com/job/senior-python-developer ``` -------------------------------- ### Search RSS Feed by Keywords Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Searches the RSS feed for job listings containing specific keywords in their title or description. This example searches for 'designer' jobs. ```bash curl "https://jobicy.com/?feed=job_feed&search_keywords=designer" ``` -------------------------------- ### Get Remote Jobs with Filters Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Use this endpoint to retrieve remote job listings. You can filter results by count, geographic region, industry, and keywords. ```bash # Get 20 latest jobs with "Python" keyword curl "https://jobicy.com/api/v2/remote-jobs?count=20&tag=python" ``` ```bash # Get 15 latest jobs from Canada curl "https://jobicy.com/api/v2/remote-jobs?count=15&geo=canada" ``` ```bash # Get 30 latest Copywriting jobs from USA curl "https://jobicy.com/api/v2/remote-jobs?count=30&geo=usa&industry=copywriting" ``` ```bash # Get 10 latest Customer Support jobs from any region curl "https://jobicy.com/api/v2/remote-jobs?count=10&industry=supporting" ``` -------------------------------- ### Make Filtered API Request with curl Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Fetches remote job listings with specific filters applied. This example requests 20 jobs from the USA in the development industry tagged with JavaScript. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa&industry=dev&tag=javascript" ``` -------------------------------- ### Display Salary Range in HTML Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md An example of how to display the salary range in an HTML template using Jinja2 syntax. It checks for the presence of 'annualSalaryMin' before rendering the salary information. ```html {% if job.annualSalaryMin %}

Salary: {{ job.annualSalaryMin|intcomma }} - {{ job.annualSalaryMax|intcomma }} {{ job.salaryCurrency }}

{% endif %} ``` -------------------------------- ### Filter RSS Feed by Category, Type, and Region Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Filters the RSS feed to get specific job listings. This example requests 20 full-time customer support jobs from the USA. ```bash curl "https://jobicy.com/?feed=job_feed&job_categories=supporting&job_types=full-time&search_region=USA" ``` -------------------------------- ### cURL Request to Extract Job Titles Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/integration-guide.md This example fetches 10 remote jobs and uses `jq` to extract only the `jobTitle` field from each job object in the response array. This is useful for quickly getting a list of job titles. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=10" | \ jq '.[] | .jobTitle' ``` -------------------------------- ### Filter RSS Feed by Category, Type, Region, and Post Count Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Retrieves a filtered RSS feed with a specified number of posts. This example gets all full-time developer jobs in Europe, limited to 20 posts per page. ```bash curl "https://jobicy.com/?feed=job_feed&job_categories=dev&job_types=full-time&search_region=Europe&posts_per_page=20" ``` -------------------------------- ### Fetch and Process Remote Jobs using Go Client Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/integration-guide.md Demonstrates how to use a custom Go client to fetch remote job listings. This includes defining a struct for job data, making HTTP requests, handling API responses, and parsing JSON data. ```go package main import ( "encoding/json" "fmt" "io" "net/http" "time" ) type RemoteJob struct { ID string `json:"id"` URL string `json:"url"` JobTitle string `json:"jobTitle"` CompanyName string `json:"companyName"` CompanyLogo string `json:"companyLogo"` JobIndustry string `json:"jobIndustry"` JobType string `json:"jobType"` JobGeo string `json:"jobGeo"` JobLevel string `json:"jobLevel"` JobExcerpt string `json:"jobExcerpt"` JobDescription string `json:"jobDescription"` PubDate string `json:"pubDate"` AnnualSalaryMin *int `json:"annualSalaryMin"` AnnualSalaryMax *int `json:"annualSalaryMax"` SalaryCurrency *string `json:"salaryCurrency"` } type JobicyClient struct { httpClient *http.Client baseURL string } func NewJobicyClient() *JobicyClient { return &JobicyClient{ httpClient: &http.Client{Timeout: 30 * time.Second}, baseURL: "https://jobicy.com/api/v2", } } func (c *JobicyClient) GetJobs(count int, geo string, industry string) ([]RemoteJob, error) { url := fmt.Sprintf("%s/remote-jobs?count=%d", c.baseURL, count) if geo != "" { url += fmt.Sprintf("&geo=%s", geo) } if industry != "" { url += fmt.Sprintf("&industry=%s", industry) } resp, err := c.httpClient.Get(url) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode == http.StatusTooManyRequests { return nil, fmt.Errorf("rate limited") } if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("API returned status %d", resp.StatusCode) } body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } var jobs []RemoteJob if err := json.Unmarshal(body, &jobs); err != nil { return nil, err } return jobs, nil } func main() { client := NewJobicyClient() jobs, err := client.GetJobs(20, "usa", "dev") if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) } for _, job := range jobs { fmt.Printf("Position: %s\n", job.JobTitle) fmt.Printf("Company: %s\n", job.CompanyName) fmt.Printf("Type: %s\n", job.JobType) fmt.Printf("Level: %s\n", job.JobLevel) if job.AnnualSalaryMin != nil && job.AnnualSalaryMax != nil { fmt.Printf("Salary: $%d-$%d %s\n", *job.AnnualSalaryMin, *job.AnnualSalaryMax, *job.SalaryCurrency) } fmt.Println("---") } } ``` -------------------------------- ### Fetch Jobs with Dataclass for Type Safety (Python) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/integration-guide.md This example demonstrates fetching jobs and parsing them into a `RemoteJob` dataclass for improved type safety and easier data access. It includes methods for salary range and formatted publication date. ```python from dataclasses import dataclass from typing import Optional from datetime import datetime import requests @dataclass class RemoteJob: id: str url: str jobTitle: str companyName: str companyLogo: str jobIndustry: str jobType: str jobGeo: str jobLevel: str jobExcerpt: str jobDescription: str pubDate: str annualSalaryMin: Optional[int] = None annualSalaryMax: Optional[int] = None salaryCurrency: Optional[str] = None def get_salary_range(self) -> Optional[str]: if self.annualSalaryMin and self.annualSalaryMax: return (f"${self.annualSalaryMin:,}-${self.annualSalaryMax:,} " f"{self.salaryCurrency}") return None def published_date(self) -> datetime: return datetime.fromisoformat(self.pubDate.replace('Z', '+00:00')) def fetch_jobs(count=20, **filters) -> list[RemoteJob]: """Fetch jobs and convert to RemoteJob dataclass instances.""" response = requests.get( 'https://jobicy.com/api/v2/remote-jobs', params={'count': count, **filters} ) response.raise_for_status() return [RemoteJob(**job_data) for job_data in response.json()] # Usage jobs = fetch_jobs(count=10, geo='usa', industry='dev') for job in jobs: print(f"{job.jobTitle} at {job.companyName}") if salary := job.get_salary_range(): print(f" Salary: {salary}") print(f" Posted: {job.published_date().strftime('%Y-%m-%d')}") ``` -------------------------------- ### Read Environment Variables (Python) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/configuration-and-compliance.md Demonstrates how to read environment variables in Python, providing default values if the variables are not set. This allows for flexible application configuration. ```python import os API_URL = os.getenv('JOBICY_API_URL', 'https://jobicy.com/api/v2') POLL_INTERVAL = int(os.getenv('JOBICY_POLL_INTERVAL', '3600')) TIMEOUT = int(os.getenv('JOBICY_REQUEST_TIMEOUT', '30')) ``` -------------------------------- ### Process API Results as Streams in Python Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/faq-and-troubleshooting.md This Python example contrasts inefficiently loading all API results into memory versus processing them iteratively as a stream. It demonstrates a memory-efficient approach for handling large datasets. ```python # Instead of storing all jobs in memory jobs = api.get_jobs(count=50) all_jobs = [] for job in jobs: all_jobs.append(job) # Bad - stores everything # Better - process as you go for job in api.get_jobs(count=50): process_job(job) # Process and discard ``` -------------------------------- ### Filter Jobs by Job Industry Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Example of filtering a list of jobs based on the 'jobIndustry' field. ```python dev_jobs = [j for j in jobs if j['jobIndustry'] == 'dev'] ``` -------------------------------- ### Get Available Job Industries Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Retrieves a list of all available industry categories for job filtering. ```APIDOC ## GET /api/v2/remote-jobs?get=industries ### Description Retrieves a list of available job industry categories for filtering job listings. ### Method GET ### Endpoint /api/v2/remote-jobs ### Parameters #### Query Parameters - **get** (string) - Required - Must be set to `industries` to retrieve the list of industries. ### Request Example ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=industries" ``` ### Response #### Success Response (200) - A JSON array of strings, where each string is an available job industry category. #### Response Example ```json ["dev", "marketing", "sales", "design"] ``` ``` -------------------------------- ### Get Available Geographic Regions Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/README.md Retrieves a list of all available geographic regions for job filtering. ```APIDOC ## GET /api/v2/remote-jobs?get=locations ### Description Retrieves a list of available geographic regions for filtering job listings. ### Method GET ### Endpoint /api/v2/remote-jobs ### Parameters #### Query Parameters - **get** (string) - Required - Must be set to `locations` to retrieve the list of regions. ### Request Example ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=locations" ``` ### Response #### Success Response (200) - A JSON array of strings, where each string is an available geographic region. #### Response Example ```json ["usa", "canada", "europe", "asia"] ``` ``` -------------------------------- ### Get Locations Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Retrieves a list of available geographic regions that can be used as filters for job searches. ```APIDOC ## GET /remote-jobs?get=locations ### Description Retrieves a list of available geographic regions that can be used as filters for job searches. ### Method GET ### Endpoint https://jobicy.com/api/v2/remote-jobs?get=locations ### Response #### Success Response (200) Returns a JSON array of available geographic region slugs. ``` -------------------------------- ### Get Available Industries Endpoint Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Endpoint to retrieve a list of all available job industries for filtering. ```http GET https://jobicy.com/api/v2/remote-jobs?get=industries ``` -------------------------------- ### Fetch Job Listings with Python Requests Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/integration-guide.md Use the Python 'requests' library to fetch remote job listings. Demonstrates setting query parameters and handling HTTP status codes, including rate limiting. ```python import requests # Fetch jobs response = requests.get( 'https://jobicy.com/api/v2/remote-jobs', params={ 'count': 20, 'geo': 'usa', 'industry': 'dev', 'tag': 'python' } ) if response.status_code == 200: jobs = response.json() for job in jobs: print(f"{job['jobTitle']} at {job['companyName']}") print(f"Level: {job['jobLevel']}") print(f"Type: {job['jobType']}") print('---') elif response.status_code == 429: print("Rate limited. Wait before retrying.") else: print(f"Error: {response.status_code}") ``` -------------------------------- ### Get Industries Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Retrieves a list of available job industry categories that can be used as filters for job searches. ```APIDOC ## GET /remote-jobs?get=industries ### Description Retrieves a list of available job industry categories that can be used as filters for job searches. ### Method GET ### Endpoint https://jobicy.com/api/v2/remote-jobs?get=industries ### Response #### Success Response (200) Returns a JSON array of available job industry slugs. ``` -------------------------------- ### Get Remote Jobs Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Fetches a list of remote jobs with specified filters for count, region, and industry. ```HTTP GET https://jobicy.com/api/v2/remote-jobs?count=20&geo=usa&industry=dev ``` -------------------------------- ### Get Available Industries Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Retrieves a list of all available job industries/categories that can be used for filtering job listings. ```APIDOC ## GET /remote-jobs?get=industries ### Description Retrieves the list of job industries/categories available for filtering. ### Method GET ### Endpoint https://jobicy.com/api/v2/remote-jobs?get=industries ### Response #### Success Response (200) Returns a list of valid industry category identifiers that can be used with the `industry` parameter. ### Request Example ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=industries" ``` ``` -------------------------------- ### Get Available Locations Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Retrieves a list of all available geographic regions that can be used for filtering job listings. ```APIDOC ## GET /remote-jobs?get=locations ### Description Retrieves the list of geographic regions available for filtering. ### Method GET ### Endpoint https://jobicy.com/api/v2/remote-jobs?get=locations ### Response #### Success Response (200) Returns a list of valid geographic region identifiers that can be used with the `geo` parameter. ### Request Example ```bash curl "https://jobicy.com/api/v2/remote-jobs?get=locations" ``` ``` -------------------------------- ### Define API Request Parameters in Python Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/faq-and-troubleshooting.md Illustrates correct and incorrect ways to define parameters for API requests. Highlights the importance of correct spelling. ```python # Correct params = {'count': 20, 'geo': 'usa', 'industry': 'dev'} # Incorrect (typo) params = {'count': 20, 'geo': 'usa', 'industrt': 'dev'} # Wrong! ``` -------------------------------- ### Get Available Locations Endpoint Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/overview.md Endpoint to retrieve a list of all available geographic regions for job filtering. ```http GET https://jobicy.com/api/v2/remote-jobs?get=locations ``` -------------------------------- ### API Call: Get Jobs from Canada Source: https://github.com/jobicy/remote-jobs-api/blob/main/README.md Retrieve the 15 latest remote jobs specifically from Canada. ```http https://jobicy.com/api/v2/remote-jobs?count=15&geo=canada ``` -------------------------------- ### Display Job Excerpt in List View Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/data-schema-reference.md Illustrates how to display a job's excerpt in an HTML list item, including a 'Read more' link. ```html

{{ job.jobTitle }}

{{ job.jobExcerpt }}

Read more
``` -------------------------------- ### Direct API Calls (Single-Service Pattern) Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/best-practices.md Make API calls directly from your application. Suitable for small to medium applications with low traffic. Be mindful of rate limits. ```python import requests # Simple pattern - direct API calls def get_jobs(count=20, **filters): response = requests.get( 'https://jobicy.com/api/v2/remote-jobs', params={'count': count, **filters}, timeout=30 ) return response.json() ``` -------------------------------- ### API Call: Get Python Jobs Source: https://github.com/jobicy/remote-jobs-api/blob/main/README.md Retrieve the 20 latest remote jobs with the keyword 'Python' from any region. ```http https://jobicy.com/api/v2/remote-jobs?count=20&tag=python ``` -------------------------------- ### Get Default RSS Feed Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/endpoints.md Retrieves the default RSS feed of remote job listings. This is the most basic request to the feed. ```bash curl "https://jobicy.com/?feed=job_feed" ``` -------------------------------- ### cURL Request with Pretty-Printed JSON Output Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/integration-guide.md This command fetches 5 remote jobs and pipes the output to `jq '.'` for pretty-printed JSON formatting. This is useful for easily reading the API response structure. ```bash curl "https://jobicy.com/api/v2/remote-jobs?count=5" | jq '.' ``` -------------------------------- ### Development Environment Configuration Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/api-reference/configuration-and-compliance.md Configuration settings for the development environment, including API URL, timeouts, and cache TTL. ```python API_URL = "https://jobicy.com/api/v2" TIMEOUT = 30 POLL_INTERVAL = 3600 # 1 hour CACHE_TTL = 300 # 5 minutes (shorter for dev) LOG_LEVEL = "DEBUG" ``` -------------------------------- ### Get RSS Feed Source: https://github.com/jobicy/remote-jobs-api/blob/main/_autodocs/quick-reference.md Generates an RSS 2.0 XML feed of remote jobs based on specified categories and types. ```HTTP GET https://jobicy.com/?feed=job_feed&job_categories=dev&job_types=full-time ``` -------------------------------- ### API Call: Get Copywriting Jobs from USA Source: https://github.com/jobicy/remote-jobs-api/blob/main/README.md Retrieve 30 latest remote jobs in the Copywriting category from the USA. ```http https://jobicy.com/api/v2/remote-jobs?count=30&geo=usa&industry=copywriting ```