curl --request GET \
--url https://api.jonahanderson.me/experience \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.jonahanderson.me/experience"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.jonahanderson.me/experience', 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://api.jonahanderson.me/experience",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.jonahanderson.me/experience"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.jonahanderson.me/experience")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jonahanderson.me/experience")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "experience_example_001",
"company": "Sample Systems",
"company_start_date": "2023-01-01",
"company_end_date": null,
"current": true,
"summary": "Example summary for a current role focused on integrations, platform workflows, and partner enablement.",
"roles": [
{
"title": "Senior Product Manager",
"start_date": "2024-01-01",
"end_date": null,
"accomplishments": [
"Defined an example roadmap for partner-facing API improvements.",
"Coordinated an example cross-functional launch for a workflow automation feature."
]
}
]
},
{
"id": "experience_example_002",
"company": "Example Labs",
"company_start_date": "2021-01-01",
"company_end_date": "2022-12-31",
"current": false,
"summary": "Example summary for a previous role covering customer data pipelines and platform reliability.",
"roles": [
{
"title": "Product Manager",
"start_date": "2021-01-01",
"end_date": "2022-12-31",
"accomplishments": [
"Owned an example product area spanning ingestion, partner setup, and reporting.",
"Delivered an example improvement to internal tooling that reduced setup time."
]
}
]
}
]{
"error": {
"code": "BAD_REQUEST",
"message": "The request payload is missing a required field."
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "A valid bearer token is required"
}
}List Experience
Returns experience entries for the candidate profile. The example response below is illustrative only.
curl --request GET \
--url https://api.jonahanderson.me/experience \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.jonahanderson.me/experience"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.jonahanderson.me/experience', 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://api.jonahanderson.me/experience",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.jonahanderson.me/experience"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.jonahanderson.me/experience")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jonahanderson.me/experience")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "experience_example_001",
"company": "Sample Systems",
"company_start_date": "2023-01-01",
"company_end_date": null,
"current": true,
"summary": "Example summary for a current role focused on integrations, platform workflows, and partner enablement.",
"roles": [
{
"title": "Senior Product Manager",
"start_date": "2024-01-01",
"end_date": null,
"accomplishments": [
"Defined an example roadmap for partner-facing API improvements.",
"Coordinated an example cross-functional launch for a workflow automation feature."
]
}
]
},
{
"id": "experience_example_002",
"company": "Example Labs",
"company_start_date": "2021-01-01",
"company_end_date": "2022-12-31",
"current": false,
"summary": "Example summary for a previous role covering customer data pipelines and platform reliability.",
"roles": [
{
"title": "Product Manager",
"start_date": "2021-01-01",
"end_date": "2022-12-31",
"accomplishments": [
"Owned an example product area spanning ingestion, partner setup, and reporting.",
"Delivered an example improvement to internal tooling that reduced setup time."
]
}
]
}
]{
"error": {
"code": "BAD_REQUEST",
"message": "The request payload is missing a required field."
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "A valid bearer token is required"
}
}Authorizations
Signed bearer token returned by POST /auth/token. Send it in the Authorization header as Bearer <token>.
Query Parameters
Filters the response by whether the experience is current.
Response
Experience list.
Stable identifier for the experience entry.
"experience_example_001"
Company or organization name for the experience entry.
"Sample Systems"
Date when the candidate started working with the company.
"2023-01-01"
Whether this experience entry represents a current company.
true
Short summary of the work completed at the company.
"Example summary for a current role focused on integrations, platform workflows, and partner enablement."
Roles held within this company experience.
Show child attributes
Show child attributes
Date when the candidate stopped working with the company, or null if it is current.
null