Jobs
9 routes. Paths are relative to https://api.intersink.com/v1.
- GET/jobsList
- POST/jobsCreate
- GET/jobs/{id}Get one
- PATCH/jobs/{id}Update
- DELETE/jobs/{id}Remove
- GET/jobs/{id}/applicantsApplicants
- POST/jobs/{id}/applyApply
- GET/jobs/myList mine
- GET/jobs/trendingTrending
List
GET/jobs
Public: no sign-in needed.
J2: the job feed (filters + pagination). Public: guests read via x-ref.
Parameters
| Name | Type | Description |
|---|---|---|
| active_profile_id | string, query | |
| user_profile_id | string, query | |
| category_id | string, query | |
| job_type | string, query | |
| location_type | string, query | |
| experience_level | string, query | |
| min_salary | number, query | Minimum 0. |
| max_salary | number, query | Minimum 0. |
| search | string, query | At most 150 characters. |
| hiring_status | string, query | One of: "open", "closed", "paused", "filled". |
| status | string, query | At most 40 characters. |
| archived | string, query | One of: "true", "false", "1", "0". |
| page | number, query | Minimum 1. |
| limit | number, query | Minimum 1. |
Response
200. The payload in data is not described in the spec yet.
Create
POST/jobs
Needs a signed-in user (Bearer token or access_token cookie).
J1: create a job (post + job). multipart: title/description/JD image/job fields. The REAL client IP (Cloudflare CF-Connecting-IP) is captured here and stored as the post's creation IP (set once).
Request body application/json
| Field | Type | Description |
|---|---|---|
| active_profile_id | string | |
| titlerequired | string | At most 255 characters. |
| descriptionrequired | string | |
| sub_description | string | |
| hashtags | string | At most 255 characters. |
| latitude | number | |
| longitude | number | |
| category_id | string | |
| company_name | string | At most 255 characters. |
| job_location | string | At most 255 characters. |
| location_type | string | At most 60 characters. |
| job_type | string | At most 60 characters. |
| experience_level | string | At most 60 characters. |
| salary_min | number | Minimum 0. |
| salary_max | number | Minimum 0. |
| requirements | string | At most 255 characters. |
| application_linkrequired | string | At most 255 characters. |
| application_email | string | |
| deadline | string | |
| openings | number | Minimum 1. |
| hiring_status | string | One of: "open", "closed", "paused", "filled". |
Response
201. The payload in data is of type object.
Get one
GET/jobs/{id}
Public: no sign-in needed.
J3: one job (+ category + applicant_count). Public: guests read via x-ref.
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | number, path |
Response
200. The payload in data is of type object.
Update
PATCH/jobs/{id}
Needs a signed-in user (Bearer token or access_token cookie).
J4: update (owner only); fields routed to post vs job. multipart image.
archived: true|false sets/clears job.archived_at (hidden from public lists).
The REAL client IP is captured and stored as the post's last_ip (the original
creation ip is never overwritten).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | number, path |
Request body application/json
| Field | Type | Description |
|---|---|---|
| title | string | At most 255 characters. |
| description | string | |
| sub_description | string | |
| hashtags | string | At most 255 characters. |
| latitude | number | |
| longitude | number | |
| category_id | string | |
| company_name | string | At most 255 characters. |
| job_location | string | At most 255 characters. |
| location_type | string | At most 60 characters. |
| job_type | string | At most 60 characters. |
| experience_level | string | At most 60 characters. |
| salary_min | number | Minimum 0. |
| salary_max | number | Minimum 0. |
| requirements | string | At most 255 characters. |
| application_link | string | At most 255 characters. |
| application_email | string | |
| deadline | string | |
| openings | number | Minimum 1. |
| hiring_status | string | One of: "open", "closed", "paused", "filled". |
| archived | string | One of: "true", "false", "1", "0". |
Response
200. The payload in data is of type object.
Remove
DELETE/jobs/{id}
Needs a signed-in user (Bearer token or access_token cookie).
J5: archive the post and the job (owner only).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | number, path |
Response
200. The payload in data is not described in the spec yet.
Applicants
GET/jobs/{id}/applicants
Needs a signed-in user (Bearer token or access_token cookie).
A2: the poster's applicant CRM list.
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | number, path | |
| status | string, query | At most 120 characters. |
| page | number, query | Minimum 1. |
| limit | number, query | Minimum 1. |
Response
200. The payload in data is not described in the spec yet.
Apply
POST/jobs/{id}/apply
Needs a signed-in user (Bearer token or access_token cookie).
A1: apply to a job. ONE CLICK: no body (the profile is the resume). JOBS-10: optional active_profile_id to apply as a specific owned profile.
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | number, path | |
| active_profile_idrequired | string, query |
Response
201. The payload in data is not described in the spec yet.
List mine
GET/jobs/my
Needs a signed-in user (Bearer token or access_token cookie).
J2c: the caller's own jobs (every status but archived; ?archived=1 only owner-archived, ?archived=0 only live). Static route MUST be declared before :id or "my" parses as a numeric id (JOBS-4).
Parameters
| Name | Type | Description |
|---|---|---|
| active_profile_id | string, query | |
| user_profile_id | string, query | |
| category_id | string, query | |
| job_type | string, query | |
| location_type | string, query | |
| experience_level | string, query | |
| min_salary | number, query | Minimum 0. |
| max_salary | number, query | Minimum 0. |
| search | string, query | At most 150 characters. |
| hiring_status | string, query | One of: "open", "closed", "paused", "filled". |
| status | string, query | At most 40 characters. |
| archived | string, query | One of: "true", "false", "1", "0". |
| page | number, query | Minimum 1. |
| limit | number, query | Minimum 1. |
Response
200. The payload in data is not described in the spec yet.
Trending
GET/jobs/trending
Public: no sign-in needed.
J2b: trending jobs (score = views + applicants×5). Static route before :id.
Parameters
| Name | Type | Description |
|---|---|---|
| active_profile_id | string, query | |
| user_profile_id | string, query | |
| category_id | string, query | |
| job_type | string, query | |
| location_type | string, query | |
| experience_level | string, query | |
| min_salary | number, query | Minimum 0. |
| max_salary | number, query | Minimum 0. |
| search | string, query | At most 150 characters. |
| hiring_status | string, query | One of: "open", "closed", "paused", "filled". |
| status | string, query | At most 40 characters. |
| archived | string, query | One of: "true", "false", "1", "0". |
| page | number, query | Minimum 1. |
| limit | number, query | Minimum 1. |
Response
200. The payload in data is not described in the spec yet.