curl --request PUT \
--url https://hiresweep.com/api/openapi/discovery/schedule \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"runId": "<string>",
"clientId": "<string>"
}
'import requests
url = "https://hiresweep.com/api/openapi/discovery/schedule"
payload = {
"runId": "<string>",
"clientId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({runId: '<string>', clientId: '<string>'})
};
fetch('https://hiresweep.com/api/openapi/discovery/schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hiresweep.com/api/openapi/discovery/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'runId' => '<string>',
'clientId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hiresweep.com/api/openapi/discovery/schedule"
payload := strings.NewReader("{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://hiresweep.com/api/openapi/discovery/schedule")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hiresweep.com/api/openapi/discovery/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"clientId": "<string>",
"resumeId": "<string>",
"requestedTargetCount": 0,
"targets": [
{
"title": "<string>",
"keywords": [
"<string>"
],
"selected": true
}
],
"filters": {
"locations": [
"<string>"
],
"remoteOnly": true,
"postedWithinDays": 1,
"companyStages": [
"early"
]
},
"frequency": "daily",
"nextRunAt": "2023-11-07T05:31:56Z",
"pausedAt": "2023-11-07T05:31:56Z",
"emailDigest": true,
"lastRunAt": "2023-11-07T05:31:56Z",
"lastSkipReason": "not_included",
"lastSkippedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"lastRun": {
"id": "<string>",
"status": "drafting",
"createdAt": "2023-11-07T05:31:56Z",
"newMatchCount": 0
}
}Repeat a Discovery run's search daily or weekly
Saves a run’s resume, ticked Targets and filters as the workspace’s repeating search, replacing the one it had. The server then searches with them on its own, daily or weekly at about this time of day, skipping the Target suggestions, and emails a digest when a search finds new jobs (on by default). A run that already searched repeats one period from now; a draft searches within a few minutes. Each search counts like one started by hand, and one the plan refuses is let go by with the reason recorded. One repeating search per workspace. Requires authentication.
curl --request PUT \
--url https://hiresweep.com/api/openapi/discovery/schedule \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"runId": "<string>",
"clientId": "<string>"
}
'import requests
url = "https://hiresweep.com/api/openapi/discovery/schedule"
payload = {
"runId": "<string>",
"clientId": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({runId: '<string>', clientId: '<string>'})
};
fetch('https://hiresweep.com/api/openapi/discovery/schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hiresweep.com/api/openapi/discovery/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'runId' => '<string>',
'clientId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hiresweep.com/api/openapi/discovery/schedule"
payload := strings.NewReader("{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://hiresweep.com/api/openapi/discovery/schedule")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hiresweep.com/api/openapi/discovery/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"runId\": \"<string>\",\n \"clientId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"clientId": "<string>",
"resumeId": "<string>",
"requestedTargetCount": 0,
"targets": [
{
"title": "<string>",
"keywords": [
"<string>"
],
"selected": true
}
],
"filters": {
"locations": [
"<string>"
],
"remoteOnly": true,
"postedWithinDays": 1,
"companyStages": [
"early"
]
},
"frequency": "daily",
"nextRunAt": "2023-11-07T05:31:56Z",
"pausedAt": "2023-11-07T05:31:56Z",
"emailDigest": true,
"lastRunAt": "2023-11-07T05:31:56Z",
"lastSkipReason": "not_included",
"lastSkippedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"lastRun": {
"id": "<string>",
"status": "drafting",
"createdAt": "2023-11-07T05:31:56Z",
"newMatchCount": 0
}
}Authorizations
An API key from Settings → Developers → API keys in Hiresweep.
Body
The ID of the Discovery run whose resume, Targets and filters to repeat.
1How often to search: daily or weekly.
daily, weekly The client whose data this is, for an operator applying on behalf of clients. Omit for your own.
1Response
The repeating search, as saved.
The ID of the repeating search.
The client it searches for; null for your own.
The resume it searches from.
How many Targets the run it was saved from asked for.
-9007199254740991 <= x <= 9007199254740991The job titles and ATS keywords it searches for; ticked ones are searched.
Show child attributes
Show child attributes
The locations, remote-only, recency and company-stage filters it uses.
Show child attributes
Show child attributes
How often it searches: daily or weekly.
daily, weekly When it next searches, unless it is paused.
When it was paused; null while it runs.
Whether a run that finds new jobs emails you a digest of them.
When it last started a search.
Why its latest turn was let go by without a search (the plan's limit, a search already running, and so on); null when its latest turn searched.
not_included, allowance, daily, concurrent, already_searching, unavailable, email_unverified, client_archived, error When its latest turn was let go by.
The latest search it started; null before its first.
Show child attributes
Show child attributes