OnNetPulse APIonnetpulse.com ↗
Retrieve job application details from OnNetPulse listings: apply links, emails, deadlines, age requirements, and how-to-apply instructions via one endpoint.
What is the OnNetPulse API?
The OnNetPulse API exposes 1 endpoint — get_job_application_details — that returns 10 structured fields from a single OnNetPulse job listing page. Given a job slug, it resolves the canonical job URL, application method, apply link (mailto or external URL), expiry date, and the listing's own 'How to Apply' instructions, giving you machine-readable access to everything a candidate needs to apply.
curl -X GET 'https://api.parse.bot/scraper/be14d414-57c3-4442-9625-fd81263fc1a0/get_job_application_details?job_slug=get-healthy-and-fit-social-media-content-creator-assistant' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace onnetpulse-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: OnNetPulse Job Application Details — fetch how to apply for a listing."""
from parse_apis.onnetpulse_com_api import OnNetPulse, JobNotFound
client = OnNetPulse()
# Look up application details for a known job listing by its URL slug.
try:
app = client.job_applications.get(
job_slug="get-healthy-and-fit-social-media-content-creator-assistant",
)
except JobNotFound as e:
print("Job not found:", e.message)
else:
print(f"{app.title} at {app.company}")
print(f" Status: {app.status}")
print(f" Method: {app.application_method} — {app.application_button_label}")
print(f" Link: {app.application_link}")
if app.application_emails:
print(f" Email: {app.application_emails[0]}")
if app.how_to_apply_text is not None:
print(f" How to apply: {app.how_to_apply_text[:120]}…")
print(f" Posted: {app.posted_label} Valid through: {app.listing_valid_through}")
print("exercised: job_applications.get")
Returns the application details stated on one OnNetPulse job page, identified by its slug (the last path segment of the job URL). One page fetch per call. application_method is the site's own code for the apply button: EMAIL (application_link is a mailto: link, and the address is also listed in application_emails) or EXTERNAL (application_link is the employer's own careers/form URL, echoed in application_form_url). application_form_url is null when the job applies by email and the description names no URL. expiry_date_label is the site's 'Expiry date' field as shown (often 'Not specified'); expiry_date_stated is that value only when a real date is given, otherwise null. listing_valid_through is the listing's structured validThrough timestamp, which the site sets automatically and is not an employer-stated deadline. deadline_statements and age_requirement_statements are verbatim sentence fragments from the job description matching deadline or age wording; both are empty arrays when the description states nothing. how_to_apply_text is the text under the description's 'How to Apply' heading, null when the description has no such section. Fields that the page does not state are null or empty, never invented. A slug with no job page returns a stale_input (input_not_found) error.
| Param | Type | Description |
|---|---|---|
| job_slugrequired | string | Job page slug: the lowercase hyphenated last path segment of an OnNetPulse job URL, e.g. get-healthy-and-fit-social-media-content-creator-assistant. |
{
"type": "object",
"fields": {
"title": "job title",
"status": "site status badge text (e.g. Active)",
"company": "hiring organization name",
"job_url": "canonical OnNetPulse job page URL",
"job_slug": "the slug that was requested",
"date_posted": "ISO 8601 posting timestamp from structured data",
"posted_label": "posted date as displayed on the page",
"application_link": "exact href of the apply button (mailto: link or external URL); null if absent",
"expiry_date_label": "the page's Expiry date field text as shown",
"how_to_apply_text": "text of the description's 'How to Apply' section; null when absent",
"application_emails": "array of email addresses found in the apply link or description (deduplicated)",
"application_method": "site's apply-button method code: EMAIL or EXTERNAL; null if the page has no apply button",
"expiry_date_stated": "expiry date when the page states one; null when 'Not specified'",
"deadline_statements": "array of verbatim description fragments mentioning a deadline/closing date; empty when none",
"urls_in_description": "array of http(s) URLs found in the job description",
"application_form_url": "external application URL (apply button target, else first URL in description); null when applying is by email only",
"listing_valid_through": "ISO 8601 validThrough timestamp from the listing's structured data (site-generated, not an employer deadline)",
"application_button_label": "visible apply-button text, e.g. Apply via Email",
"age_requirement_statements": "array of verbatim description fragments stating an age requirement; empty when none"
},
"sample": {
"data": {
"title": "Social Media Content Creator Assistant",
"status": "Active",
"company": "Get Healthy & Fit",
"job_url": "https://onnetpulse.com/jobs/get-healthy-and-fit-social-media-content-creator-assistant",
"job_slug": "get-healthy-and-fit-social-media-content-creator-assistant",
"date_posted": "2026-09-24T11:14:31.219Z",
"posted_label": "Sep 24, 2026",
"application_link": "mailto:[email protected]?subject=Application: Social Media Content Creator Assistant",
"expiry_date_label": "Not specified",
"how_to_apply_text": "Please send one complete application containing:\nYour resume 3 direct, clickable links to Instagram content you personally created: 2 videos/Reels and 1 carousel 3 direct, clickable links to TikTok content you personally created: 2 videos and 1 carousel/photo post One video of no more than 5 minutes answering the following questions: Please introduce yourself and briefly tell us about your experience creating social media content. What do you think makes a piece of social media content engaging and effective? If you were given a healthy lifestyle topic to promote, how would you turn it into engaging Instagram and TikTok content? Sometimes you'll receive detailed content and direction, and other times you may only receive a topic. How would you approach creating content in both situations? Why are you interested in this role, and what do you believe you would bring to it?",
"application_emails": [
"[email protected]"
],
"application_method": "EMAIL",
"expiry_date_stated": null,
"deadline_statements": [],
"urls_in_description": [],
"application_form_url": null,
"listing_valid_through": "2026-12-23T11:14:31.219Z",
"application_button_label": "Apply via Email",
"age_requirement_statements": []
},
"status": "success"
}
}About the OnNetPulse API
What the API Returns
The get_job_application_details endpoint accepts a single required parameter, job_slug, which is the lowercase hyphenated path segment at the end of an OnNetPulse job URL (for example, get-healthy-and-fit-social-media-content-creator-assistant). The response maps directly to what the listing page shows: title, company, status (e.g. "Active"), date_posted in ISO 8601 format, and a human-readable posted_label.
Application-Specific Fields
The fields most relevant to application workflows are application_link, expiry_date_label, and how_to_apply_text. The application_link is the exact href of the site's apply button — either a mailto: address or an external form URL — and is null when no button is present. The expiry_date_label surfaces the deadline text exactly as it appears on the page. The how_to_apply_text returns the free-text instructions from the listing's own 'How to Apply' section, or null if that section is absent.
Slug Construction
Every OnNetPulse job URL follows the pattern https://onnetpulse.com/jobs/{slug}. The job_slug input must match that final segment exactly — casing and hyphens included. The response echoes back both job_slug and job_url so downstream systems can link directly to the source listing without reconstructing the URL.
The OnNetPulse API is a managed, monitored endpoint for onnetpulse.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when onnetpulse.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official onnetpulse.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate OnNetPulse job deadlines into a calendar or reminder system using
expiry_date_label - Build a job alert bot that checks
statusand surfaces only Active listings - Parse
application_linkto determine whether a listing uses email or an external form, and route applicants accordingly - Extract
how_to_apply_textto display application instructions inside a third-party job board - Store
date_postedISO timestamps to track listing freshness in a job aggregation database - Pull
companyandtitlefields to populate structured job records without visiting each listing page
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OnNetPulse have an official developer API?+
What does `application_link` actually contain, and when is it null?+
mailto: URI containing the address. If the listing uses an external form, it is that form's URL. The field is null only when no apply button is present on the page.Can I fetch multiple job listings in a single call or search listings by keyword?+
job_slug. There is no search, browse, or batch endpoint. You can fork the API on Parse and revise it to add a listing-search or multi-slug batch endpoint.Does the API return structured salary, location, or job-type fields from the listing?+
application_link, expiry_date_label, how_to_apply_text — along with title, company, status, and posting date. Salary, location, and employment-type data are not included. You can fork the API on Parse and revise it to add those fields.How fresh is the data returned for a given slug?+
status and expiry_date_label reflect what the page shows at the time of the request. There is no cached snapshot or historical diff; if a listing is removed or updated on OnNetPulse, subsequent calls will reflect that change.