Contacts
Contacts are at the heart of Beamery's talent management platform. They represent individual talent profiles - whether they're candidates, employees, or alumni. This page covers how to work with contacts programmatically through our API.
The contact model
The contact model in Beamery stores comprehensive information about individuals in your talent pipeline as MongoDB documents, including their professional details, skills, experience, and engagement history.
Core Properties
- Name
id- Type
- string
- Description
Beamery-specific unique identifier for the contact.
- Name
firstName- Type
- string
- Description
Contact's first name.
- Name
lastName- Type
- string
- Description
Contact's last name.
- Name
fullName- Type
- string
- Description
Complete formatted name of the contact.
- Name
headline- Type
- string
- Description
Professional headline or tagline.
- Name
summary- Type
- string
- Description
Professional summary or bio.
- Name
createdAt- Type
- timestamp
- Description
When the contact was created in the system.
- Name
updatedAt- Type
- timestamp
- Description
When the contact was last updated.
Contact Information
- Name
emails- Type
- array
- Description
Array of email objects, where each email entry contains:
idUnique identifier for the email entryvalueEmail addresstypeEmail type (e.g., "primary", "work", "personal")sourceSource of the email information
- Name
phoneNumbers- Type
- array
- Description
Array of phone number objects, where each phone entry contains:
idUnique identifier for the phone number entryvaluePhone number string (e.g., "07111111111")typePhone type ("mobile", "home", "work")
- Name
links- Type
- array
- Description
Array of link objects, where each link entry contains:
idUnique identifier for the link entryvalueFull URL to the social profile or websiteservicePlatform name (e.g., "linkedin", "twitter", "github")typeLink type (typically "social")usernamePlatform-specific username or handleuserIdPlatform-specific user IDbioProfile bio or description textfollowingNumber of people the user follows (for applicable platforms)
- Name
locations- Type
- array
- Description
Array of location objects, where each location entry contains:
idUnique identifier for the location entryaddressFull address string (e.g., "London, UK")cityCity namecountryFull country namecountryCodeTwo-letter ISO 3166-1 alpha-2 country code (e.g., "GB", "US")geometryGeoJSON geometry object with coordinatestypeAlways "Point" for contact locationscoordinatesArray of [longitude, latitude] coordinates
- Name
primaryLocation- Type
- string
- Description
ID of the primary location entry.
{
"emails": [
{
"id": "a1b2c3d4-e5f6-4789-a012-3456789abcde",
"value": "john.doe@example.com",
"type": "primary",
"source": "manual"
}
],
"phoneNumbers": [
{
"id": "f8e9d0c1-b2a3-4567-8901-23456789cdef",
"value": "07111111111",
"type": "mobile"
}
],
"links": [
{
"id": "89b5494d-9217-4169-b847-e26a0964cb5c",
"value": "https://www.linkedin.com/in/matthew-w-noble",
"service": "linkedin",
"type": "social",
"username": "fIRG3DU0aG",
"userId": "fIRG3DU0aG",
"bio": "Matthew is a data scientist and PC enthusiast...",
"following": 500
}
],
"locations": [
{
"id": "2c4d6e8f-a1b2-4c3d-9e0f-123456789abc",
"address": "London, UK",
"city": "London",
"country": "United Kingdom",
"countryCode": "GB",
"geometry": {
"type": "Point",
"coordinates": [-0.12, 51.5]
}
}
],
"primaryLocation": "2c4d6e8f-a1b2-4c3d-9e0f-123456789abc"
}
Professional Experience
- Name
experiences- Type
- array
- Description
Array of experience objects, where each experience entry contains:
idUnique identifier for the experience entrytitleJob title or positioncompanyCompany name where the person workedlocationGeographic location of the jobstartDateEmployment start dateendDateEmployment end date (null if current)isCurrentBoolean indicating if this is the current roledescriptionJob description or responsibilitiesskillsArray of skill objects used or developed in this role, each containing:idSkill ID from the company job architecture graphvalueSkill name or label
- Name
primaryExperience- Type
- string
- Description
ID of the primary/current experience entry.
{
"experiences": [
{
"id": "3f4a5b6c-7d8e-4901-b234-56789abcdef0",
"title": "Senior Python Developer",
"company": "TechCorp",
"location": "San Francisco, CA",
"startDate": "2021-03-01",
"endDate": null,
"isCurrent": true,
"description": "Leading backend development for cloud services",
"skills": [
{
"id": "4d5e6f7a-8b9c-4012-9345-6789abcdef01",
"value": "Python"
},
{
"id": "8f9e0d1c-2b3a-4567-a890-123456789bcd",
"value": "Django"
},
{
"id": "2a3b4c5d-6e7f-4890-b123-456789abcdef",
"value": "AWS"
}
]
},
{
"id": "9e8d7c6b-5a49-4382-9f10-123456789abc",
"title": "Python Developer",
"company": "StartupXYZ",
"location": "Remote",
"startDate": "2018-06-01",
"endDate": "2021-02-28",
"isCurrent": false,
"description": "Full-stack development using Django",
"skills": [
{
"id": "4d5e6f7a-8b9c-4012-9345-6789abcdef01",
"value": "Python"
},
{
"id": "1b2c3d4e-5f6a-4789-9012-3456789abcde",
"value": "JavaScript"
},
{
"id": "5f6a7b8c-9d0e-4123-8456-789abcdef012",
"value": "React"
}
]
}
],
"primaryExperience": "3f4a5b6c-7d8e-4901-b234-56789abcdef0"
}
Education Background
- Name
education- Type
- array
- Description
Array of education objects, where each education entry contains:
idUnique identifier for the education entryinstitutionName of the educational institutiondegreeDegree type (Bachelor's, Master's, PhD, etc.)fieldField of study or majorstartDateEducation start dateendDateEducation end date (graduation date)gradeGPA or grade achievedactivitiesExtracurricular activities or achievements
- Name
primaryEducation- Type
- string
- Description
ID of the primary education entry.
{
"education": [
{
"id": "b5c6d7e8-f9a0-4123-8456-789abcdef012",
"institution": "UC Berkeley",
"degree": "Bachelor of Science",
"field": "Computer Science",
"startDate": "2014-09-01",
"endDate": "2018-05-15",
"grade": "3.8",
"activities": ["Computer Science Club", "Hackathon Winner"]
},
{
"id": "7a8b9c0d-e1f2-4345-a678-90123456789f",
"institution": "Stanford University",
"degree": "Master of Science",
"field": "Machine Learning",
"startDate": "2018-09-01",
"endDate": "2020-06-15",
"grade": "3.9",
"activities": ["AI Research Lab", "Teaching Assistant"]
}
],
"primaryEducation": "b5c6d7e8-f9a0-4123-8456-789abcdef012"
}
Skills and Expertise
- Name
skills- Type
- array
- Description
Array of skill objects, where each skill entry contains:
idSkill ID from the company job architecture graph (maps to Beamery knowledge graph ID)valueSkill name or label
{
"skills": [
{
"id": "4d5e6f7a-8b9c-4012-9345-6789abcdef01",
"value": "Python"
},
{
"id": "8f9e0d1c-2b3a-4567-a890-123456789bcd",
"value": "Machine Learning"
},
{
"id": "2a3b4c5d-6e7f-4890-b123-456789abcdef",
"value": "Data Analysis"
}
]
}
Languages
- Name
languages- Type
- array
- Description
Array of language objects, where each language entry contains:
idUnique identifier for the language entryvalueLanguage name (e.g., "Japanese", "Spanish", "French")proficiencyProficiency level ("Basic", "Intermediate", "Advanced", "Native")languageCodeTwo-letter ISO 639-1 language code (e.g., "ja", "es", "fr")
{
"languages": [
{
"id": "8175469f-5b75-410f-abe8-5d18daa424a3",
"value": "Japanese",
"proficiency": "Basic",
"languageCode": "ja"
},
{
"id": "6e7f8a9b-0c1d-4234-9567-89abcdef0123",
"value": "Spanish",
"proficiency": "Intermediate",
"languageCode": "es"
},
{
"id": "0d1e2f3a-4b5c-4678-a901-23456789cdef",
"value": "French",
"proficiency": "Advanced",
"languageCode": "fr"
}
]
}
Categorization and Metadata
- Name
tags- Type
- array
- Description
Array of tag objects, where each tag entry contains:
idUnique identifier for the tag entryvalueTag name or label (e.g., "Data Science", "Senior", "Remote")
- Name
sources- Type
- array
- Description
Array of source objects, where each source entry contains:
idUnique identifier for the source (optional)valueWhere the contact was sourced from, such as a job board, website, or other resources (optional)
- Name
pools- Type
- array
- Description
Array of talent pool IDs the contact belongs to.
{
"tags": [
{
"id": "b8f8119d-c129-4017-a444-d75713ebd143",
"value": "Data Science"
},
{
"id": "4c5d6e7f-8a9b-4012-9345-6789abcdef01",
"value": "Senior"
},
{
"id": "8b9c0d1e-2f3a-4567-a890-123456789bcd",
"value": "Remote"
}
],
"sources": [
{
"id": "1a2b3c4d-5e6f-4789-9012-3456789abcde",
"value": "LinkedIn"
},
{
"id": "5f6a7b8c-9d0e-4123-8456-789abcdef012",
"value": "Job Board"
}
],
"pools": [
"507f191e-810c-4972-9de8-60ea12345678",
"507f191e-810c-4972-9de8-60eb87654321"
]
}
Custom Fields
- Name
customFields- Type
- array
- Description
Array of custom field objects with flexible structure:
id: Field identifiertype: Field type (text, number, date, boolean, select, etc.)value: Field valuelabel: Human-readable field labeloptions: Available options for select fields
System Fields
- Name
archived- Type
- boolean
- Description
Whether the contact is archived.
- Name
stage- Type
- string
- Description
Current stage in the talent pipeline.
- Name
owner- Type
- string
- Description
User ID of the contact owner.
- Name
lastActivity- Type
- timestamp
- Description
Timestamp of last interaction or update.
List contacts
Retrieve a paginated list of contacts from your Beamery CRM. Use filters to narrow down results based on various criteria.
Query parameters
- Name
limit- Type
- integer
- Description
Number of contacts to return (default: 20, max: 100).
- Name
offset- Type
- integer
- Description
Number of contacts to skip for pagination.
- Name
search- Type
- string
- Description
Search contacts by name, email, or skills.
- Name
tags- Type
- array
- Description
Filter by specific tags.
- Name
pools- Type
- array
- Description
Filter by talent pool IDs.
- Name
stage- Type
- string
- Description
Filter by pipeline stage.
- Name
updatedAfter- Type
- timestamp
- Description
Only return contacts updated after this date.
curl https://frontier.beamery.com/v1/contacts \
-H "Authorization: Bearer your_access_token" \
-G \
-d limit=10 \
-d search="python developer"
{
"data": [
{
"id": "507f1f77bcf86cd799439011",
"email": "sarah.chen@example.com",
"firstName": "Sarah",
"lastName": "Chen",
"currentRole": "Senior Python Developer",
"currentCompany": "TechCorp",
"location": {
"id": "l5e6f7g8-h9i0-1234-jklm-567890123456",
"address": "San Francisco, CA, USA",
"city": "San Francisco",
"country": "United States",
"countryCode": "US",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
},
"skills": ["Python", "Django", "AWS", "PostgreSQL"],
"tags": ["python", "senior", "active"],
"lastActivity": "2024-01-15T10:30:00Z",
"createdAt": "2023-06-20T14:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
],
"pagination": {
"total": 156,
"limit": 10,
"offset": 0,
"hasMore": true
}
}
Get a contact
Retrieve detailed information about a specific contact by their ID.
Path parameters
- Name
id- Type
- string
- Description
The contact's unique identifier.
curl https://frontier.beamery.com/v1/contacts/507f1f77bcf86cd799439011 \
-H "Authorization: Bearer your_access_token"
{
"id": "507f1f77bcf86cd799439011",
"email": "sarah.chen@example.com",
"firstName": "Sarah",
"lastName": "Chen",
"phone": "+1-415-555-0123",
"currentRole": "Senior Python Developer",
"currentCompany": "TechCorp",
"location": {
"id": "l5e6f7g8-h9i0-1234-jklm-567890123456",
"address": "San Francisco, CA 94105, USA",
"city": "San Francisco",
"country": "United States",
"countryCode": "US",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
},
"skills": ["Python", "Django", "AWS", "PostgreSQL", "Docker", "Kubernetes"],
"experiences": [
{
"company": "TechCorp",
"role": "Senior Python Developer",
"startDate": "2021-03-01",
"current": true,
"description": "Leading backend development for cloud services"
},
{
"company": "StartupXYZ",
"role": "Python Developer",
"startDate": "2018-06-01",
"endDate": "2021-02-28",
"description": "Full-stack development using Django"
}
],
"education": [
{
"institution": "UC Berkeley",
"degree": "BS Computer Science",
"graduationYear": 2018
}
],
"tags": ["python", "senior", "active", "high-potential"],
"pools": ["507f191e810c19729de860ea", "507f191e810c19729de860eb"],
"source": "LinkedIn",
"stage": "Engaged",
"lastActivity": "2024-01-15T10:30:00Z",
"createdAt": "2023-06-20T14:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
Create a contact
Create a new contact in your Beamery CRM. The system will automatically deduplicate based on email address.
Request body
- Name
email- Type
- string
- Description
Contact's email address (used for deduplication).
- Name
firstName- Type
- string
- Description
Contact's first name.
- Name
lastName- Type
- string
- Description
Contact's last name.
- Name
phone- Type
- string
- Description
Contact's phone number.
- Name
currentRole- Type
- string
- Description
Current job title.
- Name
currentCompany- Type
- string
- Description
Current employer.
- Name
location- Type
- object
- Description
Location details.
- Name
skills- Type
- array
- Description
List of skills.
- Name
tags- Type
- array
- Description
Custom tags for the contact.
- Name
source- Type
- string
- Description
How the contact was sourced.
curl https://frontier.beamery.com/v1/contacts \
-X POST \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"currentRole": "Data Scientist",
"currentCompany": "DataCorp",
"skills": ["Python", "Machine Learning", "TensorFlow"],
"location": {
"id": "l6f7g8h9-i0j1-2345-klmn-678901234567",
"address": "New York, NY, USA",
"city": "New York",
"country": "United States",
"countryCode": "US",
"geometry": {
"type": "Point",
"coordinates": [-74.0060, 40.7128]
}
},
"source": "Job Board",
"tags": ["data-science", "senior"]
}'
{
"id": "507f1f77bcf86cd799439012",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"currentRole": "Data Scientist",
"currentCompany": "DataCorp",
"skills": ["Python", "Machine Learning", "TensorFlow"],
"location": {
"id": "l6f7g8h9-i0j1-2345-klmn-678901234567",
"address": "New York, NY, USA",
"city": "New York",
"country": "United States",
"countryCode": "US",
"geometry": {
"type": "Point",
"coordinates": [-74.0060, 40.7128]
}
},
"source": "Job Board",
"tags": ["data-science", "senior"],
"stage": "New",
"createdAt": "2024-01-20T15:30:00Z",
"updatedAt": "2024-01-20T15:30:00Z"
}
Update a contact
Update an existing contact's information. Only include the fields you want to update.
Path parameters
- Name
id- Type
- string
- Description
The contact's unique identifier.
Request body
Include only the fields you want to update. All fields from the create endpoint are available.
curl https://frontier.beamery.com/v1/contacts/507f1f77bcf86cd799439011 \
-X PATCH \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"currentRole": "Lead Python Developer",
"skills": ["Python", "Django", "AWS", "PostgreSQL", "Team Leadership"],
"tags": ["python", "senior", "active", "high-potential", "leadership"]
}'
{
"id": "507f1f77bcf86cd799439011",
"email": "sarah.chen@example.com",
"firstName": "Sarah",
"lastName": "Chen",
"currentRole": "Lead Python Developer",
"currentCompany": "TechCorp",
"skills": ["Python", "Django", "AWS", "PostgreSQL", "Team Leadership"],
"tags": ["python", "senior", "active", "high-potential", "leadership"],
"updatedAt": "2024-01-20T16:00:00Z"
}
Delete a contact
Permanently delete a contact from your Beamery CRM. This action cannot be undone.
Path parameters
- Name
id- Type
- string
- Description
The contact's unique identifier.
Deleting a contact will also remove them from all pools and delete all associated activities and history.
curl https://frontier.beamery.com/v1/contacts/507f1f77bcf86cd799439011 \
-X DELETE \
-H "Authorization: Bearer your_access_token"
{
"success": true,
"message": "Contact successfully deleted"
}